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

References

lib/CodeGen/GlobalISel/LegalizerHelper.cpp
 1414     return widenScalarExtract(MI, TypeIdx, WideTy);
 1416     return widenScalarInsert(MI, TypeIdx, WideTy);
 1418     return widenScalarMergeValues(MI, TypeIdx, WideTy);
 1420     return widenScalarUnmergeValues(MI, TypeIdx, WideTy);
 1425     auto LHSZext = MIRBuilder.buildInstr(TargetOpcode::G_ZEXT, {WideTy},
 1427     auto RHSZext = MIRBuilder.buildInstr(TargetOpcode::G_ZEXT, {WideTy},
 1433     auto NewOp = MIRBuilder.buildInstr(Opcode, {WideTy}, {LHSZext, RHSZext});
 1437         TargetOpcode::G_AND, {WideTy},
 1438         {NewOp, MIRBuilder.buildConstant(WideTy, Mask.getZExtValue())});
 1454       widenScalarDst(MI, WideTy, 0);
 1462     auto MIBSrc = MIRBuilder.buildZExt(WideTy, SrcReg);
 1469           APInt::getOneBitSet(WideTy.getSizeInBits(), CurTy.getSizeInBits());
 1471         WideTy, MIBSrc, MIRBuilder.buildConstant(WideTy, TopBit));
 1471         WideTy, MIBSrc, MIRBuilder.buildConstant(WideTy, TopBit));
 1475     auto MIBNewOp = MIRBuilder.buildInstr(MI.getOpcode(), {WideTy}, {MIBSrc});
 1480       unsigned SizeDiff = WideTy.getSizeInBits() - CurTy.getSizeInBits();
 1482           TargetOpcode::G_SUB, {WideTy},
 1483           {MIBNewOp, MIRBuilder.buildConstant(WideTy, SizeDiff)});
 1494     Register ShrReg = MRI.createGenericVirtualRegister(WideTy);
 1495     Register DstExt = MRI.createGenericVirtualRegister(WideTy);
 1496     Register ShiftAmtReg = MRI.createGenericVirtualRegister(WideTy);
 1497     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1504     unsigned DiffBits = WideTy.getScalarSizeInBits() - Ty.getScalarSizeInBits();
 1520     unsigned DiffBits = WideTy.getScalarSizeInBits() - Ty.getScalarSizeInBits();
 1522     Register DstExt = MRI.createGenericVirtualRegister(WideTy);
 1523     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1527     auto ShiftAmt = MIRBuilder.buildConstant(WideTy, DiffBits);
 1528     auto Shift = MIRBuilder.buildLShr(WideTy, DstExt, ShiftAmt);
 1543     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1544     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT);
 1545     widenScalarDst(MI, WideTy);
 1553       widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1554       widenScalarDst(MI, WideTy);
 1559       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
 1570     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT);
 1571     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
 1572     widenScalarDst(MI, WideTy);
 1584       widenScalarSrc(MI, WideTy, 1, CvtOp);
 1585       widenScalarDst(MI, WideTy);
 1590       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
 1600     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
 1601     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ZEXT);
 1602     widenScalarDst(MI, WideTy);
 1612       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT);
 1613       widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_ANYEXT);
 1614       widenScalarDst(MI, WideTy);
 1618       widenScalarSrc(MI, WideTy, 1, MIRBuilder.getBoolExtOp(IsVec, false));
 1628       widenScalarDst(MI, WideTy);
 1630       widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_FPEXT);
 1638     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_SEXT);
 1646     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
 1654     widenScalarDst(MI, WideTy);
 1670     widenScalarSrc(MI, WideTy, 0, ExtType);
 1678     const APInt &Val = SrcMO.getCImm()->getValue().sext(WideTy.getSizeInBits());
 1682     widenScalarDst(MI, WideTy);
 1691     switch (WideTy.getSizeInBits()) {
 1709     widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC);
 1715     widenScalarDst(MI, WideTy);
 1721     widenScalarSrc(MI, WideTy, 0, MIRBuilder.getBoolExtOp(false, false));
 1728       widenScalarDst(MI, WideTy);
 1730       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_FPEXT);
 1731       widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_FPEXT);
 1739       widenScalarDst(MI, WideTy);
 1745       widenScalarSrc(MI, WideTy, 2, ExtOpcode);
 1746       widenScalarSrc(MI, WideTy, 3, ExtOpcode);
 1754     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
 1765       widenScalarSrc(MI, WideTy, I, TargetOpcode::G_ANYEXT);
 1770     widenScalarDst(MI, WideTy);
 1781                                      WideTy.getSizeInBits()),
 1784       widenScalarDst(MI, WideTy, 0);
 1793     widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_SEXT);
 1803       LLT WideVecTy = LLT::vector(VecTy.getNumElements(), WideTy);
 1806       widenScalarSrc(MI, WideTy, 2, TargetOpcode::G_ANYEXT);
 1815       widenScalarSrc(MI, WideTy, 3, TargetOpcode::G_SEXT);
 1856       widenScalarSrc(MI, WideTy, I, TargetOpcode::G_FPEXT);
 1858     widenScalarDst(MI, WideTy, 0, TargetOpcode::G_FPTRUNC);
 1866     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ZEXT);
 1874     widenScalarDst(MI, WideTy, 0);
 1880     const LLT WideEltTy = TypeIdx == 1 ? WideTy : WideTy.getElementType();
 1880     const LLT WideEltTy = TypeIdx == 1 ? WideTy : WideTy.getElementType();
 1890       widenScalarDst(MI, WideTy, 0);
 1901     widenScalarSrc(MI, WideTy, 1, TargetOpcode::G_ANYEXT);
 1902     widenScalarDst(MI, WideTy, 0, TargetOpcode::G_TRUNC);