summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/avx512-cmp.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-04-16 16:01:22 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-04-16 16:01:22 +0000
commit71d5a2540a98c81f5bcaeb48805e0e2881f530ef (patch)
tree5343938942df402b49ec7300a1c25a2d4ccd5821 /test/CodeGen/X86/avx512-cmp.ll
parent31bbf64f3a4974a2d6c8b3b27ad2f519caf74057 (diff)
downloadsrc-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.ll72
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