@@ -265,8 +265,9 @@ define <4 x i64> @ext_i4_4i64(i4 %a0) {
265
265
; AVX1-NEXT: vmovd %edi, %xmm0
266
266
; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
267
267
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
268
- ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
269
- ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
268
+ ; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8]
269
+ ; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
270
+ ; AVX1-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm1
270
271
; AVX1-NEXT: vpsrlq $63, %xmm1, %xmm1
271
272
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
272
273
; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
@@ -324,8 +325,9 @@ define <8 x i32> @ext_i8_8i32(i8 %a0) {
324
325
; AVX1-NEXT: vmovd %edi, %xmm0
325
326
; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
326
327
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
327
- ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
328
- ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
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
329
331
; AVX1-NEXT: vpsrld $31, %xmm1, %xmm1
330
332
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
331
333
; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
@@ -385,8 +387,9 @@ define <16 x i16> @ext_i16_16i16(i16 %a0) {
385
387
; AVX1-NEXT: vpshuflw {{.*#+}} xmm0 = xmm0[0,0,0,0,4,5,6,7]
386
388
; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
387
389
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
388
- ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
389
- ; AVX1-NEXT: vpcmpeqw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm1
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
390
393
; AVX1-NEXT: vpsrlw $15, %xmm1, %xmm1
391
394
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
392
395
; AVX1-NEXT: vpcmpeqw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
@@ -544,15 +547,17 @@ define <8 x i64> @ext_i8_8i64(i8 %a0) {
544
547
; AVX1-NEXT: vmovd %edi, %xmm0
545
548
; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,1,0,1]
546
549
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm1
547
- ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
548
- ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
549
- ; AVX1-NEXT: vpsrlq $63, %xmm2, %xmm2
550
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
551
- ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
550
+ ; AVX1-NEXT: vmovaps {{.*#+}} ymm0 = [1,2,4,8]
551
+ ; AVX1-NEXT: vandps %ymm0, %ymm1, %ymm2
552
+ ; AVX1-NEXT: vpcmpeqq %xmm0, %xmm2, %xmm0
552
553
; 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
554
+ ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm2
555
+ ; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
556
+ ; 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
556
561
; AVX1-NEXT: vpsrlq $63, %xmm2, %xmm2
557
562
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
558
563
; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
@@ -623,15 +628,17 @@ define <16 x i32> @ext_i16_16i32(i16 %a0) {
623
628
; AVX1-NEXT: vmovd %edi, %xmm0
624
629
; AVX1-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[0,0,0,0]
625
630
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm1
626
- ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm0
627
- ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm2
628
- ; AVX1-NEXT: vpsrld $31, %xmm2, %xmm2
629
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
630
- ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
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
631
634
; 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
635
+ ; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm2
636
+ ; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
637
+ ; 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
635
642
; AVX1-NEXT: vpsrld $31, %xmm2, %xmm2
636
643
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
637
644
; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
@@ -705,22 +712,21 @@ define <32 x i16> @ext_i32_32i16(i32 %a0) {
705
712
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
706
713
; AVX1-NEXT: vmovaps {{.*#+}} ymm2 = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768]
707
714
; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
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
715
+ ; AVX1-NEXT: vpcmpeqw %xmm2, %xmm0, %xmm3
716
+ ; AVX1-NEXT: vpsrlw $15, %xmm3, %xmm3
711
717
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
712
- ; AVX1-NEXT: vmovdqa {{.*#+}} xmm5 = [256,512,1024,2048,4096,8192,16384,32768]
713
- ; AVX1-NEXT: vpcmpeqw %xmm5 , %xmm0, %xmm0
718
+ ; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [256,512,1024,2048,4096,8192,16384,32768]
719
+ ; AVX1-NEXT: vpcmpeqw %xmm4 , %xmm0, %xmm0
714
720
; AVX1-NEXT: vpsrlw $15, %xmm0, %xmm0
715
- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm4 , %ymm0
721
+ ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm3 , %ymm0
716
722
; AVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[1,1,1,1,4,5,6,7]
717
723
; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
718
724
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm1
719
725
; AVX1-NEXT: vandps %ymm2, %ymm1, %ymm1
720
- ; AVX1-NEXT: vpcmpeqw %xmm3 , %xmm1, %xmm2
726
+ ; AVX1-NEXT: vpcmpeqw %xmm2 , %xmm1, %xmm2
721
727
; AVX1-NEXT: vpsrlw $15, %xmm2, %xmm2
722
728
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
723
- ; AVX1-NEXT: vpcmpeqw %xmm5 , %xmm1, %xmm1
729
+ ; AVX1-NEXT: vpcmpeqw %xmm4 , %xmm1, %xmm1
724
730
; AVX1-NEXT: vpsrlw $15, %xmm1, %xmm1
725
731
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
726
732
; AVX1-NEXT: retq
0 commit comments