@@ -686,7 +686,6 @@ define <4 x i64> @splatvar_funnnel_v4i64(<4 x i64> %x, <4 x i64> %amt) nounwind
686
686
define <8 x i32 > @splatvar_funnnel_v8i32 (<8 x i32 > %x , <8 x i32 > %amt ) nounwind {
687
687
; AVX1-LABEL: splatvar_funnnel_v8i32:
688
688
; AVX1: # %bb.0:
689
- ; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
690
689
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
691
690
; AVX1-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
692
691
; AVX1-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm1[0],zero,xmm1[1],zero
@@ -704,7 +703,6 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %amt) nounwind
704
703
;
705
704
; AVX2-LABEL: splatvar_funnnel_v8i32:
706
705
; AVX2: # %bb.0:
707
- ; AVX2-NEXT: vpbroadcastd %xmm1, %xmm1
708
706
; AVX2-NEXT: vpbroadcastd {{.*#+}} xmm2 = [31,31,31,31]
709
707
; AVX2-NEXT: vpand %xmm2, %xmm1, %xmm1
710
708
; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm2 = xmm1[0],zero,xmm1[1],zero
@@ -783,8 +781,6 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %amt) nounwind
783
781
define <16 x i16 > @splatvar_funnnel_v16i16 (<16 x i16 > %x , <16 x i16 > %amt ) nounwind {
784
782
; AVX1-LABEL: splatvar_funnnel_v16i16:
785
783
; AVX1: # %bb.0:
786
- ; AVX1-NEXT: vpshuflw {{.*#+}} xmm1 = xmm1[0,0,0,0,4,5,6,7]
787
- ; AVX1-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[0,0,0,0]
788
784
; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
789
785
; AVX1-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
790
786
; AVX1-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
@@ -802,7 +798,6 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
802
798
;
803
799
; AVX2-LABEL: splatvar_funnnel_v16i16:
804
800
; AVX2: # %bb.0:
805
- ; AVX2-NEXT: vpbroadcastw %xmm1, %xmm1
806
801
; AVX2-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
807
802
; AVX2-NEXT: vpmovzxwq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
808
803
; AVX2-NEXT: vpsllw %xmm2, %ymm0, %ymm2
@@ -815,7 +810,6 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
815
810
;
816
811
; AVX512F-LABEL: splatvar_funnnel_v16i16:
817
812
; AVX512F: # %bb.0:
818
- ; AVX512F-NEXT: vpbroadcastw %xmm1, %xmm1
819
813
; AVX512F-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
820
814
; AVX512F-NEXT: vpmovzxwq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
821
815
; AVX512F-NEXT: vpsllw %xmm2, %ymm0, %ymm2
@@ -828,7 +822,6 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
828
822
;
829
823
; AVX512VL-LABEL: splatvar_funnnel_v16i16:
830
824
; AVX512VL: # %bb.0:
831
- ; AVX512VL-NEXT: vpbroadcastw %xmm1, %xmm1
832
825
; AVX512VL-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
833
826
; AVX512VL-NEXT: vpmovzxwq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
834
827
; AVX512VL-NEXT: vpsllw %xmm2, %ymm0, %ymm2
@@ -841,7 +834,6 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
841
834
;
842
835
; AVX512BW-LABEL: splatvar_funnnel_v16i16:
843
836
; AVX512BW: # %bb.0:
844
- ; AVX512BW-NEXT: vpbroadcastw %xmm1, %xmm1
845
837
; AVX512BW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
846
838
; AVX512BW-NEXT: vpmovzxwq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
847
839
; AVX512BW-NEXT: vpsllw %xmm2, %ymm0, %ymm2
@@ -854,7 +846,6 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
854
846
;
855
847
; AVX512VLBW-LABEL: splatvar_funnnel_v16i16:
856
848
; AVX512VLBW: # %bb.0:
857
- ; AVX512VLBW-NEXT: vpbroadcastw %xmm1, %xmm1
858
849
; AVX512VLBW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
859
850
; AVX512VLBW-NEXT: vpmovzxwq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,xmm1[1],zero,zero,zero
860
851
; AVX512VLBW-NEXT: vpsllw %xmm2, %ymm0, %ymm2
@@ -905,35 +896,33 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %amt) nounw
905
896
define <32 x i8 > @splatvar_funnnel_v32i8 (<32 x i8 > %x , <32 x i8 > %amt ) nounwind {
906
897
; AVX1-LABEL: splatvar_funnnel_v32i8:
907
898
; AVX1: # %bb.0:
908
- ; AVX1-NEXT: vpxor %xmm2, %xmm2, %xmm2
909
- ; AVX1-NEXT: vpshufb %xmm2, %xmm1, %xmm1
899
+ ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
910
900
; AVX1-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
911
901
; AVX1-NEXT: vpmovzxbq {{.*#+}} xmm3 = xmm1[0],zero,zero,zero,zero,zero,zero,zero,xmm1[1],zero,zero,zero,zero,zero,zero,zero
912
- ; AVX1-NEXT: vextractf128 $1 , %ymm0 , %xmm4
913
- ; AVX1-NEXT: vpsllw %xmm3 , %xmm4 , %xmm5
914
- ; AVX1-NEXT: vpcmpeqd %xmm6 , %xmm6 , %xmm6
915
- ; AVX1-NEXT: vpsllw %xmm3 , %xmm6 , %xmm7
916
- ; AVX1-NEXT: vpshufb %xmm2 , %xmm7 , %xmm2
917
- ; AVX1-NEXT: vpand %xmm2 , %xmm5 , %xmm5
902
+ ; AVX1-NEXT: vpsllw %xmm3 , %xmm2 , %xmm4
903
+ ; AVX1-NEXT: vpcmpeqd %xmm5 , %xmm5 , %xmm5
904
+ ; AVX1-NEXT: vpsllw %xmm3 , %xmm5 , %xmm6
905
+ ; AVX1-NEXT: vpxor %xmm7 , %xmm7 , %xmm7
906
+ ; AVX1-NEXT: vpshufb %xmm7 , %xmm6 , %xmm6
907
+ ; AVX1-NEXT: vpand %xmm6 , %xmm4 , %xmm4
918
908
; AVX1-NEXT: vmovdqa {{.*#+}} xmm7 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
919
909
; AVX1-NEXT: vpsubb %xmm1, %xmm7, %xmm1
920
910
; AVX1-NEXT: vpmovzxbq {{.*#+}} xmm1 = xmm1[0],zero,zero,zero,zero,zero,zero,zero,xmm1[1],zero,zero,zero,zero,zero,zero,zero
921
- ; AVX1-NEXT: vpsrlw %xmm1, %xmm4 , %xmm4
922
- ; AVX1-NEXT: vpsrlw %xmm1, %xmm6 , %xmm6
923
- ; AVX1-NEXT: vpshufb {{.*#+}} xmm6 = xmm6 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
924
- ; AVX1-NEXT: vpand %xmm6 , %xmm4 , %xmm4
925
- ; AVX1-NEXT: vpor %xmm4 , %xmm5 , %xmm4
911
+ ; AVX1-NEXT: vpsrlw %xmm1, %xmm2 , %xmm2
912
+ ; AVX1-NEXT: vpsrlw %xmm1, %xmm5 , %xmm5
913
+ ; AVX1-NEXT: vpshufb {{.*#+}} xmm5 = xmm5 [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
914
+ ; AVX1-NEXT: vpand %xmm5 , %xmm2 , %xmm2
915
+ ; AVX1-NEXT: vpor %xmm2 , %xmm4 , %xmm2
926
916
; AVX1-NEXT: vpsllw %xmm3, %xmm0, %xmm3
927
- ; AVX1-NEXT: vpand %xmm2 , %xmm3, %xmm2
917
+ ; AVX1-NEXT: vpand %xmm6 , %xmm3, %xmm3
928
918
; AVX1-NEXT: vpsrlw %xmm1, %xmm0, %xmm0
929
- ; AVX1-NEXT: vpand %xmm6 , %xmm0, %xmm0
930
- ; AVX1-NEXT: vpor %xmm0, %xmm2 , %xmm0
931
- ; AVX1-NEXT: vinsertf128 $1, %xmm4 , %ymm0, %ymm0
919
+ ; AVX1-NEXT: vpand %xmm5 , %xmm0, %xmm0
920
+ ; AVX1-NEXT: vpor %xmm0, %xmm3 , %xmm0
921
+ ; AVX1-NEXT: vinsertf128 $1, %xmm2 , %ymm0, %ymm0
932
922
; AVX1-NEXT: retq
933
923
;
934
924
; AVX2-LABEL: splatvar_funnnel_v32i8:
935
925
; AVX2: # %bb.0:
936
- ; AVX2-NEXT: vpbroadcastb %xmm1, %xmm1
937
926
; AVX2-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
938
927
; AVX2-NEXT: vpmovzxbq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,zero,zero,zero,zero,xmm1[1],zero,zero,zero,zero,zero,zero,zero
939
928
; AVX2-NEXT: vpsllw %xmm2, %ymm0, %ymm3
@@ -954,7 +943,6 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %amt) nounwind
954
943
;
955
944
; AVX512F-LABEL: splatvar_funnnel_v32i8:
956
945
; AVX512F: # %bb.0:
957
- ; AVX512F-NEXT: vpbroadcastb %xmm1, %xmm1
958
946
; AVX512F-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
959
947
; AVX512F-NEXT: vpmovzxbq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,zero,zero,zero,zero,xmm1[1],zero,zero,zero,zero,zero,zero,zero
960
948
; AVX512F-NEXT: vpsllw %xmm2, %ymm0, %ymm3
@@ -975,7 +963,6 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %amt) nounwind
975
963
;
976
964
; AVX512VL-LABEL: splatvar_funnnel_v32i8:
977
965
; AVX512VL: # %bb.0:
978
- ; AVX512VL-NEXT: vpbroadcastb %xmm1, %xmm1
979
966
; AVX512VL-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1, %xmm1
980
967
; AVX512VL-NEXT: vpmovzxbq {{.*#+}} xmm2 = xmm1[0],zero,zero,zero,zero,zero,zero,zero,xmm1[1],zero,zero,zero,zero,zero,zero,zero
981
968
; AVX512VL-NEXT: vpsllw %xmm2, %ymm0, %ymm3
0 commit comments