@@ -1684,12 +1684,12 @@ define <64 x i8> @var_shl_v64i8(<64 x i8> %a, <64 x i8> %b) nounwind {
16841684;
16851685; GFNIAVX512BW-LABEL: var_shl_v64i8:
16861686; GFNIAVX512BW: # %bb.0:
1687- ; GFNIAVX512BW-NEXT: vpsrlw $8 , %zmm1, %zmm2
1688- ; GFNIAVX512BW-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16} , %zmm0, %zmm3
1689- ; GFNIAVX512BW-NEXT: vpsllvw %zmm2 , %zmm3 , %zmm2
1690- ; GFNIAVX512BW-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm1 , %zmm1
1687+ ; GFNIAVX512BW-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16} , %zmm1, %zmm2
1688+ ; GFNIAVX512BW-NEXT: vpsllvw %zmm2 , %zmm0, %zmm2
1689+ ; GFNIAVX512BW-NEXT: vpsrlw $8 , %zmm1 , %zmm1
1690+ ; GFNIAVX512BW-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to16}, %zmm0 , %zmm0
16911691; GFNIAVX512BW-NEXT: vpsllvw %zmm1, %zmm0, %zmm0
1692- ; GFNIAVX512BW-NEXT: movabsq $-6148914691236517206 , %rax # imm = 0xAAAAAAAAAAAAAAAA
1692+ ; GFNIAVX512BW-NEXT: movabsq $6148914691236517205 , %rax # imm = 0x5555555555555555
16931693; GFNIAVX512BW-NEXT: kmovq %rax, %k1
16941694; GFNIAVX512BW-NEXT: vmovdqu8 %zmm2, %zmm0 {%k1}
16951695; GFNIAVX512BW-NEXT: retq
@@ -1875,16 +1875,15 @@ define <64 x i8> @var_lshr_v64i8(<64 x i8> %a, <64 x i8> %b) nounwind {
18751875;
18761876; GFNIAVX512BW-LABEL: var_lshr_v64i8:
18771877; GFNIAVX512BW: # %bb.0:
1878- ; GFNIAVX512BW-NEXT: vpbroadcastw {{.*#+}} zmm2 = [255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0, 255,0 ]
1878+ ; GFNIAVX512BW-NEXT: vpbroadcastw {{.*#+}} zmm2 = [255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]
18791879; GFNIAVX512BW-NEXT: vpandq %zmm2, %zmm1, %zmm3
18801880; GFNIAVX512BW-NEXT: vpandq %zmm2, %zmm0, %zmm2
18811881; GFNIAVX512BW-NEXT: vpsrlvw %zmm3, %zmm2, %zmm2
18821882; GFNIAVX512BW-NEXT: vpsrlw $8, %zmm1, %zmm1
18831883; GFNIAVX512BW-NEXT: vpsrlvw %zmm1, %zmm0, %zmm0
1884- ; GFNIAVX512BW-NEXT: movabsq $-6148914691236517206 , %rax # imm = 0xAAAAAAAAAAAAAAAA
1884+ ; GFNIAVX512BW-NEXT: movabsq $6148914691236517205 , %rax # imm = 0x5555555555555555
18851885; GFNIAVX512BW-NEXT: kmovq %rax, %k1
1886- ; GFNIAVX512BW-NEXT: vmovdqu8 %zmm0, %zmm2 {%k1}
1887- ; GFNIAVX512BW-NEXT: vmovdqa64 %zmm2, %zmm0
1886+ ; GFNIAVX512BW-NEXT: vmovdqu8 %zmm2, %zmm0 {%k1}
18881887; GFNIAVX512BW-NEXT: retq
18891888 %shift = lshr <64 x i8 > %a , %b
18901889 ret <64 x i8 > %shift
@@ -2238,9 +2237,10 @@ define <64 x i8> @var_ashr_v64i8(<64 x i8> %a, <64 x i8> %b) nounwind {
22382237; GFNIAVX512BW-NEXT: vpsllw $8, %zmm0, %zmm0
22392238; GFNIAVX512BW-NEXT: vpsraw $8, %zmm0, %zmm0
22402239; GFNIAVX512BW-NEXT: vpsravw %zmm1, %zmm0, %zmm0
2241- ; GFNIAVX512BW-NEXT: movabsq $-6148914691236517206 , %rax # imm = 0xAAAAAAAAAAAAAAAA
2240+ ; GFNIAVX512BW-NEXT: movabsq $6148914691236517205 , %rax # imm = 0x5555555555555555
22422241; GFNIAVX512BW-NEXT: kmovq %rax, %k1
2243- ; GFNIAVX512BW-NEXT: vmovdqu8 %zmm2, %zmm0 {%k1}
2242+ ; GFNIAVX512BW-NEXT: vmovdqu8 %zmm0, %zmm2 {%k1}
2243+ ; GFNIAVX512BW-NEXT: vmovdqa64 %zmm2, %zmm0
22442244; GFNIAVX512BW-NEXT: retq
22452245 %shift = ashr <64 x i8 > %a , %b
22462246 ret <64 x i8 > %shift
0 commit comments