Skip to content

Commit 6639743

Browse files
committed
[X86] Add common getSrcIdx helper to determine source index after AVX512 masked predicates. NFC.
1 parent a826a0c commit 6639743

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

llvm/lib/Target/X86/X86MCInstLower.cpp

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,6 +1400,18 @@ static unsigned getRegisterWidth(const MCOperandInfo &Info) {
14001400
llvm_unreachable("Unknown register class!");
14011401
}
14021402

1403+
static unsigned getSrcIdx(const MachineInstr* MI, unsigned SrcIdx) {
1404+
if (X86II::isKMasked(MI->getDesc().TSFlags)) {
1405+
// Skip mask operand.
1406+
++SrcIdx;
1407+
if (X86II::isKMergeMasked(MI->getDesc().TSFlags)) {
1408+
// Skip passthru operand.
1409+
++SrcIdx;
1410+
}
1411+
}
1412+
return SrcIdx;
1413+
}
1414+
14031415
static std::string getShuffleComment(const MachineInstr *MI, unsigned SrcOp1Idx,
14041416
unsigned SrcOp2Idx, ArrayRef<int> Mask) {
14051417
std::string Comment;
@@ -1749,16 +1761,7 @@ static void addConstantComments(const MachineInstr *MI,
17491761
case X86::VPSHUFBZrm:
17501762
case X86::VPSHUFBZrmk:
17511763
case X86::VPSHUFBZrmkz: {
1752-
unsigned SrcIdx = 1;
1753-
if (X86II::isKMasked(MI->getDesc().TSFlags)) {
1754-
// Skip mask operand.
1755-
++SrcIdx;
1756-
if (X86II::isKMergeMasked(MI->getDesc().TSFlags)) {
1757-
// Skip passthru operand.
1758-
++SrcIdx;
1759-
}
1760-
}
1761-
1764+
unsigned SrcIdx = getSrcIdx(MI, 1);
17621765
if (auto *C = X86::getConstantFromPool(*MI, SrcIdx + 1)) {
17631766
unsigned Width = getRegisterWidth(MI->getDesc().operands()[0]);
17641767
SmallVector<int, 64> Mask;
@@ -1822,16 +1825,7 @@ static void addConstantComments(const MachineInstr *MI,
18221825
break;
18231826
}
18241827

1825-
unsigned SrcIdx = 1;
1826-
if (X86II::isKMasked(MI->getDesc().TSFlags)) {
1827-
// Skip mask operand.
1828-
++SrcIdx;
1829-
if (X86II::isKMergeMasked(MI->getDesc().TSFlags)) {
1830-
// Skip passthru operand.
1831-
++SrcIdx;
1832-
}
1833-
}
1834-
1828+
unsigned SrcIdx = getSrcIdx(MI, 1);
18351829
if (auto *C = X86::getConstantFromPool(*MI, SrcIdx + 1)) {
18361830
unsigned Width = getRegisterWidth(MI->getDesc().operands()[0]);
18371831
SmallVector<int, 16> Mask;

0 commit comments

Comments
 (0)