@@ -679,6 +679,19 @@ define <32 x i8> @var_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %amt)
679679; AVX512VLBW-NEXT: vpmovwb %zmm0, %ymm0
680680; AVX512VLBW-NEXT: retq
681681;
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+ ;
682695; XOPAVX1-LABEL: var_funnnel_v32i8:
683696; XOPAVX1: # %bb.0:
684697; 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 {
19181931; AVX512VLBW-NEXT: vpmovwb %zmm0, %ymm0
19191932; AVX512VLBW-NEXT: retq
19201933;
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+ ;
19211945; XOPAVX1-LABEL: constant_funnnel_v32i8:
19221946; XOPAVX1: # %bb.0:
19231947; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2
0 commit comments