@@ -1212,11 +1212,10 @@ define <4 x i32> @splatvar_funnnel_v4i32(<4 x i32> %x, <4 x i32> %y, <4 x i32> %
1212
1212
; AVX512VL-LABEL: splatvar_funnnel_v4i32:
1213
1213
; AVX512VL: # %bb.0:
1214
1214
; AVX512VL-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1215
- ; AVX512VL-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
1216
- ; AVX512VL-NEXT: vpsrlq %xmm2, %xmm3, %xmm3
1217
1215
; AVX512VL-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1218
- ; AVX512VL-NEXT: vpsrlq %xmm2, %xmm0, %xmm0
1219
1216
; AVX512VL-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm0
1217
+ ; AVX512VL-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm1
1218
+ ; AVX512VL-NEXT: vpsrlq %xmm1, %ymm0, %ymm0
1220
1219
; AVX512VL-NEXT: vpmovqd %ymm0, %xmm0
1221
1220
; AVX512VL-NEXT: vzeroupper
1222
1221
; AVX512VL-NEXT: retq
@@ -1244,11 +1243,10 @@ define <4 x i32> @splatvar_funnnel_v4i32(<4 x i32> %x, <4 x i32> %y, <4 x i32> %
1244
1243
; AVX512VLBW-LABEL: splatvar_funnnel_v4i32:
1245
1244
; AVX512VLBW: # %bb.0:
1246
1245
; AVX512VLBW-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
1247
- ; AVX512VLBW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
1248
- ; AVX512VLBW-NEXT: vpsrlq %xmm2, %xmm3, %xmm3
1249
1246
; AVX512VLBW-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1250
- ; AVX512VLBW-NEXT: vpsrlq %xmm2, %xmm0, %xmm0
1251
1247
; AVX512VLBW-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm0
1248
+ ; AVX512VLBW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm1
1249
+ ; AVX512VLBW-NEXT: vpsrlq %xmm1, %ymm0, %ymm0
1252
1250
; AVX512VLBW-NEXT: vpmovqd %ymm0, %xmm0
1253
1251
; AVX512VLBW-NEXT: vzeroupper
1254
1252
; AVX512VLBW-NEXT: retq
@@ -1521,23 +1519,21 @@ define <16 x i8> @splatvar_funnnel_v16i8(<16 x i8> %x, <16 x i8> %y, <16 x i8> %
1521
1519
; AVX512VLBW-LABEL: splatvar_funnnel_v16i8:
1522
1520
; AVX512VLBW: # %bb.0:
1523
1521
; AVX512VLBW-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm1[8],xmm0[8],xmm1[9],xmm0[9],xmm1[10],xmm0[10],xmm1[11],xmm0[11],xmm1[12],xmm0[12],xmm1[13],xmm0[13],xmm1[14],xmm0[14],xmm1[15],xmm0[15]
1524
- ; AVX512VLBW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
1525
- ; AVX512VLBW-NEXT: vpsrlw %xmm2, %xmm3, %xmm3
1526
1522
; AVX512VLBW-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
1527
- ; AVX512VLBW-NEXT: vpsrlw %xmm2, %xmm0, %xmm0
1528
1523
; AVX512VLBW-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm0
1524
+ ; AVX512VLBW-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm1
1525
+ ; AVX512VLBW-NEXT: vpsrlw %xmm1, %ymm0, %ymm0
1529
1526
; AVX512VLBW-NEXT: vpmovwb %ymm0, %xmm0
1530
1527
; AVX512VLBW-NEXT: vzeroupper
1531
1528
; AVX512VLBW-NEXT: retq
1532
1529
;
1533
1530
; AVX512VLVBMI2-LABEL: splatvar_funnnel_v16i8:
1534
1531
; AVX512VLVBMI2: # %bb.0:
1535
1532
; AVX512VLVBMI2-NEXT: vpunpckhbw {{.*#+}} xmm3 = xmm1[8],xmm0[8],xmm1[9],xmm0[9],xmm1[10],xmm0[10],xmm1[11],xmm0[11],xmm1[12],xmm0[12],xmm1[13],xmm0[13],xmm1[14],xmm0[14],xmm1[15],xmm0[15]
1536
- ; AVX512VLVBMI2-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm2
1537
- ; AVX512VLVBMI2-NEXT: vpsrlw %xmm2, %xmm3, %xmm3
1538
1533
; AVX512VLVBMI2-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1],xmm1[2],xmm0[2],xmm1[3],xmm0[3],xmm1[4],xmm0[4],xmm1[5],xmm0[5],xmm1[6],xmm0[6],xmm1[7],xmm0[7]
1539
- ; AVX512VLVBMI2-NEXT: vpsrlw %xmm2, %xmm0, %xmm0
1540
1534
; AVX512VLVBMI2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm0
1535
+ ; AVX512VLVBMI2-NEXT: vpand {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2, %xmm1
1536
+ ; AVX512VLVBMI2-NEXT: vpsrlw %xmm1, %ymm0, %ymm0
1541
1537
; AVX512VLVBMI2-NEXT: vpmovwb %ymm0, %xmm0
1542
1538
; AVX512VLVBMI2-NEXT: vzeroupper
1543
1539
; AVX512VLVBMI2-NEXT: retq
0 commit comments