|
reference, declaration → definition
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));