@@ -1782,7 +1782,17 @@ static void addConstantComments(const MachineInstr *MI,
1782
1782
case X86::VPERMILPSZ256rmkz:
1783
1783
case X86::VPERMILPSZrm:
1784
1784
case X86::VPERMILPSZrmk:
1785
- case X86::VPERMILPSZrmkz:
1785
+ case X86::VPERMILPSZrmkz: {
1786
+ unsigned SrcIdx = getSrcIdx (MI, 1 );
1787
+ if (auto *C = X86::getConstantFromPool (*MI, SrcIdx + 1 )) {
1788
+ unsigned Width = getRegisterWidth (MI->getDesc ().operands ()[0 ]);
1789
+ SmallVector<int , 16 > Mask;
1790
+ DecodeVPERMILPMask (C, 32 , Width, Mask);
1791
+ if (!Mask.empty ())
1792
+ OutStreamer.AddComment (getShuffleComment (MI, SrcIdx, SrcIdx, Mask));
1793
+ }
1794
+ break ;
1795
+ }
1786
1796
case X86::VPERMILPDrm:
1787
1797
case X86::VPERMILPDYrm:
1788
1798
case X86::VPERMILPDZ128rm:
@@ -1794,42 +1804,11 @@ static void addConstantComments(const MachineInstr *MI,
1794
1804
case X86::VPERMILPDZrm:
1795
1805
case X86::VPERMILPDZrmk:
1796
1806
case X86::VPERMILPDZrmkz: {
1797
- unsigned ElSize;
1798
- switch (MI->getOpcode ()) {
1799
- default : llvm_unreachable (" Invalid opcode" );
1800
- case X86::VPERMILPSrm:
1801
- case X86::VPERMILPSYrm:
1802
- case X86::VPERMILPSZ128rm:
1803
- case X86::VPERMILPSZ256rm:
1804
- case X86::VPERMILPSZrm:
1805
- case X86::VPERMILPSZ128rmkz:
1806
- case X86::VPERMILPSZ256rmkz:
1807
- case X86::VPERMILPSZrmkz:
1808
- case X86::VPERMILPSZ128rmk:
1809
- case X86::VPERMILPSZ256rmk:
1810
- case X86::VPERMILPSZrmk:
1811
- ElSize = 32 ;
1812
- break ;
1813
- case X86::VPERMILPDrm:
1814
- case X86::VPERMILPDYrm:
1815
- case X86::VPERMILPDZ128rm:
1816
- case X86::VPERMILPDZ256rm:
1817
- case X86::VPERMILPDZrm:
1818
- case X86::VPERMILPDZ128rmkz:
1819
- case X86::VPERMILPDZ256rmkz:
1820
- case X86::VPERMILPDZrmkz:
1821
- case X86::VPERMILPDZ128rmk:
1822
- case X86::VPERMILPDZ256rmk:
1823
- case X86::VPERMILPDZrmk:
1824
- ElSize = 64 ;
1825
- break ;
1826
- }
1827
-
1828
1807
unsigned SrcIdx = getSrcIdx (MI, 1 );
1829
1808
if (auto *C = X86::getConstantFromPool (*MI, SrcIdx + 1 )) {
1830
1809
unsigned Width = getRegisterWidth (MI->getDesc ().operands ()[0 ]);
1831
1810
SmallVector<int , 16 > Mask;
1832
- DecodeVPERMILPMask (C, ElSize , Width, Mask);
1811
+ DecodeVPERMILPMask (C, 64 , Width, Mask);
1833
1812
if (!Mask.empty ())
1834
1813
OutStreamer.AddComment (getShuffleComment (MI, SrcIdx, SrcIdx, Mask));
1835
1814
}
0 commit comments