@@ -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+
14031415static 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