@@ -265,9 +265,8 @@ define <4 x i64> @ext_i4_4i64(i4 %a0) {
265265; AVX1-NEXT: vmovd %edi, %xmm0
266266; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
267267; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
268- ; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8]
269- ; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
270- ; AVX1-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm1
268+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
269+ ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
271270; AVX1-NEXT: vpsrlq $63, %xmm1, %xmm1
272271; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
273272; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
@@ -325,9 +324,8 @@ define <8 x i32> @ext_i8_8i32(i8 %a0) {
325324; AVX1-NEXT: vmovd %edi, %xmm0
326325; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
327326; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
328- ; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8,16,32,64,128]
329- ; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
330- ; AVX1-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm1
327+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
328+ ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
331329; AVX1-NEXT: vpsrld $31, %xmm1, %xmm1
332330; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
333331; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
@@ -387,9 +385,8 @@ define <16 x i16> @ext_i16_16i16(i16 %a0) {
387385; AVX1-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
388386; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
389387; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
390- ; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768]
391- ; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
392- ; AVX1-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm1
388+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
389+ ; AVX1-NEXT: vpcmpeqw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
393390; AVX1-NEXT: vpsrlw $15, %xmm1, %xmm1
394391; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
395392; AVX1-NEXT: vpcmpeqw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
@@ -547,17 +544,15 @@ define <8 x i64> @ext_i8_8i64(i8 %a0) {
547544; AVX1-NEXT: vmovd %edi, %xmm0
548545; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
549546; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm1
550- ; AVX1-NEXT: vmovaps {{.*#+}} ymm0 = [1,2,4,8]
551- ; AVX1-NEXT: vandps %ymm0, %ymm1, %ymm2
552- ; AVX1-NEXT: vpcmpeqq %xmm0, %xmm2, %xmm0
553- ; AVX1-NEXT: vpsrlq $63, %xmm0, %xmm0
554- ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm2
555- ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
547+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
548+ ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
556549; AVX1-NEXT: vpsrlq $63, %xmm2, %xmm2
557- ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
558- ; AVX1-NEXT: vmovaps {{.*#+}} ymm2 = [16,32,64,128]
559- ; AVX1-NEXT: vandps %ymm2, %ymm1, %ymm1
560- ; AVX1-NEXT: vpcmpeqq %xmm2, %xmm1, %xmm2
550+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
551+ ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
552+ ; AVX1-NEXT: vpsrlq $63, %xmm0, %xmm0
553+ ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm0
554+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
555+ ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm2
561556; AVX1-NEXT: vpsrlq $63, %xmm2, %xmm2
562557; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
563558; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
@@ -628,17 +623,15 @@ define <16 x i32> @ext_i16_16i32(i16 %a0) {
628623; AVX1-NEXT: vmovd %edi, %xmm0
629624; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
630625; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm1
631- ; AVX1-NEXT: vmovaps {{.*#+}} ymm0 = [1,2,4,8,16,32,64,128]
632- ; AVX1-NEXT: vandps %ymm0, %ymm1, %ymm2
633- ; AVX1-NEXT: vpcmpeqd %xmm0, %xmm2, %xmm0
634- ; AVX1-NEXT: vpsrld $31, %xmm0, %xmm0
635- ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm2
636- ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
626+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
627+ ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
637628; AVX1-NEXT: vpsrld $31, %xmm2, %xmm2
638- ; AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0
639- ; AVX1-NEXT: vmovaps {{.*#+}} ymm2 = [256,512,1024,2048,4096,8192,16384,32768]
640- ; AVX1-NEXT: vandps %ymm2, %ymm1, %ymm1
641- ; AVX1-NEXT: vpcmpeqd %xmm2, %xmm1, %xmm2
629+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
630+ ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
631+ ; AVX1-NEXT: vpsrld $31, %xmm0, %xmm0
632+ ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm2, %ymm0
633+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
634+ ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm2
642635; AVX1-NEXT: vpsrld $31, %xmm2, %xmm2
643636; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
644637; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
@@ -712,21 +705,22 @@ define <32 x i16> @ext_i32_32i16(i32 %a0) {
712705; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
713706; AVX1-NEXT: vmovaps {{.*#+}} ymm2 = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768]
714707; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
715- ; AVX1-NEXT: vpcmpeqw %xmm2, %xmm0, %xmm3
716- ; AVX1-NEXT: vpsrlw $15, %xmm3, %xmm3
708+ ; AVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [1,2,4,8,16,32,64,128]
709+ ; AVX1-NEXT: vpcmpeqw %xmm3, %xmm0, %xmm4
710+ ; AVX1-NEXT: vpsrlw $15, %xmm4, %xmm4
717711; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
718- ; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [256,512,1024,2048,4096,8192,16384,32768]
719- ; AVX1-NEXT: vpcmpeqw %xmm4 , %xmm0, %xmm0
712+ ; AVX1-NEXT: vmovdqa {{.*#+}} xmm5 = [256,512,1024,2048,4096,8192,16384,32768]
713+ ; AVX1-NEXT: vpcmpeqw %xmm5 , %xmm0, %xmm0
720714; AVX1-NEXT: vpsrlw $15, %xmm0, %xmm0
721- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm3 , %ymm0
715+ ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm4 , %ymm0
722716; AVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[1,1,1,1,4,5,6,7]
723717; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
724718; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm1
725719; AVX1-NEXT: vandps %ymm2, %ymm1, %ymm1
726- ; AVX1-NEXT: vpcmpeqw %xmm2 , %xmm1, %xmm2
720+ ; AVX1-NEXT: vpcmpeqw %xmm3 , %xmm1, %xmm2
727721; AVX1-NEXT: vpsrlw $15, %xmm2, %xmm2
728722; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
729- ; AVX1-NEXT: vpcmpeqw %xmm4 , %xmm1, %xmm1
723+ ; AVX1-NEXT: vpcmpeqw %xmm5 , %xmm1, %xmm1
730724; AVX1-NEXT: vpsrlw $15, %xmm1, %xmm1
731725; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
732726; AVX1-NEXT: retq
0 commit comments