@@ -180,7 +180,6 @@ define <16 x i8> @ext_i16_16i8(i16 %a0) {
180
180
; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
181
181
; SSE2-NEXT: pand %xmm1, %xmm0
182
182
; SSE2-NEXT: pcmpeqb %xmm1, %xmm0
183
- ; SSE2-NEXT: psrlw $7, %xmm0
184
183
; SSE2-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
185
184
; SSE2-NEXT: retq
186
185
;
@@ -191,7 +190,6 @@ define <16 x i8> @ext_i16_16i8(i16 %a0) {
191
190
; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
192
191
; SSSE3-NEXT: pand %xmm1, %xmm0
193
192
; SSSE3-NEXT: pcmpeqb %xmm1, %xmm0
194
- ; SSSE3-NEXT: psrlw $7, %xmm0
195
193
; SSSE3-NEXT: pand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
196
194
; SSSE3-NEXT: retq
197
195
;
@@ -203,7 +201,6 @@ define <16 x i8> @ext_i16_16i8(i16 %a0) {
203
201
; AVX1-NEXT: # xmm1 = mem[0,0]
204
202
; AVX1-NEXT: vpand %xmm1, %xmm0, %xmm0
205
203
; AVX1-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
206
- ; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
207
204
; AVX1-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
208
205
; AVX1-NEXT: retq
209
206
;
@@ -214,7 +211,6 @@ define <16 x i8> @ext_i16_16i8(i16 %a0) {
214
211
; AVX2-NEXT: vpbroadcastq {{.*#+}} xmm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
215
212
; AVX2-NEXT: vpand %xmm1, %xmm0, %xmm0
216
213
; AVX2-NEXT: vpcmpeqb %xmm1, %xmm0, %xmm0
217
- ; AVX2-NEXT: vpsrlw $7, %xmm0, %xmm0
218
214
; AVX2-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
219
215
; AVX2-NEXT: retq
220
216
;
@@ -268,11 +264,10 @@ define <4 x i64> @ext_i4_4i64(i4 %a0) {
268
264
; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8]
269
265
; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
270
266
; AVX1-NEXT: vpcmpeqq %xmm1, %xmm0, %xmm1
271
- ; AVX1-NEXT: vpsrlq $63, %xmm1, %xmm1
272
267
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
273
268
; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
274
- ; AVX1-NEXT: vpsrlq $63, %xmm0, %xmm0
275
269
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
270
+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
276
271
; AVX1-NEXT: retq
277
272
;
278
273
; AVX2-LABEL: ext_i4_4i64:
@@ -328,11 +323,10 @@ define <8 x i32> @ext_i8_8i32(i8 %a0) {
328
323
; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8,16,32,64,128]
329
324
; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
330
325
; AVX1-NEXT: vpcmpeqd %xmm1, %xmm0, %xmm1
331
- ; AVX1-NEXT: vpsrld $31, %xmm1, %xmm1
332
326
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
333
327
; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
334
- ; AVX1-NEXT: vpsrld $31, %xmm0, %xmm0
335
328
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
329
+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
336
330
; AVX1-NEXT: retq
337
331
;
338
332
; AVX2-LABEL: ext_i8_8i32:
@@ -390,11 +384,10 @@ define <16 x i16> @ext_i16_16i16(i16 %a0) {
390
384
; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768]
391
385
; AVX1-NEXT: vandps %ymm1, %ymm0, %ymm0
392
386
; AVX1-NEXT: vpcmpeqw %xmm1, %xmm0, %xmm1
393
- ; AVX1-NEXT: vpsrlw $15, %xmm1, %xmm1
394
387
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
395
388
; AVX1-NEXT: vpcmpeqw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0, %xmm0
396
- ; AVX1-NEXT: vpsrlw $15, %xmm0, %xmm0
397
389
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm0
390
+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
398
391
; AVX1-NEXT: retq
399
392
;
400
393
; AVX2-LABEL: ext_i16_16i16:
@@ -436,14 +429,12 @@ define <32 x i8> @ext_i32_32i8(i32 %a0) {
436
429
; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm2 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
437
430
; SSE2-SSSE3-NEXT: pand %xmm2, %xmm0
438
431
; SSE2-SSSE3-NEXT: pcmpeqb %xmm2, %xmm0
439
- ; SSE2-SSSE3-NEXT: psrlw $7, %xmm0
440
432
; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
441
433
; SSE2-SSSE3-NEXT: pand %xmm3, %xmm0
442
434
; SSE2-SSSE3-NEXT: pshuflw {{.*#+}} xmm1 = xmm1[2,2,3,3,4,5,6,7]
443
435
; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
444
436
; SSE2-SSSE3-NEXT: pand %xmm2, %xmm1
445
437
; SSE2-SSSE3-NEXT: pcmpeqb %xmm2, %xmm1
446
- ; SSE2-SSSE3-NEXT: psrlw $7, %xmm1
447
438
; SSE2-SSSE3-NEXT: pand %xmm3, %xmm1
448
439
; SSE2-SSSE3-NEXT: retq
449
440
;
@@ -460,13 +451,9 @@ define <32 x i8> @ext_i32_32i8(i32 %a0) {
460
451
; AVX1-NEXT: vmovddup {{.*#+}} xmm2 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
461
452
; AVX1-NEXT: # xmm2 = mem[0,0]
462
453
; AVX1-NEXT: vpcmpeqb %xmm2, %xmm1, %xmm1
463
- ; AVX1-NEXT: vpsrlw $7, %xmm1, %xmm1
464
- ; AVX1-NEXT: vbroadcastss {{.*#+}} xmm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
465
- ; AVX1-NEXT: vpand %xmm3, %xmm1, %xmm1
466
454
; AVX1-NEXT: vpcmpeqb %xmm2, %xmm0, %xmm0
467
- ; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
468
- ; AVX1-NEXT: vpand %xmm3, %xmm0, %xmm0
469
455
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
456
+ ; AVX1-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
470
457
; AVX1-NEXT: retq
471
458
;
472
459
; AVX2-LABEL: ext_i32_32i8:
@@ -477,7 +464,6 @@ define <32 x i8> @ext_i32_32i8(i32 %a0) {
477
464
; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm1 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
478
465
; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm0
479
466
; AVX2-NEXT: vpcmpeqb %ymm1, %ymm0, %ymm0
480
- ; AVX2-NEXT: vpsrlw $7, %ymm0, %ymm0
481
467
; AVX2-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
482
468
; AVX2-NEXT: retq
483
469
;
@@ -550,19 +536,18 @@ define <8 x i64> @ext_i8_8i64(i8 %a0) {
550
536
; AVX1-NEXT: vmovaps {{.*#+}} ymm0 = [1,2,4,8]
551
537
; AVX1-NEXT: vandps %ymm0, %ymm1, %ymm2
552
538
; AVX1-NEXT: vpcmpeqq %xmm0, %xmm2, %xmm0
553
- ; AVX1-NEXT: vpsrlq $63, %xmm0, %xmm0
554
539
; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm2
555
540
; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
556
- ; AVX1-NEXT: vpsrlq $63, %xmm2, %xmm2
557
541
; 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
561
- ; AVX1-NEXT: vpsrlq $63, %xmm2, %xmm2
542
+ ; AVX1-NEXT: vbroadcastsd {{.*#+}} ymm2 = [1,1,1,1]
543
+ ; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
544
+ ; AVX1-NEXT: vmovaps {{.*#+}} ymm3 = [16,32,64,128]
545
+ ; AVX1-NEXT: vandps %ymm3, %ymm1, %ymm1
546
+ ; AVX1-NEXT: vpcmpeqq %xmm3, %xmm1, %xmm3
562
547
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
563
548
; AVX1-NEXT: vpcmpeqq {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
564
- ; AVX1-NEXT: vpsrlq $63 , %xmm1, %xmm1
565
- ; AVX1-NEXT: vinsertf128 $1, %xmm1 , %ymm2 , %ymm1
549
+ ; AVX1-NEXT: vinsertf128 $1 , %xmm1, %ymm3, %ymm1
550
+ ; AVX1-NEXT: vandps %ymm2 , %ymm1 , %ymm1
566
551
; AVX1-NEXT: retq
567
552
;
568
553
; AVX2-LABEL: ext_i8_8i64:
@@ -631,19 +616,18 @@ define <16 x i32> @ext_i16_16i32(i16 %a0) {
631
616
; AVX1-NEXT: vmovaps {{.*#+}} ymm0 = [1,2,4,8,16,32,64,128]
632
617
; AVX1-NEXT: vandps %ymm0, %ymm1, %ymm2
633
618
; AVX1-NEXT: vpcmpeqd %xmm0, %xmm2, %xmm0
634
- ; AVX1-NEXT: vpsrld $31, %xmm0, %xmm0
635
619
; AVX1-NEXT: vextractf128 $1, %ymm2, %xmm2
636
620
; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
637
- ; AVX1-NEXT: vpsrld $31, %xmm2, %xmm2
638
621
; 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
642
- ; AVX1-NEXT: vpsrld $31, %xmm2, %xmm2
622
+ ; AVX1-NEXT: vbroadcastss {{.*#+}} ymm2 = [1,1,1,1,1,1,1,1]
623
+ ; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
624
+ ; AVX1-NEXT: vmovaps {{.*#+}} ymm3 = [256,512,1024,2048,4096,8192,16384,32768]
625
+ ; AVX1-NEXT: vandps %ymm3, %ymm1, %ymm1
626
+ ; AVX1-NEXT: vpcmpeqd %xmm3, %xmm1, %xmm3
643
627
; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
644
628
; AVX1-NEXT: vpcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
645
- ; AVX1-NEXT: vpsrld $31 , %xmm1, %xmm1
646
- ; AVX1-NEXT: vinsertf128 $1, %xmm1 , %ymm2 , %ymm1
629
+ ; AVX1-NEXT: vinsertf128 $1 , %xmm1, %ymm3, %ymm1
630
+ ; AVX1-NEXT: vandps %ymm2 , %ymm1 , %ymm1
647
631
; AVX1-NEXT: retq
648
632
;
649
633
; AVX2-LABEL: ext_i16_16i32:
@@ -712,23 +696,22 @@ define <32 x i16> @ext_i32_32i16(i32 %a0) {
712
696
; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm0
713
697
; AVX1-NEXT: vmovaps {{.*#+}} ymm2 = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768]
714
698
; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
715
- ; AVX1-NEXT: vpcmpeqw %xmm2, %xmm0, %xmm3
716
- ; AVX1-NEXT: vpsrlw $15, %xmm3, %xmm3
717
- ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
699
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
718
700
; AVX1-NEXT: vmovdqa {{.*#+}} xmm4 = [256,512,1024,2048,4096,8192,16384,32768]
719
- ; AVX1-NEXT: vpcmpeqw %xmm4, %xmm0, %xmm0
720
- ; AVX1-NEXT: vpsrlw $15, %xmm0, %xmm0
721
- ; AVX1-NEXT: vinsertf128 $1, %xmm0, %ymm3, %ymm0
701
+ ; AVX1-NEXT: vpcmpeqw %xmm4, %xmm3, %xmm3
702
+ ; AVX1-NEXT: vpcmpeqw %xmm2, %xmm0, %xmm0
703
+ ; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm0
704
+ ; AVX1-NEXT: vbroadcastss {{.*#+}} ymm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
705
+ ; AVX1-NEXT: vandps %ymm3, %ymm0, %ymm0
722
706
; AVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[1,1,1,1,4,5,6,7]
723
707
; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
724
708
; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm1
725
709
; AVX1-NEXT: vandps %ymm2, %ymm1, %ymm1
726
- ; AVX1-NEXT: vpcmpeqw %xmm2, %xmm1, %xmm2
727
- ; AVX1-NEXT: vpsrlw $15, %xmm2, %xmm2
728
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm1
729
- ; AVX1-NEXT: vpcmpeqw %xmm4, %xmm1, %xmm1
730
- ; AVX1-NEXT: vpsrlw $15, %xmm1, %xmm1
731
- ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm1
710
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm5
711
+ ; AVX1-NEXT: vpcmpeqw %xmm4, %xmm5, %xmm4
712
+ ; AVX1-NEXT: vpcmpeqw %xmm2, %xmm1, %xmm1
713
+ ; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm1, %ymm1
714
+ ; AVX1-NEXT: vandps %ymm3, %ymm1, %ymm1
732
715
; AVX1-NEXT: retq
733
716
;
734
717
; AVX2-LABEL: ext_i32_32i16:
@@ -782,26 +765,22 @@ define <64 x i8> @ext_i64_64i8(i64 %a0) {
782
765
; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
783
766
; SSE2-SSSE3-NEXT: pand %xmm4, %xmm0
784
767
; SSE2-SSSE3-NEXT: pcmpeqb %xmm4, %xmm0
785
- ; SSE2-SSSE3-NEXT: psrlw $7, %xmm0
786
768
; SSE2-SSSE3-NEXT: movdqa {{.*#+}} xmm5 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
787
769
; SSE2-SSSE3-NEXT: pand %xmm5, %xmm0
788
770
; SSE2-SSSE3-NEXT: pshuflw {{.*#+}} xmm1 = xmm3[2,2,3,3,4,5,6,7]
789
771
; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm1 = xmm1[0,0,1,1]
790
772
; SSE2-SSSE3-NEXT: pand %xmm4, %xmm1
791
773
; SSE2-SSSE3-NEXT: pcmpeqb %xmm4, %xmm1
792
- ; SSE2-SSSE3-NEXT: psrlw $7, %xmm1
793
774
; SSE2-SSSE3-NEXT: pand %xmm5, %xmm1
794
775
; SSE2-SSSE3-NEXT: pshufhw {{.*#+}} xmm2 = xmm3[0,1,2,3,4,4,5,5]
795
776
; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,2,3,3]
796
777
; SSE2-SSSE3-NEXT: pand %xmm4, %xmm2
797
778
; SSE2-SSSE3-NEXT: pcmpeqb %xmm4, %xmm2
798
- ; SSE2-SSSE3-NEXT: psrlw $7, %xmm2
799
779
; SSE2-SSSE3-NEXT: pand %xmm5, %xmm2
800
780
; SSE2-SSSE3-NEXT: pshufhw {{.*#+}} xmm3 = xmm3[0,1,2,3,6,6,7,7]
801
781
; SSE2-SSSE3-NEXT: pshufd {{.*#+}} xmm3 = xmm3[2,2,3,3]
802
782
; SSE2-SSSE3-NEXT: pand %xmm4, %xmm3
803
783
; SSE2-SSSE3-NEXT: pcmpeqb %xmm4, %xmm3
804
- ; SSE2-SSSE3-NEXT: psrlw $7, %xmm3
805
784
; SSE2-SSSE3-NEXT: pand %xmm5, %xmm3
806
785
; SSE2-SSSE3-NEXT: retq
807
786
;
@@ -817,26 +796,20 @@ define <64 x i8> @ext_i64_64i8(i64 %a0) {
817
796
; AVX1-NEXT: vandps %ymm2, %ymm0, %ymm0
818
797
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm3
819
798
; AVX1-NEXT: vpcmpeqb %xmm2, %xmm3, %xmm3
820
- ; AVX1-NEXT: vpsrlw $7, %xmm3, %xmm3
821
- ; AVX1-NEXT: vbroadcastss {{.*#+}} xmm4 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
822
- ; AVX1-NEXT: vpand %xmm4, %xmm3, %xmm3
823
799
; AVX1-NEXT: vpcmpeqb %xmm2, %xmm0, %xmm0
824
- ; AVX1-NEXT: vpsrlw $7, %xmm0, %xmm0
825
- ; AVX1-NEXT: vpand %xmm4, %xmm0, %xmm0
826
800
; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm0
827
- ; AVX1-NEXT: vpshufhw {{.*#+}} xmm3 = xmm1[0,1,2,3,4,4,5,5]
801
+ ; AVX1-NEXT: vbroadcastss {{.*#+}} ymm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
802
+ ; AVX1-NEXT: vandps %ymm3, %ymm0, %ymm0
803
+ ; AVX1-NEXT: vpshufhw {{.*#+}} xmm4 = xmm1[0,1,2,3,4,4,5,5]
828
804
; AVX1-NEXT: vpshufhw {{.*#+}} xmm1 = xmm1[0,1,2,3,6,6,7,7]
829
- ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm3 , %ymm1
805
+ ; AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm4 , %ymm1
830
806
; AVX1-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,2,3,3,6,6,7,7]
831
807
; AVX1-NEXT: vandps %ymm2, %ymm1, %ymm1
832
- ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm3
833
- ; AVX1-NEXT: vpcmpeqb %xmm2, %xmm3, %xmm3
834
- ; AVX1-NEXT: vpsrlw $7, %xmm3, %xmm3
835
- ; AVX1-NEXT: vpand %xmm4, %xmm3, %xmm3
808
+ ; AVX1-NEXT: vextractf128 $1, %ymm1, %xmm4
809
+ ; AVX1-NEXT: vpcmpeqb %xmm2, %xmm4, %xmm4
836
810
; AVX1-NEXT: vpcmpeqb %xmm2, %xmm1, %xmm1
837
- ; AVX1-NEXT: vpsrlw $7, %xmm1, %xmm1
838
- ; AVX1-NEXT: vpand %xmm4, %xmm1, %xmm1
839
- ; AVX1-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1
811
+ ; AVX1-NEXT: vinsertf128 $1, %xmm4, %ymm1, %ymm1
812
+ ; AVX1-NEXT: vandps %ymm3, %ymm1, %ymm1
840
813
; AVX1-NEXT: retq
841
814
;
842
815
; AVX2-LABEL: ext_i64_64i8:
@@ -847,13 +820,11 @@ define <64 x i8> @ext_i64_64i8(i64 %a0) {
847
820
; AVX2-NEXT: vpbroadcastq {{.*#+}} ymm2 = [1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128,1,2,4,8,16,32,64,128]
848
821
; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm0
849
822
; AVX2-NEXT: vpcmpeqb %ymm2, %ymm0, %ymm0
850
- ; AVX2-NEXT: vpsrlw $7, %ymm0, %ymm0
851
823
; AVX2-NEXT: vpbroadcastb {{.*#+}} ymm3 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
852
824
; AVX2-NEXT: vpand %ymm3, %ymm0, %ymm0
853
825
; AVX2-NEXT: vpshufb {{.*#+}} ymm1 = ymm1[4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23]
854
826
; AVX2-NEXT: vpand %ymm2, %ymm1, %ymm1
855
827
; AVX2-NEXT: vpcmpeqb %ymm2, %ymm1, %ymm1
856
- ; AVX2-NEXT: vpsrlw $7, %ymm1, %ymm1
857
828
; AVX2-NEXT: vpand %ymm3, %ymm1, %ymm1
858
829
; AVX2-NEXT: retq
859
830
;
0 commit comments