Skip to content

Commit c59ac1a

Browse files
authored
[X86] Cleanup AVX512 VBROADCAST subvector instruction names. (#108888)
This patch makes the `VBROADCAST***X**` subvector broadcast instructions consistent - the `***X**` section represents the original subvector type/size, but we were not correctly using the AVX512 Z/Z256/Z128 suffix to consistently represent the destination width (or we missed it entirely).
1 parent 43c9203 commit c59ac1a

File tree

8 files changed

+117
-117
lines changed

8 files changed

+117
-117
lines changed

llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,18 +1249,18 @@ bool llvm::EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS,
12491249

12501250
case X86::VBROADCASTF128rm:
12511251
case X86::VBROADCASTI128rm:
1252-
CASE_AVX512_INS_COMMON(BROADCASTF64X2, Z128, rm)
1253-
CASE_AVX512_INS_COMMON(BROADCASTI64X2, Z128, rm)
1252+
CASE_AVX512_INS_COMMON(BROADCASTF64X2, Z256, rm)
1253+
CASE_AVX512_INS_COMMON(BROADCASTI64X2, Z256, rm)
12541254
DecodeSubVectorBroadcast(4, 2, ShuffleMask);
12551255
DestName = getRegName(MI->getOperand(0).getReg());
12561256
break;
1257-
CASE_AVX512_INS_COMMON(BROADCASTF64X2, , rm)
1258-
CASE_AVX512_INS_COMMON(BROADCASTI64X2, , rm)
1257+
CASE_AVX512_INS_COMMON(BROADCASTF64X2, Z, rm)
1258+
CASE_AVX512_INS_COMMON(BROADCASTI64X2, Z, rm)
12591259
DecodeSubVectorBroadcast(8, 2, ShuffleMask);
12601260
DestName = getRegName(MI->getOperand(0).getReg());
12611261
break;
1262-
CASE_AVX512_INS_COMMON(BROADCASTF64X4, , rm)
1263-
CASE_AVX512_INS_COMMON(BROADCASTI64X4, , rm)
1262+
CASE_AVX512_INS_COMMON(BROADCASTF64X4, Z, rm)
1263+
CASE_AVX512_INS_COMMON(BROADCASTI64X4, Z, rm)
12641264
DecodeSubVectorBroadcast(8, 4, ShuffleMask);
12651265
DestName = getRegName(MI->getOperand(0).getReg());
12661266
break;
@@ -1269,13 +1269,13 @@ bool llvm::EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS,
12691269
DecodeSubVectorBroadcast(8, 4, ShuffleMask);
12701270
DestName = getRegName(MI->getOperand(0).getReg());
12711271
break;
1272-
CASE_AVX512_INS_COMMON(BROADCASTF32X4, , rm)
1273-
CASE_AVX512_INS_COMMON(BROADCASTI32X4, , rm)
1272+
CASE_AVX512_INS_COMMON(BROADCASTF32X4, Z, rm)
1273+
CASE_AVX512_INS_COMMON(BROADCASTI32X4, Z, rm)
12741274
DecodeSubVectorBroadcast(16, 4, ShuffleMask);
12751275
DestName = getRegName(MI->getOperand(0).getReg());
12761276
break;
1277-
CASE_AVX512_INS_COMMON(BROADCASTF32X8, , rm)
1278-
CASE_AVX512_INS_COMMON(BROADCASTI32X8, , rm)
1277+
CASE_AVX512_INS_COMMON(BROADCASTF32X8, Z, rm)
1278+
CASE_AVX512_INS_COMMON(BROADCASTI32X8, Z, rm)
12791279
DecodeSubVectorBroadcast(16, 8, ShuffleMask);
12801280
DestName = getRegName(MI->getOperand(0).getReg());
12811281
break;

llvm/lib/Target/X86/X86FixupVectorConstants.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -439,8 +439,8 @@ bool X86FixupVectorConstantsPass::processInstruction(MachineFunction &MF,
439439
case X86::VMOVUPSZrm:
440440
return FixupConstant({{X86::VBROADCASTSSZrm, 1, 32, rebuildSplatCst},
441441
{X86::VBROADCASTSDZrm, 1, 64, rebuildSplatCst},
442-
{X86::VBROADCASTF32X4rm, 1, 128, rebuildSplatCst},
443-
{X86::VBROADCASTF64X4rm, 1, 256, rebuildSplatCst}},
442+
{X86::VBROADCASTF32X4Zrm, 1, 128, rebuildSplatCst},
443+
{X86::VBROADCASTF64X4Zrm, 1, 256, rebuildSplatCst}},
444444
512, 1);
445445
/* Integer Loads */
446446
case X86::MOVDQArm:
@@ -572,12 +572,12 @@ bool X86FixupVectorConstantsPass::processInstruction(MachineFunction &MF,
572572
{X86::VPBROADCASTQZrm, 1, 64, rebuildSplatCst},
573573
{X86::VPMOVSXBQZrm, 8, 8, rebuildSExtCst},
574574
{X86::VPMOVZXBQZrm, 8, 8, rebuildZExtCst},
575-
{X86::VBROADCASTI32X4rm, 1, 128, rebuildSplatCst},
575+
{X86::VBROADCASTI32X4Zrm, 1, 128, rebuildSplatCst},
576576
{X86::VPMOVSXBDZrm, 16, 8, rebuildSExtCst},
577577
{X86::VPMOVZXBDZrm, 16, 8, rebuildZExtCst},
578578
{X86::VPMOVSXWQZrm, 8, 16, rebuildSExtCst},
579579
{X86::VPMOVZXWQZrm, 8, 16, rebuildZExtCst},
580-
{X86::VBROADCASTI64X4rm, 1, 256, rebuildSplatCst},
580+
{X86::VBROADCASTI64X4Zrm, 1, 256, rebuildSplatCst},
581581
{HasBWI ? X86::VPMOVSXBWZrm : 0, 32, 8, rebuildSExtCst},
582582
{HasBWI ? X86::VPMOVZXBWZrm : 0, 32, 8, rebuildZExtCst},
583583
{X86::VPMOVSXWDZrm, 16, 16, rebuildSExtCst},

llvm/lib/Target/X86/X86InstrAVX512.td

Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1337,84 +1337,84 @@ let Predicates = [HasVLX, HasBWI] in {
13371337
// AVX-512 BROADCAST SUBVECTORS
13381338
//
13391339

1340-
defm VBROADCASTI32X4 : avx512_subvec_broadcast_rm<0x5a, "vbroadcasti32x4",
1341-
X86SubVBroadcastld128, v16i32_info, v4i32x_info>,
1342-
EVEX_V512, EVEX_CD8<32, CD8VT4>;
1343-
defm VBROADCASTF32X4 : avx512_subvec_broadcast_rm<0x1a, "vbroadcastf32x4",
1344-
X86SubVBroadcastld128, v16f32_info, v4f32x_info>,
1345-
EVEX_V512, EVEX_CD8<32, CD8VT4>;
1346-
defm VBROADCASTI64X4 : avx512_subvec_broadcast_rm<0x5b, "vbroadcasti64x4",
1347-
X86SubVBroadcastld256, v8i64_info, v4i64x_info>, REX_W,
1348-
EVEX_V512, EVEX_CD8<64, CD8VT4>;
1349-
defm VBROADCASTF64X4 : avx512_subvec_broadcast_rm<0x1b, "vbroadcastf64x4",
1350-
X86SubVBroadcastld256, v8f64_info, v4f64x_info>, REX_W,
1351-
EVEX_V512, EVEX_CD8<64, CD8VT4>;
1340+
defm VBROADCASTI32X4Z : avx512_subvec_broadcast_rm<0x5a, "vbroadcasti32x4",
1341+
X86SubVBroadcastld128, v16i32_info, v4i32x_info>,
1342+
EVEX_V512, EVEX_CD8<32, CD8VT4>;
1343+
defm VBROADCASTF32X4Z : avx512_subvec_broadcast_rm<0x1a, "vbroadcastf32x4",
1344+
X86SubVBroadcastld128, v16f32_info, v4f32x_info>,
1345+
EVEX_V512, EVEX_CD8<32, CD8VT4>;
1346+
defm VBROADCASTI64X4Z : avx512_subvec_broadcast_rm<0x5b, "vbroadcasti64x4",
1347+
X86SubVBroadcastld256, v8i64_info, v4i64x_info>, REX_W,
1348+
EVEX_V512, EVEX_CD8<64, CD8VT4>;
1349+
defm VBROADCASTF64X4Z : avx512_subvec_broadcast_rm<0x1b, "vbroadcastf64x4",
1350+
X86SubVBroadcastld256, v8f64_info, v4f64x_info>, REX_W,
1351+
EVEX_V512, EVEX_CD8<64, CD8VT4>;
13521352

13531353
let Predicates = [HasAVX512] in {
13541354
def : Pat<(v8f64 (X86SubVBroadcastld256 addr:$src)),
1355-
(VBROADCASTF64X4rm addr:$src)>;
1355+
(VBROADCASTF64X4Zrm addr:$src)>;
13561356
def : Pat<(v16f32 (X86SubVBroadcastld256 addr:$src)),
1357-
(VBROADCASTF64X4rm addr:$src)>;
1357+
(VBROADCASTF64X4Zrm addr:$src)>;
13581358
def : Pat<(v32f16 (X86SubVBroadcastld256 addr:$src)),
1359-
(VBROADCASTF64X4rm addr:$src)>;
1359+
(VBROADCASTF64X4Zrm addr:$src)>;
13601360
def : Pat<(v8i64 (X86SubVBroadcastld256 addr:$src)),
1361-
(VBROADCASTI64X4rm addr:$src)>;
1361+
(VBROADCASTI64X4Zrm addr:$src)>;
13621362
def : Pat<(v16i32 (X86SubVBroadcastld256 addr:$src)),
1363-
(VBROADCASTI64X4rm addr:$src)>;
1363+
(VBROADCASTI64X4Zrm addr:$src)>;
13641364
def : Pat<(v32i16 (X86SubVBroadcastld256 addr:$src)),
1365-
(VBROADCASTI64X4rm addr:$src)>;
1365+
(VBROADCASTI64X4Zrm addr:$src)>;
13661366
def : Pat<(v64i8 (X86SubVBroadcastld256 addr:$src)),
1367-
(VBROADCASTI64X4rm addr:$src)>;
1367+
(VBROADCASTI64X4Zrm addr:$src)>;
13681368

13691369
def : Pat<(v8f64 (X86SubVBroadcastld128 addr:$src)),
1370-
(VBROADCASTF32X4rm addr:$src)>;
1370+
(VBROADCASTF32X4Zrm addr:$src)>;
13711371
def : Pat<(v16f32 (X86SubVBroadcastld128 addr:$src)),
1372-
(VBROADCASTF32X4rm addr:$src)>;
1372+
(VBROADCASTF32X4Zrm addr:$src)>;
13731373
def : Pat<(v32f16 (X86SubVBroadcastld128 addr:$src)),
1374-
(VBROADCASTF32X4rm addr:$src)>;
1374+
(VBROADCASTF32X4Zrm addr:$src)>;
13751375
def : Pat<(v8i64 (X86SubVBroadcastld128 addr:$src)),
1376-
(VBROADCASTI32X4rm addr:$src)>;
1376+
(VBROADCASTI32X4Zrm addr:$src)>;
13771377
def : Pat<(v16i32 (X86SubVBroadcastld128 addr:$src)),
1378-
(VBROADCASTI32X4rm addr:$src)>;
1378+
(VBROADCASTI32X4Zrm addr:$src)>;
13791379
def : Pat<(v32i16 (X86SubVBroadcastld128 addr:$src)),
1380-
(VBROADCASTI32X4rm addr:$src)>;
1380+
(VBROADCASTI32X4Zrm addr:$src)>;
13811381
def : Pat<(v64i8 (X86SubVBroadcastld128 addr:$src)),
1382-
(VBROADCASTI32X4rm addr:$src)>;
1382+
(VBROADCASTI32X4Zrm addr:$src)>;
13831383

13841384
// Patterns for selects of bitcasted operations.
13851385
def : Pat<(vselect_mask VK16WM:$mask,
13861386
(bc_v16f32 (v8f64 (X86SubVBroadcastld128 addr:$src))),
13871387
(v16f32 immAllZerosV)),
1388-
(VBROADCASTF32X4rmkz VK16WM:$mask, addr:$src)>;
1388+
(VBROADCASTF32X4Zrmkz VK16WM:$mask, addr:$src)>;
13891389
def : Pat<(vselect_mask VK16WM:$mask,
13901390
(bc_v16f32 (v8f64 (X86SubVBroadcastld128 addr:$src))),
13911391
VR512:$src0),
1392-
(VBROADCASTF32X4rmk VR512:$src0, VK16WM:$mask, addr:$src)>;
1392+
(VBROADCASTF32X4Zrmk VR512:$src0, VK16WM:$mask, addr:$src)>;
13931393
def : Pat<(vselect_mask VK16WM:$mask,
13941394
(bc_v16i32 (v8i64 (X86SubVBroadcastld128 addr:$src))),
13951395
(v16i32 immAllZerosV)),
1396-
(VBROADCASTI32X4rmkz VK16WM:$mask, addr:$src)>;
1396+
(VBROADCASTI32X4Zrmkz VK16WM:$mask, addr:$src)>;
13971397
def : Pat<(vselect_mask VK16WM:$mask,
13981398
(bc_v16i32 (v8i64 (X86SubVBroadcastld128 addr:$src))),
13991399
VR512:$src0),
1400-
(VBROADCASTI32X4rmk VR512:$src0, VK16WM:$mask, addr:$src)>;
1400+
(VBROADCASTI32X4Zrmk VR512:$src0, VK16WM:$mask, addr:$src)>;
14011401

14021402
def : Pat<(vselect_mask VK8WM:$mask,
14031403
(bc_v8f64 (v16f32 (X86SubVBroadcastld256 addr:$src))),
14041404
(v8f64 immAllZerosV)),
1405-
(VBROADCASTF64X4rmkz VK8WM:$mask, addr:$src)>;
1405+
(VBROADCASTF64X4Zrmkz VK8WM:$mask, addr:$src)>;
14061406
def : Pat<(vselect_mask VK8WM:$mask,
14071407
(bc_v8f64 (v16f32 (X86SubVBroadcastld256 addr:$src))),
14081408
VR512:$src0),
1409-
(VBROADCASTF64X4rmk VR512:$src0, VK8WM:$mask, addr:$src)>;
1409+
(VBROADCASTF64X4Zrmk VR512:$src0, VK8WM:$mask, addr:$src)>;
14101410
def : Pat<(vselect_mask VK8WM:$mask,
14111411
(bc_v8i64 (v16i32 (X86SubVBroadcastld256 addr:$src))),
14121412
(v8i64 immAllZerosV)),
1413-
(VBROADCASTI64X4rmkz VK8WM:$mask, addr:$src)>;
1413+
(VBROADCASTI64X4Zrmkz VK8WM:$mask, addr:$src)>;
14141414
def : Pat<(vselect_mask VK8WM:$mask,
14151415
(bc_v8i64 (v16i32 (X86SubVBroadcastld256 addr:$src))),
14161416
VR512:$src0),
1417-
(VBROADCASTI64X4rmk VR512:$src0, VK8WM:$mask, addr:$src)>;
1417+
(VBROADCASTI64X4Zrmk VR512:$src0, VK8WM:$mask, addr:$src)>;
14181418
}
14191419

14201420
let Predicates = [HasVLX] in {
@@ -1461,90 +1461,90 @@ def : Pat<(vselect_mask VK8WM:$mask,
14611461

14621462
let Predicates = [HasBF16] in {
14631463
def : Pat<(v32bf16 (X86SubVBroadcastld256 addr:$src)),
1464-
(VBROADCASTF64X4rm addr:$src)>;
1464+
(VBROADCASTF64X4Zrm addr:$src)>;
14651465
def : Pat<(v32bf16 (X86SubVBroadcastld128 addr:$src)),
1466-
(VBROADCASTF32X4rm addr:$src)>;
1466+
(VBROADCASTF32X4Zrm addr:$src)>;
14671467
}
14681468

14691469
let Predicates = [HasBF16, HasVLX] in
14701470
def : Pat<(v16bf16 (X86SubVBroadcastld128 addr:$src)),
14711471
(VBROADCASTF32X4Z256rm addr:$src)>;
14721472

14731473
let Predicates = [HasVLX, HasDQI] in {
1474-
defm VBROADCASTI64X2Z128 : avx512_subvec_broadcast_rm_dq<0x5a, "vbroadcasti64x2",
1474+
defm VBROADCASTI64X2Z256 : avx512_subvec_broadcast_rm_dq<0x5a, "vbroadcasti64x2",
14751475
X86SubVBroadcastld128, v4i64x_info, v2i64x_info>,
14761476
EVEX_V256, EVEX_CD8<64, CD8VT2>, REX_W;
1477-
defm VBROADCASTF64X2Z128 : avx512_subvec_broadcast_rm_dq<0x1a, "vbroadcastf64x2",
1477+
defm VBROADCASTF64X2Z256 : avx512_subvec_broadcast_rm_dq<0x1a, "vbroadcastf64x2",
14781478
X86SubVBroadcastld128, v4f64x_info, v2f64x_info>,
14791479
EVEX_V256, EVEX_CD8<64, CD8VT2>, REX_W;
14801480

14811481
// Patterns for selects of bitcasted operations.
14821482
def : Pat<(vselect_mask VK4WM:$mask,
14831483
(bc_v4f64 (v8f32 (X86SubVBroadcastld128 addr:$src))),
14841484
(v4f64 immAllZerosV)),
1485-
(VBROADCASTF64X2Z128rmkz VK4WM:$mask, addr:$src)>;
1485+
(VBROADCASTF64X2Z256rmkz VK4WM:$mask, addr:$src)>;
14861486
def : Pat<(vselect_mask VK4WM:$mask,
14871487
(bc_v4f64 (v8f32 (X86SubVBroadcastld128 addr:$src))),
14881488
VR256X:$src0),
1489-
(VBROADCASTF64X2Z128rmk VR256X:$src0, VK4WM:$mask, addr:$src)>;
1489+
(VBROADCASTF64X2Z256rmk VR256X:$src0, VK4WM:$mask, addr:$src)>;
14901490
def : Pat<(vselect_mask VK4WM:$mask,
14911491
(bc_v4i64 (v8i32 (X86SubVBroadcastld128 addr:$src))),
14921492
(v4i64 immAllZerosV)),
1493-
(VBROADCASTI64X2Z128rmkz VK4WM:$mask, addr:$src)>;
1493+
(VBROADCASTI64X2Z256rmkz VK4WM:$mask, addr:$src)>;
14941494
def : Pat<(vselect_mask VK4WM:$mask,
14951495
(bc_v4i64 (v8i32 (X86SubVBroadcastld128 addr:$src))),
14961496
VR256X:$src0),
1497-
(VBROADCASTI64X2Z128rmk VR256X:$src0, VK4WM:$mask, addr:$src)>;
1497+
(VBROADCASTI64X2Z256rmk VR256X:$src0, VK4WM:$mask, addr:$src)>;
14981498
}
14991499

15001500
let Predicates = [HasDQI] in {
1501-
defm VBROADCASTI64X2 : avx512_subvec_broadcast_rm_dq<0x5a, "vbroadcasti64x2",
1502-
X86SubVBroadcastld128, v8i64_info, v2i64x_info>, REX_W,
1503-
EVEX_V512, EVEX_CD8<64, CD8VT2>;
1504-
defm VBROADCASTI32X8 : avx512_subvec_broadcast_rm_dq<0x5b, "vbroadcasti32x8",
1505-
X86SubVBroadcastld256, v16i32_info, v8i32x_info>,
1506-
EVEX_V512, EVEX_CD8<32, CD8VT8>;
1507-
defm VBROADCASTF64X2 : avx512_subvec_broadcast_rm_dq<0x1a, "vbroadcastf64x2",
1508-
X86SubVBroadcastld128, v8f64_info, v2f64x_info>, REX_W,
1509-
EVEX_V512, EVEX_CD8<64, CD8VT2>;
1510-
defm VBROADCASTF32X8 : avx512_subvec_broadcast_rm_dq<0x1b, "vbroadcastf32x8",
1511-
X86SubVBroadcastld256, v16f32_info, v8f32x_info>,
1512-
EVEX_V512, EVEX_CD8<32, CD8VT8>;
1501+
defm VBROADCASTI64X2Z : avx512_subvec_broadcast_rm_dq<0x5a, "vbroadcasti64x2",
1502+
X86SubVBroadcastld128, v8i64_info, v2i64x_info>, REX_W,
1503+
EVEX_V512, EVEX_CD8<64, CD8VT2>;
1504+
defm VBROADCASTI32X8Z : avx512_subvec_broadcast_rm_dq<0x5b, "vbroadcasti32x8",
1505+
X86SubVBroadcastld256, v16i32_info, v8i32x_info>,
1506+
EVEX_V512, EVEX_CD8<32, CD8VT8>;
1507+
defm VBROADCASTF64X2Z : avx512_subvec_broadcast_rm_dq<0x1a, "vbroadcastf64x2",
1508+
X86SubVBroadcastld128, v8f64_info, v2f64x_info>, REX_W,
1509+
EVEX_V512, EVEX_CD8<64, CD8VT2>;
1510+
defm VBROADCASTF32X8Z : avx512_subvec_broadcast_rm_dq<0x1b, "vbroadcastf32x8",
1511+
X86SubVBroadcastld256, v16f32_info, v8f32x_info>,
1512+
EVEX_V512, EVEX_CD8<32, CD8VT8>;
15131513

15141514
// Patterns for selects of bitcasted operations.
15151515
def : Pat<(vselect_mask VK16WM:$mask,
15161516
(bc_v16f32 (v8f64 (X86SubVBroadcastld256 addr:$src))),
15171517
(v16f32 immAllZerosV)),
1518-
(VBROADCASTF32X8rmkz VK16WM:$mask, addr:$src)>;
1518+
(VBROADCASTF32X8Zrmkz VK16WM:$mask, addr:$src)>;
15191519
def : Pat<(vselect_mask VK16WM:$mask,
15201520
(bc_v16f32 (v8f64 (X86SubVBroadcastld256 addr:$src))),
15211521
VR512:$src0),
1522-
(VBROADCASTF32X8rmk VR512:$src0, VK16WM:$mask, addr:$src)>;
1522+
(VBROADCASTF32X8Zrmk VR512:$src0, VK16WM:$mask, addr:$src)>;
15231523
def : Pat<(vselect_mask VK16WM:$mask,
15241524
(bc_v16i32 (v8i64 (X86SubVBroadcastld256 addr:$src))),
15251525
(v16i32 immAllZerosV)),
1526-
(VBROADCASTI32X8rmkz VK16WM:$mask, addr:$src)>;
1526+
(VBROADCASTI32X8Zrmkz VK16WM:$mask, addr:$src)>;
15271527
def : Pat<(vselect_mask VK16WM:$mask,
15281528
(bc_v16i32 (v8i64 (X86SubVBroadcastld256 addr:$src))),
15291529
VR512:$src0),
1530-
(VBROADCASTI32X8rmk VR512:$src0, VK16WM:$mask, addr:$src)>;
1530+
(VBROADCASTI32X8Zrmk VR512:$src0, VK16WM:$mask, addr:$src)>;
15311531

15321532
def : Pat<(vselect_mask VK8WM:$mask,
15331533
(bc_v8f64 (v16f32 (X86SubVBroadcastld128 addr:$src))),
15341534
(v8f64 immAllZerosV)),
1535-
(VBROADCASTF64X2rmkz VK8WM:$mask, addr:$src)>;
1535+
(VBROADCASTF64X2Zrmkz VK8WM:$mask, addr:$src)>;
15361536
def : Pat<(vselect_mask VK8WM:$mask,
15371537
(bc_v8f64 (v16f32 (X86SubVBroadcastld128 addr:$src))),
15381538
VR512:$src0),
1539-
(VBROADCASTF64X2rmk VR512:$src0, VK8WM:$mask, addr:$src)>;
1539+
(VBROADCASTF64X2Zrmk VR512:$src0, VK8WM:$mask, addr:$src)>;
15401540
def : Pat<(vselect_mask VK8WM:$mask,
15411541
(bc_v8i64 (v16i32 (X86SubVBroadcastld128 addr:$src))),
15421542
(v8i64 immAllZerosV)),
1543-
(VBROADCASTI64X2rmkz VK8WM:$mask, addr:$src)>;
1543+
(VBROADCASTI64X2Zrmkz VK8WM:$mask, addr:$src)>;
15441544
def : Pat<(vselect_mask VK8WM:$mask,
15451545
(bc_v8i64 (v16i32 (X86SubVBroadcastld128 addr:$src))),
15461546
VR512:$src0),
1547-
(VBROADCASTI64X2rmk VR512:$src0, VK8WM:$mask, addr:$src)>;
1547+
(VBROADCASTI64X2Zrmk VR512:$src0, VK8WM:$mask, addr:$src)>;
15481548
}
15491549

15501550
multiclass avx512_common_broadcast_32x2<bits<8> opc, string OpcodeStr,

llvm/lib/Target/X86/X86InstrInfo.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6246,16 +6246,16 @@ bool X86InstrInfo::expandPostRAPseudo(MachineInstr &MI) const {
62466246
}
62476247
case X86::VMOVAPSZ128rm_NOVLX:
62486248
return expandNOVLXLoad(MIB, &getRegisterInfo(), get(X86::VMOVAPSrm),
6249-
get(X86::VBROADCASTF32X4rm), X86::sub_xmm);
6249+
get(X86::VBROADCASTF32X4Zrm), X86::sub_xmm);
62506250
case X86::VMOVUPSZ128rm_NOVLX:
62516251
return expandNOVLXLoad(MIB, &getRegisterInfo(), get(X86::VMOVUPSrm),
6252-
get(X86::VBROADCASTF32X4rm), X86::sub_xmm);
6252+
get(X86::VBROADCASTF32X4Zrm), X86::sub_xmm);
62536253
case X86::VMOVAPSZ256rm_NOVLX:
62546254
return expandNOVLXLoad(MIB, &getRegisterInfo(), get(X86::VMOVAPSYrm),
6255-
get(X86::VBROADCASTF64X4rm), X86::sub_ymm);
6255+
get(X86::VBROADCASTF64X4Zrm), X86::sub_ymm);
62566256
case X86::VMOVUPSZ256rm_NOVLX:
62576257
return expandNOVLXLoad(MIB, &getRegisterInfo(), get(X86::VMOVUPSYrm),
6258-
get(X86::VBROADCASTF64X4rm), X86::sub_ymm);
6258+
get(X86::VBROADCASTF64X4Zrm), X86::sub_ymm);
62596259
case X86::VMOVAPSZ128mr_NOVLX:
62606260
return expandNOVLXStore(MIB, &getRegisterInfo(), get(X86::VMOVAPSmr),
62616261
get(X86::VEXTRACTF32x4Zmri), X86::sub_xmm);

llvm/lib/Target/X86/X86MCInstLower.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2051,21 +2051,21 @@ static void addConstantComments(const MachineInstr *MI,
20512051
case X86::VBROADCASTF128rm:
20522052
case X86::VBROADCASTI128rm:
20532053
MASK_AVX512_CASE(X86::VBROADCASTF32X4Z256rm)
2054-
MASK_AVX512_CASE(X86::VBROADCASTF64X2Z128rm)
2054+
MASK_AVX512_CASE(X86::VBROADCASTF64X2Z256rm)
20552055
MASK_AVX512_CASE(X86::VBROADCASTI32X4Z256rm)
2056-
MASK_AVX512_CASE(X86::VBROADCASTI64X2Z128rm)
2056+
MASK_AVX512_CASE(X86::VBROADCASTI64X2Z256rm)
20572057
printBroadcast(MI, OutStreamer, 2, 128);
20582058
break;
2059-
MASK_AVX512_CASE(X86::VBROADCASTF32X4rm)
2060-
MASK_AVX512_CASE(X86::VBROADCASTF64X2rm)
2061-
MASK_AVX512_CASE(X86::VBROADCASTI32X4rm)
2062-
MASK_AVX512_CASE(X86::VBROADCASTI64X2rm)
2059+
MASK_AVX512_CASE(X86::VBROADCASTF32X4Zrm)
2060+
MASK_AVX512_CASE(X86::VBROADCASTF64X2Zrm)
2061+
MASK_AVX512_CASE(X86::VBROADCASTI32X4Zrm)
2062+
MASK_AVX512_CASE(X86::VBROADCASTI64X2Zrm)
20632063
printBroadcast(MI, OutStreamer, 4, 128);
20642064
break;
2065-
MASK_AVX512_CASE(X86::VBROADCASTF32X8rm)
2066-
MASK_AVX512_CASE(X86::VBROADCASTF64X4rm)
2067-
MASK_AVX512_CASE(X86::VBROADCASTI32X8rm)
2068-
MASK_AVX512_CASE(X86::VBROADCASTI64X4rm)
2065+
MASK_AVX512_CASE(X86::VBROADCASTF32X8Zrm)
2066+
MASK_AVX512_CASE(X86::VBROADCASTF64X4Zrm)
2067+
MASK_AVX512_CASE(X86::VBROADCASTI32X8Zrm)
2068+
MASK_AVX512_CASE(X86::VBROADCASTI64X4Zrm)
20692069
printBroadcast(MI, OutStreamer, 2, 256);
20702070
break;
20712071

0 commit comments

Comments
 (0)