Lines Matching refs:DemandedBits
513 const APInt &DemandedBits, in ShrinkDemandedConstant() argument
521 if (DemandedBits.isZero() || DemandedElts.isZero()) in ShrinkDemandedConstant()
525 if (targetShrinkDemandedConstant(Op, DemandedBits, DemandedElts, TLO)) in ShrinkDemandedConstant()
541 if (Opcode == ISD::XOR && DemandedBits.isSubsetOf(C)) in ShrinkDemandedConstant()
544 if (!C.isSubsetOf(DemandedBits)) { in ShrinkDemandedConstant()
546 SDValue NewC = TLO.DAG.getConstant(DemandedBits & C, DL, VT); in ShrinkDemandedConstant()
559 const APInt &DemandedBits, in ShrinkDemandedConstant() argument
565 return ShrinkDemandedConstant(Op, DemandedBits, DemandedElts, TLO); in ShrinkDemandedConstant()
573 const APInt &DemandedBits, in ShrinkDemandedOp() argument
596 unsigned DemandedSize = DemandedBits.getActiveBits(); in ShrinkDemandedOp()
614 bool TargetLowering::SimplifyDemandedBits(SDValue Op, const APInt &DemandedBits, in SimplifyDemandedBits() argument
621 bool Simplified = SimplifyDemandedBits(Op, DemandedBits, Known, TLO); in SimplifyDemandedBits()
629 bool TargetLowering::SimplifyDemandedBits(SDValue Op, const APInt &DemandedBits, in SimplifyDemandedBits() argument
638 SimplifyDemandedBits(Op, DemandedBits, DemandedElts, Known, TLO); in SimplifyDemandedBits()
646 bool TargetLowering::SimplifyDemandedBits(SDValue Op, const APInt &DemandedBits, in SimplifyDemandedBits() argument
659 return SimplifyDemandedBits(Op, DemandedBits, DemandedElts, Known, TLO, Depth, in SimplifyDemandedBits()
665 SDValue Op, const APInt &DemandedBits, const APInt &DemandedElts, in SimplifyMultipleUseDemandedBits() argument
678 if (DemandedBits == 0 || DemandedElts == 0) in SimplifyMultipleUseDemandedBits()
683 unsigned BitWidth = DemandedBits.getBitWidth(); in SimplifyMultipleUseDemandedBits()
700 Src, DemandedBits, DemandedElts, DAG, Depth + 1)) in SimplifyMultipleUseDemandedBits()
711 APInt Sub = DemandedBits.extractBits(NumSrcEltBits, BitOffset); in SimplifyMultipleUseDemandedBits()
734 DemandedSrcBits.insertBits(DemandedBits, Offset); in SimplifyMultipleUseDemandedBits()
752 if (DemandedBits.isSubsetOf(LHSKnown.Zero | RHSKnown.One)) in SimplifyMultipleUseDemandedBits()
754 if (DemandedBits.isSubsetOf(RHSKnown.Zero | LHSKnown.One)) in SimplifyMultipleUseDemandedBits()
765 if (DemandedBits.isSubsetOf(LHSKnown.One | RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
767 if (DemandedBits.isSubsetOf(RHSKnown.One | LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
777 if (DemandedBits.isSubsetOf(RHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
779 if (DemandedBits.isSubsetOf(LHSKnown.Zero)) in SimplifyMultipleUseDemandedBits()
792 unsigned UpperDemandedBits = BitWidth - DemandedBits.countr_zero(); in SimplifyMultipleUseDemandedBits()
805 if (DemandedBits.isSignMask() && in SimplifyMultipleUseDemandedBits()
824 if (DemandedBits.getActiveBits() <= ExBits && in SimplifyMultipleUseDemandedBits()
846 DemandedBits.getActiveBits() <= SrcVT.getScalarSizeInBits()) { in SimplifyMultipleUseDemandedBits()
910 Op, DemandedBits, DemandedElts, DAG, Depth)) in SimplifyMultipleUseDemandedBits()
918 SDValue Op, const APInt &DemandedBits, SelectionDAG &DAG, in SimplifyMultipleUseDemandedBits() argument
927 return SimplifyMultipleUseDemandedBits(Op, DemandedBits, DemandedElts, DAG, in SimplifyMultipleUseDemandedBits()
934 APInt DemandedBits = APInt::getAllOnes(Op.getScalarValueSizeInBits()); in SimplifyMultipleUseDemandedVectorElts() local
935 return SimplifyMultipleUseDemandedBits(Op, DemandedBits, DemandedElts, DAG, in SimplifyMultipleUseDemandedVectorElts()
943 const APInt &DemandedBits, in combineShiftToAVG() argument
1030 if (NumSigned >= 1 && DemandedBits.isSignBitClear()) { in combineShiftToAVG()
1096 APInt DemandedBits = OriginalDemandedBits; in SimplifyDemandedBits() local
1130 DemandedBits = APInt::getAllOnes(BitWidth); in SimplifyDemandedBits()
1152 APInt SrcDemandedBits = DemandedBits.zext(SrcBitWidth); in SimplifyDemandedBits()
1169 APInt DemandedSclBits = DemandedBits.zextOrTrunc(Scl.getValueSizeInBits()); in SimplifyDemandedBits()
1216 APInt DemandedSclBits = DemandedBits.zextOrTrunc(NumSclBits); in SimplifyDemandedBits()
1223 if (SimplifyDemandedBits(Vec, DemandedBits, DemandedVecElts, KnownVec, TLO, in SimplifyDemandedBits()
1246 if (SimplifyDemandedBits(Sub, DemandedBits, DemandedSubElts, KnownSub, TLO, in SimplifyDemandedBits()
1249 if (SimplifyDemandedBits(Src, DemandedBits, DemandedSrcElts, KnownSrc, TLO, in SimplifyDemandedBits()
1261 if (!DemandedBits.isAllOnes() || !DemandedSubElts.isAllOnes() || in SimplifyDemandedBits()
1264 Sub, DemandedBits, DemandedSubElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1266 Src, DemandedBits, DemandedSrcElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1288 if (SimplifyDemandedBits(Src, DemandedBits, DemandedSrcElts, Known, TLO, in SimplifyDemandedBits()
1293 if (!DemandedBits.isAllOnes() || !DemandedSrcElts.isAllOnes()) { in SimplifyDemandedBits()
1295 Src, DemandedBits, DemandedSrcElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1315 if (SimplifyDemandedBits(Op.getOperand(i), DemandedBits, DemandedSubElts, in SimplifyDemandedBits()
1341 if (SimplifyDemandedBits(Op0, DemandedBits, DemandedLHS, Known2, TLO, in SimplifyDemandedBits()
1347 if (SimplifyDemandedBits(Op1, DemandedBits, DemandedRHS, Known2, TLO, in SimplifyDemandedBits()
1355 Op0, DemandedBits, DemandedLHS, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1357 Op1, DemandedBits, DemandedRHS, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1379 if ((LHSKnown.Zero & DemandedBits) == in SimplifyDemandedBits()
1380 (~RHSC->getAPIntValue() & DemandedBits)) in SimplifyDemandedBits()
1385 if (ShrinkDemandedConstant(Op, ~LHSKnown.Zero & DemandedBits, in SimplifyDemandedBits()
1414 if (DemandedBits.isSubsetOf(KnownSubMask.One)) { in SimplifyDemandedBits()
1424 if (SimplifyDemandedBits(Op1, DemandedBits, DemandedElts, Known, TLO, in SimplifyDemandedBits()
1428 if (SimplifyDemandedBits(Op0, ~Known.Zero & DemandedBits, DemandedElts, in SimplifyDemandedBits()
1435 if (DemandedBits.isSubsetOf(Known2.Zero | Known.One)) in SimplifyDemandedBits()
1437 if (DemandedBits.isSubsetOf(Known.Zero | Known2.One)) in SimplifyDemandedBits()
1440 if (DemandedBits.isSubsetOf(Known.Zero | Known2.Zero)) in SimplifyDemandedBits()
1443 if (ShrinkDemandedConstant(Op, ~Known2.Zero & DemandedBits, DemandedElts, in SimplifyDemandedBits()
1447 if (ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO)) in SimplifyDemandedBits()
1451 if (!DemandedBits.isAllOnes() || !DemandedElts.isAllOnes()) { in SimplifyDemandedBits()
1453 Op0, DemandedBits, DemandedElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1455 Op1, DemandedBits, DemandedElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1471 if (SimplifyDemandedBits(Op1, DemandedBits, DemandedElts, Known, TLO, in SimplifyDemandedBits()
1480 if (SimplifyDemandedBits(Op0, ~Known.One & DemandedBits, DemandedElts, in SimplifyDemandedBits()
1492 if (DemandedBits.isSubsetOf(Known2.One | Known.Zero)) in SimplifyDemandedBits()
1494 if (DemandedBits.isSubsetOf(Known.One | Known2.Zero)) in SimplifyDemandedBits()
1497 if (ShrinkDemandedConstant(Op, DemandedBits, DemandedElts, TLO)) in SimplifyDemandedBits()
1500 if (ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO)) in SimplifyDemandedBits()
1504 if (!DemandedBits.isAllOnes() || !DemandedElts.isAllOnes()) { in SimplifyDemandedBits()
1506 Op0, DemandedBits, DemandedElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1508 Op1, DemandedBits, DemandedElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1551 if (SimplifyDemandedBits(Op1, DemandedBits, DemandedElts, Known, TLO, in SimplifyDemandedBits()
1555 if (SimplifyDemandedBits(Op0, DemandedBits, DemandedElts, Known2, TLO, in SimplifyDemandedBits()
1562 if (DemandedBits.isSubsetOf(Known.Zero)) in SimplifyDemandedBits()
1564 if (DemandedBits.isSubsetOf(Known2.Zero)) in SimplifyDemandedBits()
1567 if (ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO)) in SimplifyDemandedBits()
1573 if (DemandedBits.isSubsetOf(Known.Zero | Known2.Zero)) in SimplifyDemandedBits()
1585 TLO.DAG.getConstant(~C->getAPIntValue() & DemandedBits, dl, VT); in SimplifyDemandedBits()
1592 if (!C->isAllOnes() && DemandedBits.isSubsetOf(C->getAPIntValue())) { in SimplifyDemandedBits()
1610 if ((DemandedBits & C->getAPIntValue()) == (DemandedBits & Ones) && in SimplifyDemandedBits()
1627 if (ShrinkDemandedConstant(Op, DemandedBits, DemandedElts, TLO)) in SimplifyDemandedBits()
1631 if (!DemandedBits.isAllOnes() || !DemandedElts.isAllOnes()) { in SimplifyDemandedBits()
1633 Op0, DemandedBits, DemandedElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1635 Op1, DemandedBits, DemandedElts, TLO.DAG, Depth + 1); in SimplifyDemandedBits()
1648 if (SimplifyDemandedBits(Op.getOperand(2), DemandedBits, DemandedElts, in SimplifyDemandedBits()
1651 if (SimplifyDemandedBits(Op.getOperand(1), DemandedBits, DemandedElts, in SimplifyDemandedBits()
1658 if (ShrinkDemandedConstant(Op, DemandedBits, DemandedElts, TLO)) in SimplifyDemandedBits()
1665 if (SimplifyDemandedBits(Op.getOperand(2), DemandedBits, DemandedElts, in SimplifyDemandedBits()
1668 if (SimplifyDemandedBits(Op.getOperand(1), DemandedBits, DemandedElts, in SimplifyDemandedBits()
1678 if (SimplifyDemandedBits(Op.getOperand(3), DemandedBits, DemandedElts, in SimplifyDemandedBits()
1681 if (SimplifyDemandedBits(Op.getOperand(2), DemandedBits, DemandedElts, in SimplifyDemandedBits()
1688 if (ShrinkDemandedConstant(Op, DemandedBits, DemandedElts, TLO)) in SimplifyDemandedBits()
1701 if (DemandedBits.isSignMask() && in SimplifyDemandedBits()
1738 if (!DemandedBits.intersects(APInt::getLowBitsSet(BitWidth, ShAmt))) { in SimplifyDemandedBits()
1762 if (ShAmt < InnerBits && DemandedBits.getActiveBits() <= InnerBits && in SimplifyDemandedBits()
1783 DemandedBits.getActiveBits() <= in SimplifyDemandedBits()
1785 DemandedBits.countr_zero() >= ShAmt) { in SimplifyDemandedBits()
1797 APInt InDemandedMask = DemandedBits.lshr(ShAmt); in SimplifyDemandedBits()
1828 if ((ShAmt < DemandedBits.getActiveBits()) && in SimplifyDemandedBits()
1829 ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO)) in SimplifyDemandedBits()
1837 DemandedBits.countLeadingOnes() >= HalfWidth) { in SimplifyDemandedBits()
1866 if (unsigned CTLZ = DemandedBits.countl_zero()) { in SimplifyDemandedBits()
1891 unsigned UpperDemandedBits = BitWidth - DemandedBits.countr_zero(); in SimplifyDemandedBits()
1903 if (SDValue AVG = combineShiftToAVG(Op, TLO.DAG, *this, DemandedBits, in SimplifyDemandedBits()
1918 if (!DemandedBits.intersects(APInt::getHighBitsSet(BitWidth, ShAmt))) { in SimplifyDemandedBits()
1935 APInt InDemandedMask = (DemandedBits << ShAmt); in SimplifyDemandedBits()
1996 unsigned NumHiDemandedBits = BitWidth - DemandedBits.countr_zero(); in SimplifyDemandedBits()
2005 if (DemandedBits.isOne()) in SimplifyDemandedBits()
2009 if (SDValue AVG = combineShiftToAVG(Op, TLO.DAG, *this, DemandedBits, in SimplifyDemandedBits()
2048 APInt InDemandedMask = (DemandedBits << ShAmt); in SimplifyDemandedBits()
2057 if (DemandedBits.countl_zero() < ShAmt) in SimplifyDemandedBits()
2070 DemandedBits.countl_zero() >= ShAmt) { in SimplifyDemandedBits()
2077 int Log2 = DemandedBits.exactLogBase2(); in SimplifyDemandedBits()
2113 if (SimplifyDemandedBits(IsFSHL ? Op0 : Op1, DemandedBits, DemandedElts, in SimplifyDemandedBits()
2121 APInt Demanded0 = DemandedBits.lshr(IsFSHL ? Amt : (BitWidth - Amt)); in SimplifyDemandedBits()
2122 APInt Demanded1 = DemandedBits << (IsFSHL ? (BitWidth - Amt) : Amt); in SimplifyDemandedBits()
2178 APInt Demanded0 = DemandedBits.rotr(IsROTL ? Amt : RevAmt); in SimplifyDemandedBits()
2189 DemandedBits.countr_zero() >= (IsROTL ? Amt : RevAmt)) { in SimplifyDemandedBits()
2194 DemandedBits.countl_zero() >= (IsROTL ? RevAmt : Amt)) { in SimplifyDemandedBits()
2223 unsigned NumDemandedUpperBits = BitWidth - DemandedBits.countr_zero(); in SimplifyDemandedBits()
2264 APInt DemandedSrcBits = DemandedBits.reverseBits(); in SimplifyDemandedBits()
2277 unsigned NLZ = DemandedBits.countl_zero(); in SimplifyDemandedBits()
2278 unsigned NTZ = DemandedBits.countr_zero(); in SimplifyDemandedBits()
2299 APInt DemandedSrcBits = DemandedBits.byteSwap(); in SimplifyDemandedBits()
2311 if (DemandedBits.isOne() && !TLO.LegalOps && !VT.isVector()) in SimplifyDemandedBits()
2324 if (DemandedBits.isSignMask()) { in SimplifyDemandedBits()
2341 if (DemandedBits.getActiveBits() <= ExVTBits) in SimplifyDemandedBits()
2344 APInt InputDemandedBits = DemandedBits.getLoBits(ExVTBits); in SimplifyDemandedBits()
2376 APInt MaskLo = DemandedBits.getLoBits(HalfBitWidth).trunc(HalfBitWidth); in SimplifyDemandedBits()
2377 APInt MaskHi = DemandedBits.getHiBits(HalfBitWidth).trunc(HalfBitWidth); in SimplifyDemandedBits()
2402 if (DemandedBits.getActiveBits() <= InBits) { in SimplifyDemandedBits()
2416 APInt InDemandedBits = DemandedBits.trunc(InBits); in SimplifyDemandedBits()
2448 APInt InDemandedBits = DemandedBits.trunc(InBits); in SimplifyDemandedBits()
2455 if (DemandedBits.getActiveBits() <= InBits) { in SimplifyDemandedBits()
2517 APInt InDemandedBits = DemandedBits.trunc(InBits); in SimplifyDemandedBits()
2538 APInt TruncMask = DemandedBits.zext(OperandBitWidth); in SimplifyDemandedBits()
2574 if (!(HighBits & DemandedBits)) { in SimplifyDemandedBits()
2596 if (SimplifyDemandedBits(Op.getOperand(0), ~InMask | DemandedBits, Known, in SimplifyDemandedBits()
2623 APInt DemandedSrcBits = DemandedBits; in SimplifyDemandedBits()
2656 DemandedBits == APInt::getSignMask(Op.getValueSizeInBits()) && in SimplifyDemandedBits()
2687 APInt Sub = DemandedBits.extractBits(NumSrcEltBits, BitOffset); in SimplifyDemandedBits()
2714 DemandedSrcBits.insertBits(DemandedBits, Offset); in SimplifyDemandedBits()
2749 if (DemandedBits.isPowerOf2()) { in SimplifyDemandedBits()
2753 unsigned CTZ = DemandedBits.countr_zero(); in SimplifyDemandedBits()
2765 if (Op.getOperand(0) == Op.getOperand(1) && DemandedBits.ult(4)) { in SimplifyDemandedBits()
2777 unsigned DemandedBitsLZ = DemandedBits.countl_zero(); in SimplifyDemandedBits()
2785 ShrinkDemandedOp(Op, BitWidth, DemandedBits, TLO)) { in SimplifyDemandedBits()
2797 if (Op.getOpcode() == ISD::SUB && DemandedBits.isOne() && in SimplifyDemandedBits()
2896 if (SimplifyDemandedBitsForTargetNode(Op, DemandedBits, DemandedElts, in SimplifyDemandedBits()
2910 DemandedBits.isSubsetOf(Known.Zero | Known.One)) { in SimplifyDemandedBits()
3649 APInt DemandedBits = APInt::getAllOnes(EltSizeInBits); in SimplifyDemandedVectorElts() local
3650 if (SimplifyDemandedBits(Op, DemandedBits, OriginalDemandedElts, Known, in SimplifyDemandedVectorElts()
3736 SDValue Op, const APInt &DemandedBits, const APInt &DemandedElts, in SimplifyDemandedBitsForTargetNode() argument
3749 SDValue Op, const APInt &DemandedBits, const APInt &DemandedElts, in SimplifyMultipleUseDemandedBitsForTargetNode() argument