@@ -5659,8 +5659,7 @@ define i8@test_int_x86_avx512_mask_cmp_sd(<2 x double> %x0, <2 x double> %x1, i8
5659
5659
; CHECK-NEXT: kmovw %edi, %k1
5660
5660
; CHECK-NEXT: vcmpnltsd {sae}, %xmm1, %xmm0, %k0 {%k1}
5661
5661
; CHECK-NEXT: kmovw %k0, %eax
5662
- ; CHECK-NEXT: shlb $7, %al
5663
- ; CHECK-NEXT: sarb $7, %al
5662
+ ; CHECK-NEXT: andl $1, %eax
5664
5663
; CHECK-NEXT: retq
5665
5664
5666
5665
%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
5681
5680
; CHECK-NEXT: kandw %k2, %k1, %k1
5682
5681
; CHECK-NEXT: korw %k1, %k0, %k0
5683
5682
; CHECK-NEXT: kmovw %k0, %eax
5684
- ; CHECK-NEXT: shlb $7, %al
5685
- ; CHECK-NEXT: sarb $7, %al
5683
+ ; CHECK-NEXT: andl $1, %eax
5686
5684
; CHECK-NEXT: retq
5687
5685
5688
5686
%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 %
5705
5703
; CHECK-NEXT: kmovw %edi, %k1
5706
5704
; CHECK-NEXT: vcmpunordss %xmm1, %xmm0, %k0 {%k1}
5707
5705
; CHECK-NEXT: kmovw %k0, %eax
5708
- ; CHECK-NEXT: shlb $7, %al
5709
- ; CHECK-NEXT: sarb $7, %al
5706
+ ; CHECK-NEXT: andl $1, %eax
5710
5707
; CHECK-NEXT: retq
5711
5708
5712
5709
%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,
5719
5716
; CHECK: ## BB#0:
5720
5717
; CHECK-NEXT: vcmpless %xmm1, %xmm0, %k1
5721
5718
; CHECK-NEXT: vcmpunordss {sae}, %xmm1, %xmm0, %k0 {%k1}
5722
- ; CHECK-NEXT: vcmpneqss %xmm1, %xmm0, %k1
5723
- ; CHECK-NEXT: vcmpnltss {sae}, %xmm1, %xmm0, %k1 {%k1}
5724
5719
; 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
5728
5726
; 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
5731
5729
; CHECK-NEXT: retq
5732
5730
%res1 = call i8 @llvm.x86.avx512.mask.cmp.ss (<4 x float > %x0 , <4 x float > %x1 , i32 2 , i8 -1 , i32 4 )
5733
5731
%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