diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/avx512-intrinsics.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/avx512-intrinsics.ll | 269 |
1 files changed, 132 insertions, 137 deletions
diff --git a/llvm/test/CodeGen/X86/avx512-intrinsics.ll b/llvm/test/CodeGen/X86/avx512-intrinsics.ll index 63f50ef7036..4d89c4f97ed 100644 --- a/llvm/test/CodeGen/X86/avx512-intrinsics.ll +++ b/llvm/test/CodeGen/X86/avx512-intrinsics.ll @@ -67,7 +67,6 @@ define i16 @unpckbw_test(i16 %a0, i16 %a1) { ; CHECK-NEXT: kmovw %esi, %k1 ; CHECK-NEXT: kunpckbw %k1, %k0, %k0 ; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> ; CHECK-NEXT: retq %res = call i16 @llvm.x86.avx512.kunpck.bw(i16 %a0, i16 %a1) ret i16 %res @@ -735,7 +734,6 @@ define <8 x i64> @test_mask_lzcnt_q(<8 x i64> %a, <8 x i64> %b, i8 %mask) { ; CHECK: ## BB#0: ; CHECK-NEXT: vcmpleps {sae}, %zmm1, %zmm0, %k0 ; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: ## kill: %AX<def> %AX<kill> %EAX<kill> ; CHECK-NEXT: retq %res = call i16 @llvm.x86.avx512.mask.cmp.ps.512(<16 x float> %a, <16 x float> %b, i32 2, i16 -1, i32 8) ret i16 %res @@ -747,7 +745,6 @@ define <8 x i64> @test_mask_lzcnt_q(<8 x i64> %a, <8 x i64> %b, i8 %mask) { ; CHECK: ## BB#0: ; CHECK-NEXT: vcmpneqpd %zmm1, %zmm0, %k0 ; CHECK-NEXT: kmovw %k0, %eax -; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> ; CHECK-NEXT: retq %res = call i8 @llvm.x86.avx512.mask.cmp.pd.512(<8 x double> %a, <8 x double> %b, i32 4, i8 -1, i32 4) ret i8 %res @@ -820,7 +817,6 @@ define i8 @test_vptestmq(<8 x i64> %a0, <8 x i64> %a1, i8 %m) { ; CHECK-NEXT: vptestmq %zmm1, %zmm0, %k0 ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: addb %cl, %al -; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> ; CHECK-NEXT: retq %res = call i8 @llvm.x86.avx512.ptestm.q.512(<8 x i64> %a0, <8 x i64> %a1, i8 -1) %res1 = call i8 @llvm.x86.avx512.ptestm.q.512(<8 x i64> %a0, <8 x i64> %a1, i8 %m) @@ -896,29 +892,29 @@ declare void @llvm.x86.avx512.mask.store.ss(i8*, <4 x float>, i8 ) define <8 x i16> @test_cmp_d_512(<16 x i32> %a0, <16 x i32> %a1) { ; CHECK-LABEL: test_cmp_d_512: ; CHECK: ## BB#0: -; CHECK-NEXT: vpcmpeqd %zmm1, %zmm0, %k0 -; CHECK-NEXT: vpcmpltd %zmm1, %zmm0, %k1 -; CHECK-NEXT: vpcmpled %zmm1, %zmm0, %k2 -; CHECK-NEXT: vpcmpunordd %zmm1, %zmm0, %k3 -; CHECK-NEXT: vpcmpneqd %zmm1, %zmm0, %k4 -; CHECK-NEXT: vpcmpnltd %zmm1, %zmm0, %k5 -; CHECK-NEXT: vpcmpnled %zmm1, %zmm0, %k6 -; CHECK-NEXT: vpcmpordd %zmm1, %zmm0, %k7 -; CHECK-NEXT: kmovw %k1, %eax -; CHECK-NEXT: kmovw %k0, %ecx +; CHECK-NEXT: vpcmpeqd %zmm1, %zmm0, %k3 +; CHECK-NEXT: vpcmpltd %zmm1, %zmm0, %k4 +; CHECK-NEXT: vpcmpled %zmm1, %zmm0, %k5 +; CHECK-NEXT: vpcmpunordd %zmm1, %zmm0, %k6 +; CHECK-NEXT: vpcmpneqd %zmm1, %zmm0, %k7 +; CHECK-NEXT: vpcmpnltd %zmm1, %zmm0, %k2 +; CHECK-NEXT: vpcmpnled %zmm1, %zmm0, %k1 +; CHECK-NEXT: vpcmpordd %zmm1, %zmm0, %k0 +; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k3, %ecx ; CHECK-NEXT: vmovd %ecx, %xmm0 ; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k2, %eax +; CHECK-NEXT: kmovw %k5, %eax ; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k1, %eax ; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i16 @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> %a0, <16 x i32> %a1, i32 0, i16 -1) @@ -943,30 +939,30 @@ define <8 x i16> @test_cmp_d_512(<16 x i32> %a0, <16 x i32> %a1) { define <8 x i16> @test_mask_cmp_d_512(<16 x i32> %a0, <16 x i32> %a1, i16 %mask) { ; CHECK-LABEL: test_mask_cmp_d_512: ; CHECK: ## BB#0: -; CHECK-NEXT: kmovw %edi, %k1 -; CHECK-NEXT: vpcmpeqd %zmm1, %zmm0, %k0 {%k1} -; CHECK-NEXT: vpcmpltd %zmm1, %zmm0, %k2 {%k1} -; CHECK-NEXT: vpcmpled %zmm1, %zmm0, %k3 {%k1} -; CHECK-NEXT: vpcmpunordd %zmm1, %zmm0, %k4 {%k1} -; CHECK-NEXT: vpcmpneqd %zmm1, %zmm0, %k5 {%k1} -; CHECK-NEXT: vpcmpnltd %zmm1, %zmm0, %k6 {%k1} -; CHECK-NEXT: vpcmpnled %zmm1, %zmm0, %k7 {%k1} -; CHECK-NEXT: vpcmpordd %zmm1, %zmm0, %k1 {%k1} -; CHECK-NEXT: kmovw %k2, %eax -; CHECK-NEXT: kmovw %k0, %ecx +; CHECK-NEXT: kmovw %edi, %k3 +; CHECK-NEXT: vpcmpeqd %zmm1, %zmm0, %k4 {%k3} +; CHECK-NEXT: vpcmpltd %zmm1, %zmm0, %k5 {%k3} +; CHECK-NEXT: vpcmpled %zmm1, %zmm0, %k6 {%k3} +; CHECK-NEXT: vpcmpunordd %zmm1, %zmm0, %k7 {%k3} +; CHECK-NEXT: vpcmpneqd %zmm1, %zmm0, %k0 {%k3} +; CHECK-NEXT: vpcmpnltd %zmm1, %zmm0, %k2 {%k3} +; CHECK-NEXT: vpcmpnled %zmm1, %zmm0, %k1 {%k3} +; CHECK-NEXT: vpcmpordd %zmm1, %zmm0, %k3 {%k3} +; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k4, %ecx ; CHECK-NEXT: vmovd %ecx, %xmm0 ; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax -; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ; CHECK-NEXT: kmovw %k1, %eax +; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 +; CHECK-NEXT: kmovw %k3, %eax ; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i16 @llvm.x86.avx512.mask.cmp.d.512(<16 x i32> %a0, <16 x i32> %a1, i32 0, i16 %mask) @@ -993,29 +989,29 @@ declare i16 @llvm.x86.avx512.mask.cmp.d.512(<16 x i32>, <16 x i32>, i32, i16) no define <8 x i16> @test_ucmp_d_512(<16 x i32> %a0, <16 x i32> %a1) { ; CHECK-LABEL: test_ucmp_d_512: ; CHECK: ## BB#0: -; CHECK-NEXT: vpcmpequd %zmm1, %zmm0, %k0 -; CHECK-NEXT: vpcmpltud %zmm1, %zmm0, %k1 -; CHECK-NEXT: vpcmpleud %zmm1, %zmm0, %k2 -; CHECK-NEXT: vpcmpunordud %zmm1, %zmm0, %k3 -; CHECK-NEXT: vpcmpnequd %zmm1, %zmm0, %k4 -; CHECK-NEXT: vpcmpnltud %zmm1, %zmm0, %k5 -; CHECK-NEXT: vpcmpnleud %zmm1, %zmm0, %k6 -; CHECK-NEXT: vpcmpordud %zmm1, %zmm0, %k7 -; CHECK-NEXT: kmovw %k1, %eax -; CHECK-NEXT: kmovw %k0, %ecx +; CHECK-NEXT: vpcmpequd %zmm1, %zmm0, %k3 +; CHECK-NEXT: vpcmpltud %zmm1, %zmm0, %k4 +; CHECK-NEXT: vpcmpleud %zmm1, %zmm0, %k5 +; CHECK-NEXT: vpcmpunordud %zmm1, %zmm0, %k6 +; CHECK-NEXT: vpcmpnequd %zmm1, %zmm0, %k7 +; CHECK-NEXT: vpcmpnltud %zmm1, %zmm0, %k2 +; CHECK-NEXT: vpcmpnleud %zmm1, %zmm0, %k1 +; CHECK-NEXT: vpcmpordud %zmm1, %zmm0, %k0 +; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k3, %ecx ; CHECK-NEXT: vmovd %ecx, %xmm0 ; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k2, %eax +; CHECK-NEXT: kmovw %k5, %eax ; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k1, %eax ; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i16 @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> %a0, <16 x i32> %a1, i32 0, i16 -1) @@ -1040,30 +1036,30 @@ define <8 x i16> @test_ucmp_d_512(<16 x i32> %a0, <16 x i32> %a1) { define <8 x i16> @test_mask_ucmp_d_512(<16 x i32> %a0, <16 x i32> %a1, i16 %mask) { ; CHECK-LABEL: test_mask_ucmp_d_512: ; CHECK: ## BB#0: -; CHECK-NEXT: kmovw %edi, %k1 -; CHECK-NEXT: vpcmpequd %zmm1, %zmm0, %k0 {%k1} -; CHECK-NEXT: vpcmpltud %zmm1, %zmm0, %k2 {%k1} -; CHECK-NEXT: vpcmpleud %zmm1, %zmm0, %k3 {%k1} -; CHECK-NEXT: vpcmpunordud %zmm1, %zmm0, %k4 {%k1} -; CHECK-NEXT: vpcmpnequd %zmm1, %zmm0, %k5 {%k1} -; CHECK-NEXT: vpcmpnltud %zmm1, %zmm0, %k6 {%k1} -; CHECK-NEXT: vpcmpnleud %zmm1, %zmm0, %k7 {%k1} -; CHECK-NEXT: vpcmpordud %zmm1, %zmm0, %k1 {%k1} -; CHECK-NEXT: kmovw %k2, %eax -; CHECK-NEXT: kmovw %k0, %ecx +; CHECK-NEXT: kmovw %edi, %k3 +; CHECK-NEXT: vpcmpequd %zmm1, %zmm0, %k4 {%k3} +; CHECK-NEXT: vpcmpltud %zmm1, %zmm0, %k5 {%k3} +; CHECK-NEXT: vpcmpleud %zmm1, %zmm0, %k6 {%k3} +; CHECK-NEXT: vpcmpunordud %zmm1, %zmm0, %k7 {%k3} +; CHECK-NEXT: vpcmpnequd %zmm1, %zmm0, %k0 {%k3} +; CHECK-NEXT: vpcmpnltud %zmm1, %zmm0, %k2 {%k3} +; CHECK-NEXT: vpcmpnleud %zmm1, %zmm0, %k1 {%k3} +; CHECK-NEXT: vpcmpordud %zmm1, %zmm0, %k3 {%k3} +; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k4, %ecx ; CHECK-NEXT: vmovd %ecx, %xmm0 ; CHECK-NEXT: vpinsrw $1, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrw $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrw $3, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrw $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrw $5, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax -; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 ; CHECK-NEXT: kmovw %k1, %eax +; CHECK-NEXT: vpinsrw $6, %eax, %xmm0, %xmm0 +; CHECK-NEXT: kmovw %k3, %eax ; CHECK-NEXT: vpinsrw $7, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i16 @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32> %a0, <16 x i32> %a1, i32 0, i16 %mask) @@ -1090,29 +1086,29 @@ declare i16 @llvm.x86.avx512.mask.ucmp.d.512(<16 x i32>, <16 x i32>, i32, i16) n define <8 x i8> @test_cmp_q_512(<8 x i64> %a0, <8 x i64> %a1) { ; CHECK-LABEL: test_cmp_q_512: ; CHECK: ## BB#0: -; CHECK-NEXT: vpcmpeqq %zmm1, %zmm0, %k0 -; CHECK-NEXT: vpcmpltq %zmm1, %zmm0, %k1 -; CHECK-NEXT: vpcmpleq %zmm1, %zmm0, %k2 -; CHECK-NEXT: vpcmpunordq %zmm1, %zmm0, %k3 -; CHECK-NEXT: vpcmpneqq %zmm1, %zmm0, %k4 -; CHECK-NEXT: vpcmpnltq %zmm1, %zmm0, %k5 -; CHECK-NEXT: vpcmpnleq %zmm1, %zmm0, %k6 -; CHECK-NEXT: vpcmpordq %zmm1, %zmm0, %k7 -; CHECK-NEXT: kmovw %k0, %eax +; CHECK-NEXT: vpcmpeqq %zmm1, %zmm0, %k3 +; CHECK-NEXT: vpcmpltq %zmm1, %zmm0, %k4 +; CHECK-NEXT: vpcmpleq %zmm1, %zmm0, %k5 +; CHECK-NEXT: vpcmpunordq %zmm1, %zmm0, %k6 +; CHECK-NEXT: vpcmpneqq %zmm1, %zmm0, %k7 +; CHECK-NEXT: vpcmpnltq %zmm1, %zmm0, %k2 +; CHECK-NEXT: vpcmpnleq %zmm1, %zmm0, %k1 +; CHECK-NEXT: vpcmpordq %zmm1, %zmm0, %k0 +; CHECK-NEXT: kmovw %k3, %eax ; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k1, %eax +; CHECK-NEXT: kmovw %k4, %eax ; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k2, %eax +; CHECK-NEXT: kmovw %k5, %eax ; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k1, %eax ; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i8 @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> %a0, <8 x i64> %a1, i32 0, i8 -1) @@ -1137,30 +1133,30 @@ define <8 x i8> @test_cmp_q_512(<8 x i64> %a0, <8 x i64> %a1) { define <8 x i8> @test_mask_cmp_q_512(<8 x i64> %a0, <8 x i64> %a1, i8 %mask) { ; CHECK-LABEL: test_mask_cmp_q_512: ; CHECK: ## BB#0: -; CHECK-NEXT: kmovw %edi, %k1 -; CHECK-NEXT: vpcmpeqq %zmm1, %zmm0, %k0 {%k1} -; CHECK-NEXT: vpcmpltq %zmm1, %zmm0, %k2 {%k1} -; CHECK-NEXT: vpcmpleq %zmm1, %zmm0, %k3 {%k1} -; CHECK-NEXT: vpcmpunordq %zmm1, %zmm0, %k4 {%k1} -; CHECK-NEXT: vpcmpneqq %zmm1, %zmm0, %k5 {%k1} -; CHECK-NEXT: vpcmpnltq %zmm1, %zmm0, %k6 {%k1} -; CHECK-NEXT: vpcmpnleq %zmm1, %zmm0, %k7 {%k1} -; CHECK-NEXT: vpcmpordq %zmm1, %zmm0, %k1 {%k1} -; CHECK-NEXT: kmovw %k0, %eax +; CHECK-NEXT: kmovw %edi, %k3 +; CHECK-NEXT: vpcmpeqq %zmm1, %zmm0, %k4 {%k3} +; CHECK-NEXT: vpcmpltq %zmm1, %zmm0, %k5 {%k3} +; CHECK-NEXT: vpcmpleq %zmm1, %zmm0, %k6 {%k3} +; CHECK-NEXT: vpcmpunordq %zmm1, %zmm0, %k7 {%k3} +; CHECK-NEXT: vpcmpneqq %zmm1, %zmm0, %k0 {%k3} +; CHECK-NEXT: vpcmpnltq %zmm1, %zmm0, %k2 {%k3} +; CHECK-NEXT: vpcmpnleq %zmm1, %zmm0, %k1 {%k3} +; CHECK-NEXT: vpcmpordq %zmm1, %zmm0, %k3 {%k3} +; CHECK-NEXT: kmovw %k4, %eax ; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k2, %eax +; CHECK-NEXT: kmovw %k5, %eax ; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax -; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 ; CHECK-NEXT: kmovw %k1, %eax +; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 +; CHECK-NEXT: kmovw %k3, %eax ; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i8 @llvm.x86.avx512.mask.cmp.q.512(<8 x i64> %a0, <8 x i64> %a1, i32 0, i8 %mask) @@ -1187,29 +1183,29 @@ declare i8 @llvm.x86.avx512.mask.cmp.q.512(<8 x i64>, <8 x i64>, i32, i8) nounwi define <8 x i8> @test_ucmp_q_512(<8 x i64> %a0, <8 x i64> %a1) { ; CHECK-LABEL: test_ucmp_q_512: ; CHECK: ## BB#0: -; CHECK-NEXT: vpcmpequq %zmm1, %zmm0, %k0 -; CHECK-NEXT: vpcmpltuq %zmm1, %zmm0, %k1 -; CHECK-NEXT: vpcmpleuq %zmm1, %zmm0, %k2 -; CHECK-NEXT: vpcmpunorduq %zmm1, %zmm0, %k3 -; CHECK-NEXT: vpcmpnequq %zmm1, %zmm0, %k4 -; CHECK-NEXT: vpcmpnltuq %zmm1, %zmm0, %k5 -; CHECK-NEXT: vpcmpnleuq %zmm1, %zmm0, %k6 -; CHECK-NEXT: vpcmporduq %zmm1, %zmm0, %k7 -; CHECK-NEXT: kmovw %k0, %eax +; CHECK-NEXT: vpcmpequq %zmm1, %zmm0, %k3 +; CHECK-NEXT: vpcmpltuq %zmm1, %zmm0, %k4 +; CHECK-NEXT: vpcmpleuq %zmm1, %zmm0, %k5 +; CHECK-NEXT: vpcmpunorduq %zmm1, %zmm0, %k6 +; CHECK-NEXT: vpcmpnequq %zmm1, %zmm0, %k7 +; CHECK-NEXT: vpcmpnltuq %zmm1, %zmm0, %k2 +; CHECK-NEXT: vpcmpnleuq %zmm1, %zmm0, %k1 +; CHECK-NEXT: vpcmporduq %zmm1, %zmm0, %k0 +; CHECK-NEXT: kmovw %k3, %eax ; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k1, %eax +; CHECK-NEXT: kmovw %k4, %eax ; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k2, %eax +; CHECK-NEXT: kmovw %k5, %eax ; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k1, %eax ; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i8 @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> %a0, <8 x i64> %a1, i32 0, i8 -1) @@ -1234,30 +1230,30 @@ define <8 x i8> @test_ucmp_q_512(<8 x i64> %a0, <8 x i64> %a1) { define <8 x i8> @test_mask_ucmp_q_512(<8 x i64> %a0, <8 x i64> %a1, i8 %mask) { ; CHECK-LABEL: test_mask_ucmp_q_512: ; CHECK: ## BB#0: -; CHECK-NEXT: kmovw %edi, %k1 -; CHECK-NEXT: vpcmpequq %zmm1, %zmm0, %k0 {%k1} -; CHECK-NEXT: vpcmpltuq %zmm1, %zmm0, %k2 {%k1} -; CHECK-NEXT: vpcmpleuq %zmm1, %zmm0, %k3 {%k1} -; CHECK-NEXT: vpcmpunorduq %zmm1, %zmm0, %k4 {%k1} -; CHECK-NEXT: vpcmpnequq %zmm1, %zmm0, %k5 {%k1} -; CHECK-NEXT: vpcmpnltuq %zmm1, %zmm0, %k6 {%k1} -; CHECK-NEXT: vpcmpnleuq %zmm1, %zmm0, %k7 {%k1} -; CHECK-NEXT: vpcmporduq %zmm1, %zmm0, %k1 {%k1} -; CHECK-NEXT: kmovw %k0, %eax +; CHECK-NEXT: kmovw %edi, %k3 +; CHECK-NEXT: vpcmpequq %zmm1, %zmm0, %k4 {%k3} +; CHECK-NEXT: vpcmpltuq %zmm1, %zmm0, %k5 {%k3} +; CHECK-NEXT: vpcmpleuq %zmm1, %zmm0, %k6 {%k3} +; CHECK-NEXT: vpcmpunorduq %zmm1, %zmm0, %k7 {%k3} +; CHECK-NEXT: vpcmpnequq %zmm1, %zmm0, %k0 {%k3} +; CHECK-NEXT: vpcmpnltuq %zmm1, %zmm0, %k2 {%k3} +; CHECK-NEXT: vpcmpnleuq %zmm1, %zmm0, %k1 {%k3} +; CHECK-NEXT: vpcmporduq %zmm1, %zmm0, %k3 {%k3} +; CHECK-NEXT: kmovw %k4, %eax ; CHECK-NEXT: vpinsrb $0, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k2, %eax +; CHECK-NEXT: kmovw %k5, %eax ; CHECK-NEXT: vpinsrb $2, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k3, %eax +; CHECK-NEXT: kmovw %k6, %eax ; CHECK-NEXT: vpinsrb $4, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k4, %eax +; CHECK-NEXT: kmovw %k7, %eax ; CHECK-NEXT: vpinsrb $6, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k5, %eax +; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: vpinsrb $8, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k6, %eax +; CHECK-NEXT: kmovw %k2, %eax ; CHECK-NEXT: vpinsrb $10, %eax, %xmm0, %xmm0 -; CHECK-NEXT: kmovw %k7, %eax -; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 ; CHECK-NEXT: kmovw %k1, %eax +; CHECK-NEXT: vpinsrb $12, %eax, %xmm0, %xmm0 +; CHECK-NEXT: kmovw %k3, %eax ; CHECK-NEXT: vpinsrb $14, %eax, %xmm0, %xmm0 ; CHECK-NEXT: retq %res0 = call i8 @llvm.x86.avx512.mask.ucmp.q.512(<8 x i64> %a0, <8 x i64> %a1, i32 0, i8 %mask) @@ -6206,7 +6202,6 @@ define i8@test_int_x86_avx512_ptestnm_q_512(<8 x i64> %x0, <8 x i64> %x1, i8 %x2 ; CHECK-NEXT: vptestnmq %zmm1, %zmm0, %k0 ; CHECK-NEXT: kmovw %k0, %eax ; CHECK-NEXT: addb %cl, %al -; CHECK-NEXT: ## kill: %AL<def> %AL<kill> %EAX<kill> ; CHECK-NEXT: retq %res = call i8 @llvm.x86.avx512.ptestnm.q.512(<8 x i64> %x0, <8 x i64> %x1, i8 %x2) %res1 = call i8 @llvm.x86.avx512.ptestnm.q.512(<8 x i64> %x0, <8 x i64> %x1, i8-1) |

