diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:01:22 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:01:22 +0000 |
commit | 71d5a2540a98c81f5bcaeb48805e0e2881f530ef (patch) | |
tree | 5343938942df402b49ec7300a1c25a2d4ccd5821 /test/CodeGen/X86/avx512-cmp.ll | |
parent | 31bbf64f3a4974a2d6c8b3b27ad2f519caf74057 (diff) | |
download | src-test-71d5a2540a98c81f5bcaeb48805e0e2881f530ef.tar.gz src-test-71d5a2540a98c81f5bcaeb48805e0e2881f530ef.zip |
Notes
Diffstat (limited to 'test/CodeGen/X86/avx512-cmp.ll')
-rw-r--r-- | test/CodeGen/X86/avx512-cmp.ll | 72 |
1 files changed, 47 insertions, 25 deletions
diff --git a/test/CodeGen/X86/avx512-cmp.ll b/test/CodeGen/X86/avx512-cmp.ll index 78df51be5c3e1..c1b64743f8985 100644 --- a/test/CodeGen/X86/avx512-cmp.ll +++ b/test/CodeGen/X86/avx512-cmp.ll @@ -69,13 +69,14 @@ define float @test5(float %p) #0 { ; ALL-NEXT: vxorps %xmm1, %xmm1, %xmm1 ; ALL-NEXT: vucomiss %xmm1, %xmm0 ; ALL-NEXT: jne LBB3_1 -; ALL-NEXT: jnp LBB3_2 +; ALL-NEXT: jp LBB3_1 +; ALL-NEXT: ## BB#2: ## %return +; ALL-NEXT: retq ; ALL-NEXT: LBB3_1: ## %if.end ; ALL-NEXT: seta %al ; ALL-NEXT: movzbl %al, %eax ; ALL-NEXT: leaq {{.*}}(%rip), %rcx ; ALL-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero -; ALL-NEXT: LBB3_2: ## %return ; ALL-NEXT: retq entry: %cmp = fcmp oeq float %p, 0.000000e+00 @@ -119,12 +120,12 @@ entry: define i32 @test8(i32 %a1, i32 %a2, i32 %a3) { ; ALL-LABEL: test8: ; ALL: ## BB#0: +; ALL-NEXT: notl %edi +; ALL-NEXT: xorl $-2147483648, %esi ## imm = 0x80000000 ; ALL-NEXT: testl %edx, %edx ; ALL-NEXT: movl $1, %eax ; ALL-NEXT: cmovel %eax, %edx -; ALL-NEXT: cmpl $-2147483648, %esi ## imm = 0x80000000 -; ALL-NEXT: cmovnel %edx, %eax -; ALL-NEXT: cmpl $-1, %edi +; ALL-NEXT: orl %edi, %esi ; ALL-NEXT: cmovnel %edx, %eax ; ALL-NEXT: retq %tmp1 = icmp eq i32 %a1, -1 @@ -157,26 +158,47 @@ B: } define i32 @test10(i64 %b, i64 %c, i1 %d) { -; ALL-LABEL: test10: -; ALL: ## BB#0: -; ALL-NEXT: andl $1, %edx -; ALL-NEXT: kmovw %edx, %k0 -; ALL-NEXT: cmpq %rsi, %rdi -; ALL-NEXT: sete %al -; ALL-NEXT: andl $1, %eax -; ALL-NEXT: kmovw %eax, %k1 -; ALL-NEXT: korw %k1, %k0, %k1 -; ALL-NEXT: kxorw %k1, %k0, %k0 -; ALL-NEXT: kmovw %k0, %eax -; ALL-NEXT: andl $1, %eax -; ALL-NEXT: testb %al, %al -; ALL-NEXT: je LBB8_1 -; ALL-NEXT: ## BB#2: ## %if.end.i -; ALL-NEXT: movl $6, %eax -; ALL-NEXT: retq -; ALL-NEXT: LBB8_1: ## %if.then.i -; ALL-NEXT: movl $5, %eax -; ALL-NEXT: retq +; KNL-LABEL: test10: +; KNL: ## BB#0: +; KNL-NEXT: andl $1, %edx +; KNL-NEXT: kmovw %edx, %k0 +; KNL-NEXT: cmpq %rsi, %rdi +; KNL-NEXT: sete %al +; KNL-NEXT: andl $1, %eax +; KNL-NEXT: kmovw %eax, %k1 +; KNL-NEXT: korw %k1, %k0, %k1 +; KNL-NEXT: kxorw %k1, %k0, %k0 +; KNL-NEXT: kmovw %k0, %eax +; KNL-NEXT: andl $1, %eax +; KNL-NEXT: testb %al, %al +; KNL-NEXT: je LBB8_1 +; KNL-NEXT: ## BB#2: ## %if.end.i +; KNL-NEXT: movl $6, %eax +; KNL-NEXT: retq +; KNL-NEXT: LBB8_1: ## %if.then.i +; KNL-NEXT: movl $5, %eax +; KNL-NEXT: retq +; +; SKX-LABEL: test10: +; SKX: ## BB#0: +; SKX-NEXT: andl $1, %edx +; SKX-NEXT: kmovd %edx, %k0 +; SKX-NEXT: cmpq %rsi, %rdi +; SKX-NEXT: sete %al +; SKX-NEXT: andl $1, %eax +; SKX-NEXT: kmovd %eax, %k1 +; SKX-NEXT: korw %k1, %k0, %k1 +; SKX-NEXT: kxorw %k1, %k0, %k0 +; SKX-NEXT: kmovd %k0, %eax +; SKX-NEXT: andl $1, %eax +; SKX-NEXT: testb %al, %al +; SKX-NEXT: je LBB8_1 +; SKX-NEXT: ## BB#2: ## %if.end.i +; SKX-NEXT: movl $6, %eax +; SKX-NEXT: retq +; SKX-NEXT: LBB8_1: ## %if.then.i +; SKX-NEXT: movl $5, %eax +; SKX-NEXT: retq %cmp8.i = icmp eq i64 %b, %c %or1 = or i1 %d, %cmp8.i |