@@ -1092,12 +1092,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1092
1092
; AVX2-NEXT: vpand %xmm3, %xmm2, %xmm2
1093
1093
; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1094
1094
; AVX2-NEXT: vpslld %xmm3, %ymm0, %ymm3
1095
+ ; AVX2-NEXT: vpbroadcastd %xmm2, %ymm2
1095
1096
; AVX2-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1096
1097
; AVX2-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1097
1098
; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1098
1099
; AVX2-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1099
1100
; AVX2-NEXT: vpor %ymm1, %ymm3, %ymm1
1100
- ; AVX2-NEXT: vpbroadcastd %xmm2, %ymm2
1101
1101
; AVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
1102
1102
; AVX2-NEXT: vpcmpeqd %ymm3, %ymm2, %ymm2
1103
1103
; AVX2-NEXT: vblendvps %ymm2, %ymm0, %ymm1, %ymm0
@@ -1110,12 +1110,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1110
1110
; AVX512F-NEXT: vpand %xmm3, %xmm2, %xmm2
1111
1111
; AVX512F-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1112
1112
; AVX512F-NEXT: vpslld %xmm3, %ymm0, %ymm3
1113
+ ; AVX512F-NEXT: vpbroadcastd %xmm2, %ymm2
1113
1114
; AVX512F-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1114
1115
; AVX512F-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1115
1116
; AVX512F-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1116
1117
; AVX512F-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1117
1118
; AVX512F-NEXT: vpor %ymm1, %ymm3, %ymm1
1118
- ; AVX512F-NEXT: vpbroadcastd %xmm2, %ymm2
1119
1119
; AVX512F-NEXT: vptestnmd %zmm2, %zmm2, %k1
1120
1120
; AVX512F-NEXT: vmovdqa32 %zmm0, %zmm1 {%k1}
1121
1121
; AVX512F-NEXT: vmovdqa %ymm1, %ymm0
@@ -1126,12 +1126,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1126
1126
; AVX512VL-NEXT: vpandd {{.*}}(%rip){1to4}, %xmm2, %xmm2
1127
1127
; AVX512VL-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1128
1128
; AVX512VL-NEXT: vpslld %xmm3, %ymm0, %ymm3
1129
+ ; AVX512VL-NEXT: vpbroadcastd %xmm2, %ymm2
1129
1130
; AVX512VL-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1130
1131
; AVX512VL-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1131
1132
; AVX512VL-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1132
1133
; AVX512VL-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1133
1134
; AVX512VL-NEXT: vpor %ymm1, %ymm3, %ymm1
1134
- ; AVX512VL-NEXT: vpbroadcastd %xmm2, %ymm2
1135
1135
; AVX512VL-NEXT: vptestnmd %ymm2, %ymm2, %k1
1136
1136
; AVX512VL-NEXT: vmovdqa32 %ymm0, %ymm1 {%k1}
1137
1137
; AVX512VL-NEXT: vmovdqa %ymm1, %ymm0
@@ -1144,12 +1144,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1144
1144
; AVX512BW-NEXT: vpand %xmm3, %xmm2, %xmm2
1145
1145
; AVX512BW-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1146
1146
; AVX512BW-NEXT: vpslld %xmm3, %ymm0, %ymm3
1147
+ ; AVX512BW-NEXT: vpbroadcastd %xmm2, %ymm2
1147
1148
; AVX512BW-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1148
1149
; AVX512BW-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1149
1150
; AVX512BW-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1150
1151
; AVX512BW-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1151
1152
; AVX512BW-NEXT: vpor %ymm1, %ymm3, %ymm1
1152
- ; AVX512BW-NEXT: vpbroadcastd %xmm2, %ymm2
1153
1153
; AVX512BW-NEXT: vptestnmd %zmm2, %zmm2, %k1
1154
1154
; AVX512BW-NEXT: vmovdqa32 %zmm0, %zmm1 {%k1}
1155
1155
; AVX512BW-NEXT: vmovdqa %ymm1, %ymm0
@@ -1162,12 +1162,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1162
1162
; AVX512VBMI2-NEXT: vpand %xmm3, %xmm2, %xmm2
1163
1163
; AVX512VBMI2-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1164
1164
; AVX512VBMI2-NEXT: vpslld %xmm3, %ymm0, %ymm3
1165
+ ; AVX512VBMI2-NEXT: vpbroadcastd %xmm2, %ymm2
1165
1166
; AVX512VBMI2-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1166
1167
; AVX512VBMI2-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1167
1168
; AVX512VBMI2-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1168
1169
; AVX512VBMI2-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1169
1170
; AVX512VBMI2-NEXT: vpor %ymm1, %ymm3, %ymm1
1170
- ; AVX512VBMI2-NEXT: vpbroadcastd %xmm2, %ymm2
1171
1171
; AVX512VBMI2-NEXT: vptestnmd %zmm2, %zmm2, %k1
1172
1172
; AVX512VBMI2-NEXT: vmovdqa32 %zmm0, %zmm1 {%k1}
1173
1173
; AVX512VBMI2-NEXT: vmovdqa %ymm1, %ymm0
@@ -1178,12 +1178,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1178
1178
; AVX512VLBW-NEXT: vpandd {{.*}}(%rip){1to4}, %xmm2, %xmm2
1179
1179
; AVX512VLBW-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1180
1180
; AVX512VLBW-NEXT: vpslld %xmm3, %ymm0, %ymm3
1181
+ ; AVX512VLBW-NEXT: vpbroadcastd %xmm2, %ymm2
1181
1182
; AVX512VLBW-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1182
1183
; AVX512VLBW-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1183
1184
; AVX512VLBW-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1184
1185
; AVX512VLBW-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1185
1186
; AVX512VLBW-NEXT: vpor %ymm1, %ymm3, %ymm1
1186
- ; AVX512VLBW-NEXT: vpbroadcastd %xmm2, %ymm2
1187
1187
; AVX512VLBW-NEXT: vptestnmd %ymm2, %ymm2, %k1
1188
1188
; AVX512VLBW-NEXT: vmovdqa32 %ymm0, %ymm1 {%k1}
1189
1189
; AVX512VLBW-NEXT: vmovdqa %ymm1, %ymm0
@@ -1224,12 +1224,12 @@ define <8 x i32> @splatvar_funnnel_v8i32(<8 x i32> %x, <8 x i32> %y, <8 x i32> %
1224
1224
; XOPAVX2-NEXT: vpand %xmm3, %xmm2, %xmm2
1225
1225
; XOPAVX2-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm2[0],zero,xmm2[1],zero
1226
1226
; XOPAVX2-NEXT: vpslld %xmm3, %ymm0, %ymm3
1227
+ ; XOPAVX2-NEXT: vpbroadcastd %xmm2, %ymm2
1227
1228
; XOPAVX2-NEXT: vpbroadcastd {{.*#+}} xmm4 = [32,32,32,32]
1228
1229
; XOPAVX2-NEXT: vpsubd %xmm2, %xmm4, %xmm4
1229
1230
; XOPAVX2-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm4[0],zero,xmm4[1],zero
1230
1231
; XOPAVX2-NEXT: vpsrld %xmm4, %ymm1, %ymm1
1231
1232
; XOPAVX2-NEXT: vpor %ymm1, %ymm3, %ymm1
1232
- ; XOPAVX2-NEXT: vpbroadcastd %xmm2, %ymm2
1233
1233
; XOPAVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
1234
1234
; XOPAVX2-NEXT: vpcmpeqd %ymm3, %ymm2, %ymm2
1235
1235
; XOPAVX2-NEXT: vblendvps %ymm2, %ymm0, %ymm1, %ymm0
@@ -1271,12 +1271,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1271
1271
; AVX2-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1272
1272
; AVX2-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1273
1273
; AVX2-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1274
+ ; AVX2-NEXT: vpbroadcastw %xmm2, %ymm2
1274
1275
; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1275
1276
; AVX2-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1276
1277
; AVX2-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1277
1278
; AVX2-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1278
1279
; AVX2-NEXT: vpor %ymm1, %ymm3, %ymm1
1279
- ; AVX2-NEXT: vpbroadcastw %xmm2, %ymm2
1280
1280
; AVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
1281
1281
; AVX2-NEXT: vpcmpeqw %ymm3, %ymm2, %ymm2
1282
1282
; AVX2-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
@@ -1287,12 +1287,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1287
1287
; AVX512F-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1288
1288
; AVX512F-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1289
1289
; AVX512F-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1290
+ ; AVX512F-NEXT: vpbroadcastw %xmm2, %ymm2
1290
1291
; AVX512F-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1291
1292
; AVX512F-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1292
1293
; AVX512F-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1293
1294
; AVX512F-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1294
1295
; AVX512F-NEXT: vpor %ymm1, %ymm3, %ymm1
1295
- ; AVX512F-NEXT: vpbroadcastw %xmm2, %ymm2
1296
1296
; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
1297
1297
; AVX512F-NEXT: vpcmpeqw %ymm3, %ymm2, %ymm2
1298
1298
; AVX512F-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
@@ -1303,12 +1303,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1303
1303
; AVX512VL-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1304
1304
; AVX512VL-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1305
1305
; AVX512VL-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1306
+ ; AVX512VL-NEXT: vpbroadcastw %xmm2, %ymm2
1306
1307
; AVX512VL-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1307
1308
; AVX512VL-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1308
1309
; AVX512VL-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1309
1310
; AVX512VL-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1310
1311
; AVX512VL-NEXT: vpor %ymm1, %ymm3, %ymm1
1311
- ; AVX512VL-NEXT: vpbroadcastw %xmm2, %ymm2
1312
1312
; AVX512VL-NEXT: vpxor %xmm3, %xmm3, %xmm3
1313
1313
; AVX512VL-NEXT: vpcmpeqw %ymm3, %ymm2, %ymm2
1314
1314
; AVX512VL-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
@@ -1320,12 +1320,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1320
1320
; AVX512BW-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1321
1321
; AVX512BW-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1322
1322
; AVX512BW-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1323
+ ; AVX512BW-NEXT: vpbroadcastw %xmm2, %ymm2
1323
1324
; AVX512BW-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1324
1325
; AVX512BW-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1325
1326
; AVX512BW-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1326
1327
; AVX512BW-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1327
1328
; AVX512BW-NEXT: vpor %ymm1, %ymm3, %ymm1
1328
- ; AVX512BW-NEXT: vpbroadcastw %xmm2, %ymm2
1329
1329
; AVX512BW-NEXT: vptestnmw %zmm2, %zmm2, %k1
1330
1330
; AVX512BW-NEXT: vmovdqu16 %zmm0, %zmm1 {%k1}
1331
1331
; AVX512BW-NEXT: vmovdqa %ymm1, %ymm0
@@ -1337,12 +1337,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1337
1337
; AVX512VBMI2-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1338
1338
; AVX512VBMI2-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1339
1339
; AVX512VBMI2-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1340
+ ; AVX512VBMI2-NEXT: vpbroadcastw %xmm2, %ymm2
1340
1341
; AVX512VBMI2-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1341
1342
; AVX512VBMI2-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1342
1343
; AVX512VBMI2-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1343
1344
; AVX512VBMI2-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1344
1345
; AVX512VBMI2-NEXT: vpor %ymm1, %ymm3, %ymm1
1345
- ; AVX512VBMI2-NEXT: vpbroadcastw %xmm2, %ymm2
1346
1346
; AVX512VBMI2-NEXT: vptestnmw %zmm2, %zmm2, %k1
1347
1347
; AVX512VBMI2-NEXT: vmovdqu16 %zmm0, %zmm1 {%k1}
1348
1348
; AVX512VBMI2-NEXT: vmovdqa %ymm1, %ymm0
@@ -1353,12 +1353,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1353
1353
; AVX512VLBW-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1354
1354
; AVX512VLBW-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1355
1355
; AVX512VLBW-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1356
+ ; AVX512VLBW-NEXT: vpbroadcastw %xmm2, %ymm2
1356
1357
; AVX512VLBW-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1357
1358
; AVX512VLBW-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1358
1359
; AVX512VLBW-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1359
1360
; AVX512VLBW-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1360
1361
; AVX512VLBW-NEXT: vpor %ymm1, %ymm3, %ymm1
1361
- ; AVX512VLBW-NEXT: vpbroadcastw %xmm2, %ymm2
1362
1362
; AVX512VLBW-NEXT: vptestnmw %ymm2, %ymm2, %k1
1363
1363
; AVX512VLBW-NEXT: vmovdqu16 %ymm0, %ymm1 {%k1}
1364
1364
; AVX512VLBW-NEXT: vmovdqa %ymm1, %ymm0
@@ -1399,12 +1399,12 @@ define <16 x i16> @splatvar_funnnel_v16i16(<16 x i16> %x, <16 x i16> %y, <16 x i
1399
1399
; XOPAVX2-NEXT: vpand {{.*}}(%rip), %xmm2, %xmm2
1400
1400
; XOPAVX2-NEXT: vpmovzxwq {{.*#+}} xmm3 = xmm2[0],zero,zero,zero,xmm2[1],zero,zero,zero
1401
1401
; XOPAVX2-NEXT: vpsllw %xmm3, %ymm0, %ymm3
1402
+ ; XOPAVX2-NEXT: vpbroadcastw %xmm2, %ymm2
1402
1403
; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [16,16,16,16,16,16,16,16]
1403
1404
; XOPAVX2-NEXT: vpsubw %xmm2, %xmm4, %xmm4
1404
1405
; XOPAVX2-NEXT: vpmovzxwq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,xmm4[1],zero,zero,zero
1405
1406
; XOPAVX2-NEXT: vpsrlw %xmm4, %ymm1, %ymm1
1406
1407
; XOPAVX2-NEXT: vpor %ymm1, %ymm3, %ymm1
1407
- ; XOPAVX2-NEXT: vpbroadcastw %xmm2, %ymm2
1408
1408
; XOPAVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
1409
1409
; XOPAVX2-NEXT: vpcmpeqw %ymm3, %ymm2, %ymm2
1410
1410
; XOPAVX2-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
@@ -1458,6 +1458,7 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
1458
1458
; AVX2-NEXT: vpsllw %xmm3, %xmm5, %xmm3
1459
1459
; AVX2-NEXT: vpbroadcastb %xmm3, %ymm3
1460
1460
; AVX2-NEXT: vpand %ymm3, %ymm4, %ymm3
1461
+ ; AVX2-NEXT: vpbroadcastb %xmm2, %ymm2
1461
1462
; AVX2-NEXT: vmovdqa {{.*#+}} xmm4 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1462
1463
; AVX2-NEXT: vpsubb %xmm2, %xmm4, %xmm4
1463
1464
; AVX2-NEXT: vpmovzxbq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,zero,zero,zero,zero,xmm4[1],zero,zero,zero,zero,zero,zero,zero
@@ -1467,7 +1468,6 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
1467
1468
; AVX2-NEXT: vpbroadcastb %xmm4, %ymm4
1468
1469
; AVX2-NEXT: vpand %ymm4, %ymm1, %ymm1
1469
1470
; AVX2-NEXT: vpor %ymm1, %ymm3, %ymm1
1470
- ; AVX2-NEXT: vpbroadcastb %xmm2, %ymm2
1471
1471
; AVX2-NEXT: vpxor %xmm3, %xmm3, %xmm3
1472
1472
; AVX2-NEXT: vpcmpeqb %ymm3, %ymm2, %ymm2
1473
1473
; AVX2-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
@@ -1482,6 +1482,7 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
1482
1482
; AVX512F-NEXT: vpsllw %xmm3, %xmm5, %xmm3
1483
1483
; AVX512F-NEXT: vpbroadcastb %xmm3, %ymm3
1484
1484
; AVX512F-NEXT: vpand %ymm3, %ymm4, %ymm3
1485
+ ; AVX512F-NEXT: vpbroadcastb %xmm2, %ymm2
1485
1486
; AVX512F-NEXT: vmovdqa {{.*#+}} xmm4 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1486
1487
; AVX512F-NEXT: vpsubb %xmm2, %xmm4, %xmm4
1487
1488
; AVX512F-NEXT: vpmovzxbq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,zero,zero,zero,zero,xmm4[1],zero,zero,zero,zero,zero,zero,zero
@@ -1491,7 +1492,6 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
1491
1492
; AVX512F-NEXT: vpbroadcastb %xmm4, %ymm4
1492
1493
; AVX512F-NEXT: vpand %ymm4, %ymm1, %ymm1
1493
1494
; AVX512F-NEXT: vpor %ymm1, %ymm3, %ymm1
1494
- ; AVX512F-NEXT: vpbroadcastb %xmm2, %ymm2
1495
1495
; AVX512F-NEXT: vpxor %xmm3, %xmm3, %xmm3
1496
1496
; AVX512F-NEXT: vpcmpeqb %ymm3, %ymm2, %ymm2
1497
1497
; AVX512F-NEXT: vpblendvb %ymm2, %ymm0, %ymm1, %ymm0
@@ -1506,6 +1506,7 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
1506
1506
; AVX512VL-NEXT: vpsllw %xmm3, %xmm5, %xmm3
1507
1507
; AVX512VL-NEXT: vpbroadcastb %xmm3, %ymm3
1508
1508
; AVX512VL-NEXT: vpand %ymm3, %ymm4, %ymm3
1509
+ ; AVX512VL-NEXT: vpbroadcastb %xmm2, %ymm2
1509
1510
; AVX512VL-NEXT: vmovdqa {{.*#+}} xmm4 = [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
1510
1511
; AVX512VL-NEXT: vpsubb %xmm2, %xmm4, %xmm4
1511
1512
; AVX512VL-NEXT: vpmovzxbq {{.*#+}} xmm4 = xmm4[0],zero,zero,zero,zero,zero,zero,zero,xmm4[1],zero,zero,zero,zero,zero,zero,zero
@@ -1514,9 +1515,8 @@ define <32 x i8> @splatvar_funnnel_v32i8(<32 x i8> %x, <32 x i8> %y, <32 x i8> %
1514
1515
; AVX512VL-NEXT: vpsrlw $8, %xmm4, %xmm4
1515
1516
; AVX512VL-NEXT: vpbroadcastb %xmm4, %ymm4
1516
1517
; AVX512VL-NEXT: vpternlogq $236, %ymm1, %ymm3, %ymm4
1517
- ; AVX512VL-NEXT: vpbroadcastb %xmm2, %ymm1
1518
- ; AVX512VL-NEXT: vpxor %xmm2, %xmm2, %xmm2
1519
- ; AVX512VL-NEXT: vpcmpeqb %ymm2, %ymm1, %ymm1
1518
+ ; AVX512VL-NEXT: vpxor %xmm1, %xmm1, %xmm1
1519
+ ; AVX512VL-NEXT: vpcmpeqb %ymm1, %ymm2, %ymm1
1520
1520
; AVX512VL-NEXT: vpblendvb %ymm1, %ymm0, %ymm4, %ymm0
1521
1521
; AVX512VL-NEXT: retq
1522
1522
;
0 commit comments