@@ -2187,29 +2187,28 @@ define <16 x i8> @non_splat_minus_one_divisor_1(<16 x i8> %A) {
21872187; SSE41-NEXT: pxor %xmm0, %xmm0
21882188; SSE41-NEXT: pxor %xmm3, %xmm3
21892189; SSE41-NEXT: pcmpgtb %xmm1, %xmm3
2190- ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm4 = xmm3[0],zero,xmm3[1],zero,xmm3[2],zero,xmm3[3],zero,xmm3[4],zero,xmm3[5],zero,xmm3[6],zero,xmm3[7],zero
21912190; SSE41-NEXT: punpckhbw {{.*#+}} xmm3 = xmm3[8],xmm0[8],xmm3[9],xmm0[9],xmm3[10],xmm0[10],xmm3[11],xmm0[11],xmm3[12],xmm0[12],xmm3[13],xmm0[13],xmm3[14],xmm0[14],xmm3[15],xmm0[15]
21922191; SSE41-NEXT: pmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm3 # [256,2,2,2,2,128,2,128]
21932192; SSE41-NEXT: psrlw $8, %xmm3
2194- ; SSE41-NEXT: paddw %xmm4, %xmm4
2195- ; SSE41-NEXT: pmovsxbw %xmm1, %xmm2
2196- ; SSE41-NEXT: pblendw {{.*#+}} xmm2 = xmm2[0,1],xmm4[2],xmm2[3,4,5],xmm4[6],xmm2[7]
2193+ ; SSE41-NEXT: pmovsxbw %xmm1, %xmm0
2194+ ; SSE41-NEXT: pmovzxbw {{.*#+}} xmm2 = xmm1[0],zero,xmm1[1],zero,xmm1[2],zero,xmm1[3],zero,xmm1[4],zero,xmm1[5],zero,xmm1[6],zero,xmm1[7],zero
2195+ ; SSE41-NEXT: paddw %xmm2, %xmm2
2196+ ; SSE41-NEXT: pblendw {{.*#+}} xmm2 = xmm0[0,1],xmm2[2],xmm0[3,4,5],xmm2[6],xmm0[7]
21972197; SSE41-NEXT: psrlw $8, %xmm2
21982198; SSE41-NEXT: packuswb %xmm3, %xmm2
21992199; SSE41-NEXT: paddb %xmm1, %xmm2
22002200; SSE41-NEXT: movdqa %xmm2, %xmm0
22012201; SSE41-NEXT: punpckhbw {{.*#+}} xmm0 = xmm0[8],xmm2[8],xmm0[9],xmm2[9],xmm0[10],xmm2[10],xmm0[11],xmm2[11],xmm0[12],xmm2[12],xmm0[13],xmm2[13],xmm0[14],xmm2[14],xmm0[15],xmm2[15]
22022202; SSE41-NEXT: psraw $8, %xmm0
22032203; SSE41-NEXT: movdqa %xmm0, %xmm3
2204- ; SSE41-NEXT: paddw %xmm0, %xmm3
2205- ; SSE41-NEXT: psllw $7, %xmm0
2206- ; SSE41-NEXT: pblendw {{.*#+}} xmm0 = xmm0[0,1,2,3,4],xmm3[5],xmm0[6],xmm3[7]
2207- ; SSE41-NEXT: psrlw $8, %xmm0
2204+ ; SSE41-NEXT: psllw $7, %xmm3
2205+ ; SSE41-NEXT: pblendw {{.*#+}} xmm3 = xmm3[0,1,2,3,4],xmm0[5],xmm3[6],xmm0[7]
2206+ ; SSE41-NEXT: psrlw $8, %xmm3
22082207; SSE41-NEXT: punpcklbw {{.*#+}} xmm2 = xmm2[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
22092208; SSE41-NEXT: psraw $8, %xmm2
22102209; SSE41-NEXT: psllw $7, %xmm2
22112210; SSE41-NEXT: psrlw $8, %xmm2
2212- ; SSE41-NEXT: packuswb %xmm0 , %xmm2
2211+ ; SSE41-NEXT: packuswb %xmm3 , %xmm2
22132212; SSE41-NEXT: movaps {{.*#+}} xmm0 = [0,0,255,0,0,0,255,0,0,255,255,255,255,255,255,255]
22142213; SSE41-NEXT: pblendvb %xmm0, %xmm2, %xmm1
22152214; SSE41-NEXT: movdqa {{.*#+}} xmm0 = [255,255,0,255,255,255,0,255,255,0,0,0,0,255,0,255]
@@ -2225,18 +2224,17 @@ define <16 x i8> @non_splat_minus_one_divisor_1(<16 x i8> %A) {
22252224; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm1 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15]
22262225; AVX1-NEXT: vpmullw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1 # [256,2,2,2,2,128,2,128]
22272226; AVX1-NEXT: vpsrlw $8, %xmm1, %xmm1
2228- ; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm2 = xmm2[0],zero,xmm2[1],zero,xmm2[2],zero,xmm2[3],zero,xmm2[4],zero,xmm2[5],zero,xmm2[6],zero,xmm2[7],zero
2229- ; AVX1-NEXT: vpaddw %xmm2, %xmm2, %xmm2
2230- ; AVX1-NEXT: vpmovsxbw %xmm0 , %xmm3
2231- ; AVX1-NEXT: vpblendw {{.*#+}} xmm2 = xmm3 [0,1],xmm2 [2],xmm3 [3,4,5],xmm2 [6],xmm3 [7]
2227+ ; AVX1-NEXT: vpmovsxbw %xmm0, % xmm2
2228+ ; AVX1-NEXT: vpmovzxbw {{.*#+}} xmm3 = xmm0[0],zero,xmm0[1],zero,xmm0[2],zero,xmm0[3],zero,xmm0[4],zero,xmm0[5],zero,xmm0[6],zero,xmm0[7],zero
2229+ ; AVX1-NEXT: vpaddw %xmm3, %xmm3 , %xmm3
2230+ ; AVX1-NEXT: vpblendw {{.*#+}} xmm2 = xmm2 [0,1],xmm3 [2],xmm2 [3,4,5],xmm3 [6],xmm2 [7]
22322231; AVX1-NEXT: vpsrlw $8, %xmm2, %xmm2
22332232; AVX1-NEXT: vpackuswb %xmm1, %xmm2, %xmm1
22342233; AVX1-NEXT: vpaddb %xmm1, %xmm0, %xmm1
22352234; AVX1-NEXT: vpunpckhbw {{.*#+}} xmm2 = xmm1[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15]
22362235; AVX1-NEXT: vpsraw $8, %xmm2, %xmm2
2237- ; AVX1-NEXT: vpaddw %xmm2, %xmm2, %xmm3
2238- ; AVX1-NEXT: vpsllw $7, %xmm2, %xmm2
2239- ; AVX1-NEXT: vpblendw {{.*#+}} xmm2 = xmm2[0,1,2,3,4],xmm3[5],xmm2[6],xmm3[7]
2236+ ; AVX1-NEXT: vpsllw $7, %xmm2, %xmm3
2237+ ; AVX1-NEXT: vpblendw {{.*#+}} xmm2 = xmm3[0,1,2,3,4],xmm2[5],xmm3[6],xmm2[7]
22402238; AVX1-NEXT: vpsrlw $8, %xmm2, %xmm2
22412239; AVX1-NEXT: vpunpcklbw {{.*#+}} xmm1 = xmm1[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7]
22422240; AVX1-NEXT: vpsraw $8, %xmm1, %xmm1
0 commit comments