@@ -5659,8 +5659,7 @@ define i8@test_int_x86_avx512_mask_cmp_sd(<2 x double> %x0, <2 x double> %x1, i8
56595659; CHECK-NEXT: kmovw %edi, %k1
56605660; CHECK-NEXT: vcmpnltsd {sae}, %xmm1, %xmm0, %k0 {%k1}
56615661; CHECK-NEXT: kmovw %k0, %eax
5662- ; CHECK-NEXT: shlb $7, %al
5663- ; CHECK-NEXT: sarb $7, %al
5662+ ; CHECK-NEXT: andl $1, %eax
56645663; CHECK-NEXT: retq
56655664
56665665 %res4 = call i8 @llvm.x86.avx512.mask.cmp.sd (<2 x double > %x0 , <2 x double > %x1 , i32 5 , i8 %x3 , i32 8 )
@@ -5681,8 +5680,7 @@ define i8@test_int_x86_avx512_mask_cmp_sd_all(<2 x double> %x0, <2 x double> %x1
56815680; CHECK-NEXT: kandw %k2, %k1, %k1
56825681; CHECK-NEXT: korw %k1, %k0, %k0
56835682; CHECK-NEXT: kmovw %k0, %eax
5684- ; CHECK-NEXT: shlb $7, %al
5685- ; CHECK-NEXT: sarb $7, %al
5683+ ; CHECK-NEXT: andl $1, %eax
56865684; CHECK-NEXT: retq
56875685
56885686 %res1 = call i8 @llvm.x86.avx512.mask.cmp.sd (<2 x double > %x0 , <2 x double > %x1 , i32 2 , i8 -1 , i32 4 )
@@ -5705,8 +5703,7 @@ define i8@test_int_x86_avx512_mask_cmp_ss(<4 x float> %x0, <4 x float> %x1, i8 %
57055703; CHECK-NEXT: kmovw %edi, %k1
57065704; CHECK-NEXT: vcmpunordss %xmm1, %xmm0, %k0 {%k1}
57075705; CHECK-NEXT: kmovw %k0, %eax
5708- ; CHECK-NEXT: shlb $7, %al
5709- ; CHECK-NEXT: sarb $7, %al
5706+ ; CHECK-NEXT: andl $1, %eax
57105707; CHECK-NEXT: retq
57115708
57125709 %res2 = call i8 @llvm.x86.avx512.mask.cmp.ss (<4 x float > %x0 , <4 x float > %x1 , i32 3 , i8 %x3 , i32 4 )
@@ -5719,15 +5716,16 @@ define i8@test_int_x86_avx512_mask_cmp_ss_all(<4 x float> %x0, <4 x float> %x1,
57195716; CHECK: ## BB#0:
57205717; CHECK-NEXT: vcmpless %xmm1, %xmm0, %k1
57215718; CHECK-NEXT: vcmpunordss {sae}, %xmm1, %xmm0, %k0 {%k1}
5722- ; CHECK-NEXT: vcmpneqss %xmm1, %xmm0, %k1
5723- ; CHECK-NEXT: vcmpnltss {sae}, %xmm1, %xmm0, %k1 {%k1}
57245719; CHECK-NEXT: andl $1, %edi
5725- ; CHECK-NEXT: kmovw %edi, %k2
5726- ; CHECK-NEXT: kandw %k2, %k1, %k1
5727- ; CHECK-NEXT: kandw %k1, %k0, %k0
5720+ ; CHECK-NEXT: kmovw %edi, %k1
5721+ ; CHECK-NEXT: vcmpneqss %xmm1, %xmm0, %k2 {%k1}
5722+ ; CHECK-NEXT: kmovw %k2, %ecx
5723+ ; CHECK-NEXT: vcmpnltss {sae}, %xmm1, %xmm0, %k1 {%k1}
5724+ ; CHECK-NEXT: kmovw %k1, %edx
5725+ ; CHECK-NEXT: andl $1, %edx
57285726; CHECK-NEXT: kmovw %k0, %eax
5729- ; CHECK-NEXT: shlb $7 , %al
5730- ; CHECK-NEXT: sarb $7 , %al
5727+ ; CHECK-NEXT: andb %cl , %al
5728+ ; CHECK-NEXT: andb %dl , %al
57315729; CHECK-NEXT: retq
57325730 %res1 = call i8 @llvm.x86.avx512.mask.cmp.ss (<4 x float > %x0 , <4 x float > %x1 , i32 2 , i8 -1 , i32 4 )
57335731 %res2 = call i8 @llvm.x86.avx512.mask.cmp.ss (<4 x float > %x0 , <4 x float > %x1 , i32 3 , i8 -1 , i32 8 )
0 commit comments