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

References

lib/CodeGen/SelectionDAG/TargetLowering.cpp
  769   auto &DL = TLO.DAG.getDataLayout();
  791       Known = TLO.DAG.computeKnownBits(Op, DemandedElts, Depth);
  800     return TLO.CombineTo(Op, TLO.DAG.getUNDEF(VT));
  800     return TLO.CombineTo(Op, TLO.DAG.getUNDEF(VT));
  812       return TLO.CombineTo(Op, TLO.DAG.getUNDEF(VT));
  812       return TLO.CombineTo(Op, TLO.DAG.getUNDEF(VT));
  818     if (SimplifyDemandedBits(Src, SrcDemandedBits, SrcKnown, TLO, Depth + 1))
  826     Known = TLO.DAG.computeKnownBits(Op, DemandedElts, Depth);
  831       Known = TLO.DAG.computeKnownBits(Op, DemandedElts, Depth);
  851         return TLO.CombineTo(Op, Vec);
  857     if (SimplifyDemandedBits(Scl, DemandedSclBits, KnownScl, TLO, Depth + 1))
  863     if (SimplifyDemandedBits(Vec, DemandedBits, DemandedVecElts, KnownVec, TLO,
  894     if (SimplifyDemandedBits(Sub, DemandedBits, SubElts, KnownSub, TLO,
  897     if (SimplifyDemandedBits(Base, DemandedBits, BaseElts, KnownBase, TLO,
  924     if (SimplifyDemandedBits(Src, DemandedBits, SrcElts, Known, TLO, Depth + 1))
  938                                Known2, TLO, Depth + 1))
  979         if (SimplifyDemandedBits(Op0, DemandedBits, DemandedLHS, Known2, TLO,
  986         if (SimplifyDemandedBits(Op1, DemandedBits, DemandedRHS, Known2, TLO,
  995           Op0, DemandedBits, DemandedLHS, TLO.DAG, Depth + 1);
  997           Op1, DemandedBits, DemandedRHS, TLO.DAG, Depth + 1);
 1001         SDValue NewOp = TLO.DAG.getVectorShuffle(VT, dl, Op0, Op1, ShuffleMask);
 1002         return TLO.CombineTo(Op, NewOp);
 1017       KnownBits LHSKnown = TLO.DAG.computeKnownBits(Op0, DemandedElts, Depth);
 1021         return TLO.CombineTo(Op, Op0);
 1025       if (ShrinkDemandedConstant(Op, ~LHSKnown.Zero & DemandedBits, TLO))
 1035         SDValue Xor = TLO.DAG.getNode(ISD::XOR, dl, VT, Op0.getOperand(0), Op1);
 1036         return TLO.CombineTo(Op, Xor);
 1040     if (SimplifyDemandedBits(Op1, DemandedBits, DemandedElts, Known, TLO,
 1045                              Known2, TLO, Depth + 1))
 1052           Op0, DemandedBits, DemandedElts, TLO.DAG, Depth + 1);
 1054           Op1, DemandedBits, DemandedElts, TLO.DAG, Depth + 1);
 1058         SDValue NewOp = TLO.DAG.getNode(Op.getOpcode(), dl, VT, Op0, Op1);
 1059         return TLO.CombineTo(Op, NewOp);
 1066       return TLO.CombineTo(Op, Op0);
 1068       return TLO.CombineTo(Op, Op1);
 1071       return TLO.CombineTo(Op, TLO.DAG.getConstant(0, dl, VT));
 1071       return TLO.CombineTo(Op, TLO.DAG.getConstant(0, dl, VT));
 1073     if (ShrinkDemandedConstant(Op, ~Known2.Zero & DemandedBits, TLO))
 1076     if (ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO))
 1089     if (SimplifyDemandedBits(Op1, DemandedBits, DemandedElts, Known, TLO,
 1094                              Known2, TLO, Depth + 1))
 1101           Op0, DemandedBits, DemandedElts, TLO.DAG, Depth + 1);
 1103           Op1, DemandedBits, DemandedElts, TLO.DAG, Depth + 1);
 1107         SDValue NewOp = TLO.DAG.getNode(Op.getOpcode(), dl, VT, Op0, Op1);
 1108         return TLO.CombineTo(Op, NewOp);
 1115       return TLO.CombineTo(Op, Op0);
 1117       return TLO.CombineTo(Op, Op1);
 1119     if (ShrinkDemandedConstant(Op, DemandedBits, TLO))
 1122     if (ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO))
 1135     if (SimplifyDemandedBits(Op1, DemandedBits, DemandedElts, Known, TLO,
 1139     if (SimplifyDemandedBits(Op0, DemandedBits, DemandedElts, Known2, TLO,
 1147           Op0, DemandedBits, DemandedElts, TLO.DAG, Depth + 1);
 1149           Op1, DemandedBits, DemandedElts, TLO.DAG, Depth + 1);
 1153         SDValue NewOp = TLO.DAG.getNode(Op.getOpcode(), dl, VT, Op0, Op1);
 1154         return TLO.CombineTo(Op, NewOp);
 1161       return TLO.CombineTo(Op, Op0);
 1163       return TLO.CombineTo(Op, Op1);
 1165     if (ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO))
 1172       return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::OR, dl, VT, Op0, Op1));
 1172       return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::OR, dl, VT, Op0, Op1));
 1187             TLO.DAG.getConstant(~C->getAPIntValue() & DemandedBits, dl, VT);
 1188         return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::AND, dl, VT, Op0, ANDC));
 1188         return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::AND, dl, VT, Op0, ANDC));
 1197           SDValue New = TLO.DAG.getNOT(dl, Op0, VT);
 1198           return TLO.CombineTo(Op, New);
 1201         if (ShrinkDemandedConstant(Op, DemandedBits, TLO))
 1210     if (SimplifyDemandedBits(Op.getOperand(2), DemandedBits, Known, TLO,
 1213     if (SimplifyDemandedBits(Op.getOperand(1), DemandedBits, Known2, TLO,
 1220     if (ShrinkDemandedConstant(Op, DemandedBits, TLO))
 1228     if (SimplifyDemandedBits(Op.getOperand(3), DemandedBits, Known, TLO,
 1231     if (SimplifyDemandedBits(Op.getOperand(2), DemandedBits, Known2, TLO,
 1238     if (ShrinkDemandedConstant(Op, DemandedBits, TLO))
 1262         return TLO.CombineTo(Op, Op0);
 1284         return TLO.CombineTo(Op, Op0);
 1303               SDValue NewSA = TLO.DAG.getConstant(Diff, dl, Op1.getValueType());
 1304               return TLO.CombineTo(
 1305                   Op, TLO.DAG.getNode(Opc, dl, VT, Op0.getOperand(0), NewSA));
 1312                                Known, TLO, Depth + 1))
 1318           ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO))
 1333               TLO.DAG.getNode(ISD::SHL, dl, InnerVT, InnerOp,
 1334                               TLO.DAG.getConstant(ShAmt, dl, ShTy));
 1335           return TLO.CombineTo(
 1336               Op, TLO.DAG.getNode(ISD::ANY_EXTEND, dl, VT, NarrowShl));
 1352               SDValue NewSA = TLO.DAG.getConstant(ShAmt - InnerShAmt, dl,
 1354               SDValue NewExt = TLO.DAG.getNode(ISD::ANY_EXTEND, dl, VT,
 1356               return TLO.CombineTo(
 1357                   Op, TLO.DAG.getNode(ISD::SHL, dl, VT, NewExt, NewSA));
 1381         return TLO.CombineTo(Op, Op0);
 1409               SDValue NewSA = TLO.DAG.getConstant(Diff, dl, ShiftVT);
 1410               return TLO.CombineTo(
 1411                   Op, TLO.DAG.getNode(Opc, dl, VT, Op0.getOperand(0), NewSA));
 1418       if (SimplifyDemandedBits(Op0, InDemandedMask, DemandedElts, Known, TLO,
 1438       return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::SRL, dl, VT, Op0, Op1));
 1438       return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::SRL, dl, VT, Op0, Op1));
 1447         return TLO.CombineTo(Op, Op0);
 1461       if (SimplifyDemandedBits(Op0, InDemandedMask, DemandedElts, Known, TLO,
 1474         return TLO.CombineTo(
 1475             Op, TLO.DAG.getNode(ISD::SRL, dl, VT, Op0, Op1, Flags));
 1482             TLO.DAG.getConstant(BitWidth - 1 - Log2, dl, Op1.getValueType());
 1483         return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::SRL, dl, VT, Op0, NewSA));
 1483         return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::SRL, dl, VT, Op0, NewSA));
 1506                                  Known, TLO, Depth + 1))
 1515       if (SimplifyDemandedBits(Op0, Demanded0, DemandedElts, Known2, TLO,
 1518       if (SimplifyDemandedBits(Op1, Demanded1, DemandedElts, Known, TLO,
 1534     if (SimplifyDemandedBits(Src, DemandedSrcBits, DemandedElts, Known2, TLO,
 1548       unsigned NumSignBits = TLO.DAG.ComputeNumSignBits(Op0);
 1556         if (TLO.LegalTypes() && !ShiftAmtTy.isVector())
 1560             TLO.DAG.getConstant(BitWidth - ExVTBits, dl, ShiftAmtTy);
 1561         return TLO.CombineTo(Op,
 1562                              TLO.DAG.getNode(ISD::SHL, dl, VT, Op0, ShiftAmt));
 1568       return TLO.CombineTo(Op, Op0);
 1576     if (SimplifyDemandedBits(Op0, InputDemandedBits, Known, TLO, Depth + 1))
 1585       return TLO.CombineTo(
 1586           Op, TLO.DAG.getZeroExtendInReg(Op0, dl, ExVT.getScalarType()));
 1607     if (SimplifyDemandedBits(Op.getOperand(0), MaskLo, KnownLo, TLO, Depth + 1))
 1610     if (SimplifyDemandedBits(Op.getOperand(1), MaskHi, KnownHi, TLO, Depth + 1))
 1634           TLO.DAG.getDataLayout().isLittleEndian())
 1635         return TLO.CombineTo(Op, TLO.DAG.getBitcast(VT, Src));
 1635         return TLO.CombineTo(Op, TLO.DAG.getBitcast(VT, Src));
 1639       if (!TLO.LegalOperations() || isOperationLegal(Opc, VT))
 1640         return TLO.CombineTo(Op, TLO.DAG.getNode(Opc, dl, VT, Src));
 1640         return TLO.CombineTo(Op, TLO.DAG.getNode(Opc, dl, VT, Src));
 1645     if (SimplifyDemandedBits(Src, InDemandedBits, InDemandedElts, Known, TLO,
 1667           TLO.DAG.getDataLayout().isLittleEndian())
 1668         return TLO.CombineTo(Op, TLO.DAG.getBitcast(VT, Src));
 1668         return TLO.CombineTo(Op, TLO.DAG.getBitcast(VT, Src));
 1672       if (!TLO.LegalOperations() || isOperationLegal(Opc, VT))
 1673         return TLO.CombineTo(Op, TLO.DAG.getNode(Opc, dl, VT, Src));
 1673         return TLO.CombineTo(Op, TLO.DAG.getNode(Opc, dl, VT, Src));
 1683     if (SimplifyDemandedBits(Src, InDemandedBits, InDemandedElts, Known, TLO,
 1696       if (!TLO.LegalOperations() || isOperationLegal(Opc, VT))
 1697         return TLO.CombineTo(Op, TLO.DAG.getNode(Opc, dl, VT, Src));
 1697         return TLO.CombineTo(Op, TLO.DAG.getNode(Opc, dl, VT, Src));
 1713         TLO.DAG.getDataLayout().isLittleEndian())
 1714       return TLO.CombineTo(Op, TLO.DAG.getBitcast(VT, Src));
 1714       return TLO.CombineTo(Op, TLO.DAG.getBitcast(VT, Src));
 1718     if (SimplifyDemandedBits(Src, InDemandedBits, InDemandedElts, Known, TLO,
 1733     if (SimplifyDemandedBits(Src, TruncMask, Known, TLO, Depth + 1))
 1739             Src, TruncMask, DemandedElts, TLO.DAG, Depth + 1))
 1740       return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::TRUNCATE, dl, VT, NewSrc));
 1740       return TLO.CombineTo(Op, TLO.DAG.getNode(ISD::TRUNCATE, dl, VT, NewSrc));
 1751         if (TLO.LegalTypes() && !isTypeDesirableForOp(ISD::SRL, VT))
 1763         if (TLO.LegalTypes())
 1764           Shift = TLO.DAG.getConstant(ShVal, dl, getShiftAmountTy(VT, DL));
 1775               TLO.DAG.getNode(ISD::TRUNCATE, dl, VT, Src.getOperand(0));
 1776           return TLO.CombineTo(
 1777               Op, TLO.DAG.getNode(ISD::SRL, dl, VT, NewTrunc, Shift));
 1792                              TLO, Depth + 1))
 1817     if (SimplifyDemandedBits(Src, DemandedSrcBits, DemandedSrcElts, Known2, TLO,
 1833     if (!TLO.LegalOperations() && !VT.isVector() && !SrcVT.isVector() &&
 1844         SDValue Sign = TLO.DAG.getNode(ISD::FGETSIGN, dl, Ty, Src);
 1847           Sign = TLO.DAG.getNode(ISD::ZERO_EXTEND, dl, VT, Sign);
 1849         SDValue ShAmt = TLO.DAG.getConstant(ShVal, dl, VT);
 1850         return TLO.CombineTo(Op,
 1851                              TLO.DAG.getNode(ISD::SHL, dl, VT, Sign, ShAmt));
 1859         TLO.DAG.getDataLayout().isLittleEndian()) {
 1877                                      KnownSrcZero, TLO, Depth + 1))
 1882                                KnownSrcBits, TLO, Depth + 1))
 1885                TLO.DAG.getDataLayout().isLittleEndian()) {
 1900                                        KnownSrcZero, TLO, Depth + 1))
 1906                                KnownSrcBits, TLO, Depth + 1))
 1913       Known = TLO.DAG.computeKnownBits(Op, DemandedElts, Depth);
 1927     if (SimplifyDemandedBits(Op0, LoMask, DemandedElts, Known2, TLO,
 1929         SimplifyDemandedBits(Op1, LoMask, DemandedElts, Known2, TLO,
 1932         ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO)) {
 1939             TLO.DAG.getNode(Op.getOpcode(), dl, VT, Op0, Op1, Flags);
 1940         return TLO.CombineTo(Op, NewOp);
 1948           Op0, LoMask, DemandedElts, TLO.DAG, Depth + 1);
 1950           Op1, LoMask, DemandedElts, TLO.DAG, Depth + 1);
 1957             TLO.DAG.getNode(Op.getOpcode(), dl, VT, Op0, Op1, Flags);
 1958         return TLO.CombineTo(Op, NewOp);
 1971       SDValue Neg1 = TLO.DAG.getAllOnesConstant(dl, VT);
 1976       SDValue NewOp = TLO.DAG.getNode(Op.getOpcode(), dl, VT, Op0, Neg1, Flags);
 1977       return TLO.CombineTo(Op, NewOp);
 1985                                             Known, TLO, Depth))
 1991     Known = TLO.DAG.computeKnownBits(Op, DemandedElts, Depth);
 2010       return TLO.CombineTo(Op, TLO.DAG.getConstant(Known.One, dl, VT));
 2010       return TLO.CombineTo(Op, TLO.DAG.getConstant(Known.One, dl, VT));