@@ -679,6 +679,19 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
679
679
; AVX512VLBW-NEXT: vpmovwb %zmm0, %ymm0
680
680
; AVX512VLBW-NEXT: retq
681
681
;
682
+ ; AVX512VLVBMI2-LABEL: var_funnnel_v32i8:
683
+ ; AVX512VLVBMI2: # %bb.0:
684
+ ; AVX512VLVBMI2-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
685
+ ; AVX512VLVBMI2-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
686
+ ; AVX512VLVBMI2-NEXT: vmovdqa64 {{.*#+}} zmm3 = [0,64,1,65,2,66,3,67,4,68,5,69,6,70,7,71,8,72,9,73,10,74,11,75,12,76,13,77,14,78,15,79,16,80,17,81,18,82,19,83,20,84,21,85,22,86,23,87,24,88,25,89,26,90,27,91,28,92,29,93,30,94,31,95]
687
+ ; AVX512VLVBMI2-NEXT: vpermi2b %zmm0, %zmm1, %zmm3
688
+ ; AVX512VLVBMI2-NEXT: vpandd {{\.?LCPI[0-9]+_[0-9]+}}(%rip){1to8}, %ymm2, %ymm0
689
+ ; AVX512VLVBMI2-NEXT: vpmovzxbw {{.*#+}} zmm0 = ymm0[0],zero,ymm0[1],zero,ymm0[2],zero,ymm0[3],zero,ymm0[4],zero,ymm0[5],zero,ymm0[6],zero,ymm0[7],zero,ymm0[8],zero,ymm0[9],zero,ymm0[10],zero,ymm0[11],zero,ymm0[12],zero,ymm0[13],zero,ymm0[14],zero,ymm0[15],zero,ymm0[16],zero,ymm0[17],zero,ymm0[18],zero,ymm0[19],zero,ymm0[20],zero,ymm0[21],zero,ymm0[22],zero,ymm0[23],zero,ymm0[24],zero,ymm0[25],zero,ymm0[26],zero,ymm0[27],zero,ymm0[28],zero,ymm0[29],zero,ymm0[30],zero,ymm0[31],zero
690
+ ; AVX512VLVBMI2-NEXT: vpsllvw %zmm0, %zmm3, %zmm0
691
+ ; AVX512VLVBMI2-NEXT: vpsrlw $8, %zmm0, %zmm0
692
+ ; AVX512VLVBMI2-NEXT: vpmovwb %zmm0, %ymm0
693
+ ; AVX512VLVBMI2-NEXT: retq
694
+ ;
682
695
; XOPAVX1-LABEL: var_funnnel_v32i8:
683
696
; XOPAVX1: # %bb.0:
684
697
; XOPAVX1-NEXT: vextractf128 $1, %ymm1, %xmm3
@@ -1918,6 +1931,17 @@ define <32 x i8> @constant_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y) nounwind {
1918
1931
; AVX512VLBW-NEXT: vpmovwb %zmm0, %ymm0
1919
1932
; AVX512VLBW-NEXT: retq
1920
1933
;
1934
+ ; AVX512VLVBMI2-LABEL: constant_funnnel_v32i8:
1935
+ ; AVX512VLVBMI2: # %bb.0:
1936
+ ; AVX512VLVBMI2-NEXT: # kill: def $ymm1 killed $ymm1 def $zmm1
1937
+ ; AVX512VLVBMI2-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
1938
+ ; AVX512VLVBMI2-NEXT: vmovdqa64 {{.*#+}} zmm2 = [0,64,1,65,2,66,3,67,4,68,5,69,6,70,7,71,8,72,9,73,10,74,11,75,12,76,13,77,14,78,15,79,16,80,17,81,18,82,19,83,20,84,21,85,22,86,23,87,24,88,25,89,26,90,27,91,28,92,29,93,30,94,31,95]
1939
+ ; AVX512VLVBMI2-NEXT: vpermi2b %zmm0, %zmm1, %zmm2
1940
+ ; AVX512VLVBMI2-NEXT: vpsllvw {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %zmm2, %zmm0
1941
+ ; AVX512VLVBMI2-NEXT: vpsrlw $8, %zmm0, %zmm0
1942
+ ; AVX512VLVBMI2-NEXT: vpmovwb %zmm0, %ymm0
1943
+ ; AVX512VLVBMI2-NEXT: retq
1944
+ ;
1921
1945
; XOPAVX1-LABEL: constant_funnnel_v32i8:
1922
1946
; XOPAVX1: # %bb.0:
1923
1947
; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
0 commit comments