reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/CodeGen/GlobalISel/LegalizerHelper.cpp
 1408   MIRBuilder.setInstr(MI);
 1410   switch (MI.getOpcode()) {
 1414     return widenScalarExtract(MI, TypeIdx, WideTy);
 1416     return widenScalarInsert(MI, TypeIdx, WideTy);
 1418     return widenScalarMergeValues(MI, TypeIdx, WideTy);
 1420     return widenScalarUnmergeValues(MI, TypeIdx, WideTy);
 1426                                          {MI.getOperand(2).getReg()});
 1428                                          {MI.getOperand(3).getReg()});
 1429     unsigned Opcode = MI.getOpcode() == TargetOpcode::G_UADDO
 1434     LLT OrigTy = MRI.getType(MI.getOperand(0).getReg());
 1440     MIRBuilder.buildICmp(CmpInst::ICMP_NE, MI.getOperand(1).getReg(), NewOp,
 1443     MIRBuilder.buildTrunc(MI.getOperand(0).getReg(), NewOp);
 1444     MI.eraseFromParent();
 1453       Observer.changingInstr(MI);
 1454       widenScalarDst(MI, WideTy, 0);
 1455       Observer.changedInstr(MI);
 1459     Register SrcReg = MI.getOperand(1).getReg();
 1464     if (MI.getOpcode() == TargetOpcode::G_CTTZ) {
 1475     auto MIBNewOp = MIRBuilder.buildInstr(MI.getOpcode(), {WideTy}, {MIBSrc});
 1477     if (MI.getOpcode() == TargetOpcode::G_CTLZ ||
 1478         MI.getOpcode() == TargetOpcode::G_CTLZ_ZERO_UNDEF) {
 1486     MIRBuilder.buildZExtOrTrunc(MI.getOperand(0), MIBNewOp);
 1487     MI.eraseFromParent();
 1491     Observer.changingInstr(MI);
 1492     Register DstReg = MI.getOperand(0).getReg();
 1497     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1499     MI.getOperand(0).setReg(DstExt);
 1512     Observer.changedInstr(MI);
 1516     Observer.changingInstr(MI);
 1518     Register DstReg = MI.getOperand(0).getReg();
 1523     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1524     MI.getOperand(0).setReg(DstExt);
 1530     Observer.changedInstr(MI);
 1542     Observer.changingInstr(MI);
 1543     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1544     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT);
 1545     widenScalarDst(MI, WideTy);
 1546     Observer.changedInstr(MI);
 1550     Observer.changingInstr(MI);
 1553       widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1554       widenScalarDst(MI, WideTy);
 1559       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
 1562     Observer.changedInstr(MI);
 1569     Observer.changingInstr(MI);
 1570     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT);
 1571     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
 1572     widenScalarDst(MI, WideTy);
 1573     Observer.changedInstr(MI);
 1578     Observer.changingInstr(MI);
 1581       unsigned CvtOp = MI.getOpcode() == TargetOpcode::G_ASHR ?
 1584       widenScalarSrc(MI, WideTy, 1, CvtOp);
 1585       widenScalarDst(MI, WideTy);
 1590       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
 1593     Observer.changedInstr(MI);
 1599     Observer.changingInstr(MI);
 1600     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
 1601     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
 1602     widenScalarDst(MI, WideTy);
 1603     Observer.changedInstr(MI);
 1607     Observer.changingInstr(MI);
 1612       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT);
 1613       widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT);
 1614       widenScalarDst(MI, WideTy);
 1616       bool IsVec = MRI.getType(MI.getOperand(1).getReg()).isVector();
 1618       widenScalarSrc(MI, WideTy, 1, MIRBuilder.getBoolExtOp(IsVec, false));
 1620     Observer.changedInstr(MI);
 1625     Observer.changingInstr(MI);
 1628       widenScalarDst(MI, WideTy);
 1630       widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT);
 1632     Observer.changedInstr(MI);
 1637     Observer.changingInstr(MI);
 1638     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT);
 1639     Observer.changedInstr(MI);
 1645     Observer.changingInstr(MI);
 1646     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
 1647     Observer.changedInstr(MI);
 1653     Observer.changingInstr(MI);
 1654     widenScalarDst(MI, WideTy);
 1655     Observer.changedInstr(MI);
 1662     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
 1666     Observer.changingInstr(MI);
 1670     widenScalarSrc(MI, WideTy, 0, ExtType);
 1672     Observer.changedInstr(MI);
 1676     MachineOperand &SrcMO = MI.getOperand(1);
 1679     Observer.changingInstr(MI);
 1682     widenScalarDst(MI, WideTy);
 1683     Observer.changedInstr(MI);
 1687     MachineOperand &SrcMO = MI.getOperand(1);
 1706     Observer.changingInstr(MI);
 1709     widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC);
 1710     Observer.changedInstr(MI);
 1714     Observer.changingInstr(MI);
 1715     widenScalarDst(MI, WideTy);
 1716     Observer.changedInstr(MI);
 1720     Observer.changingInstr(MI);
 1721     widenScalarSrc(MI, WideTy, 0, MIRBuilder.getBoolExtOp(false, false));
 1722     Observer.changedInstr(MI);
 1726     Observer.changingInstr(MI);
 1728       widenScalarDst(MI, WideTy);
 1730       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_FPEXT);
 1731       widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_FPEXT);
 1733     Observer.changedInstr(MI);
 1737     Observer.changingInstr(MI);
 1739       widenScalarDst(MI, WideTy);
 1742                                MI.getOperand(1).getPredicate()))
 1745       widenScalarSrc(MI, WideTy, 2, ExtOpcode);
 1746       widenScalarSrc(MI, WideTy, 3, ExtOpcode);
 1748     Observer.changedInstr(MI);
 1753     Observer.changingInstr(MI);
 1754     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
 1755     Observer.changedInstr(MI);
 1761     Observer.changingInstr(MI);
 1762     for (unsigned I = 1; I < MI.getNumOperands(); I += 2) {
 1763       MachineBasicBlock &OpMBB = *MI.getOperand(I + 1).getMBB();
 1765       widenScalarSrc(MI, WideTy, I, TargetOpcode::G_ANYEXT);
 1768     MachineBasicBlock &MBB = *MI.getParent();
 1770     widenScalarDst(MI, WideTy);
 1771     Observer.changedInstr(MI);
 1776       Register VecReg = MI.getOperand(1).getReg();
 1778       Observer.changingInstr(MI);
 1780       widenScalarSrc(MI, LLT::vector(VecTy.getNumElements(),
 1784       widenScalarDst(MI, WideTy, 0);
 1785       Observer.changedInstr(MI);
 1791     Observer.changingInstr(MI);
 1793     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
 1794     Observer.changedInstr(MI);
 1799       Observer.changingInstr(MI);
 1801       Register VecReg = MI.getOperand(1).getReg();
 1805       widenScalarSrc(MI, WideVecTy, 1, TargetOpcode::G_ANYEXT);
 1806       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT);
 1807       widenScalarDst(MI, WideVecTy, 0);
 1808       Observer.changedInstr(MI);
 1813       Observer.changingInstr(MI);
 1815       widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_SEXT);
 1816       Observer.changedInstr(MI);
 1853     Observer.changingInstr(MI);
 1855     for (unsigned I = 1, E = MI.getNumOperands(); I != E; ++I)
 1856       widenScalarSrc(MI, WideTy, I, TargetOpcode::G_FPEXT);
 1858     widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC);
 1859     Observer.changedInstr(MI);
 1865     Observer.changingInstr(MI);
 1866     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
 1867     Observer.changedInstr(MI);
 1873     Observer.changingInstr(MI);
 1874     widenScalarDst(MI, WideTy, 0);
 1875     Observer.changedInstr(MI);
 1878     Observer.changingInstr(MI);
 1881     for (int I = 1, E = MI.getNumOperands(); I != E; ++I)
 1882       widenScalarSrc(MI, WideEltTy, I, TargetOpcode::G_ANYEXT);
 1887       auto &TII = *MI.getMF()->getSubtarget().getInstrInfo();
 1888       MI.setDesc(TII.get(TargetOpcode::G_BUILD_VECTOR_TRUNC));
 1890       widenScalarDst(MI, WideTy, 0);
 1893     Observer.changedInstr(MI);
 1900     Observer.changingInstr(MI);
 1901     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1902     widenScalarDst(MI, WideTy, 0, TargetOpcode::G_TRUNC);
 1903     Observer.changedInstr(MI);