Lines Matching refs:APInt

43     : Lower(Full ? APInt::getMaxValue(BitWidth) : APInt::getMinValue(BitWidth)),  in ConstantRange()
46 ConstantRange::ConstantRange(APInt V) in ConstantRange()
49 ConstantRange::ConstantRange(APInt L, APInt U) in ConstantRange()
73 APInt UMax(CR.getUnsignedMax()); in makeAllowedICmpRegion()
76 return ConstantRange(APInt::getMinValue(W), std::move(UMax)); in makeAllowedICmpRegion()
79 APInt SMax(CR.getSignedMax()); in makeAllowedICmpRegion()
82 return ConstantRange(APInt::getSignedMinValue(W), std::move(SMax)); in makeAllowedICmpRegion()
85 APInt UMax(CR.getUnsignedMax()); in makeAllowedICmpRegion()
88 return ConstantRange(APInt::getMinValue(W), std::move(UMax) + 1); in makeAllowedICmpRegion()
91 APInt SMax(CR.getSignedMax()); in makeAllowedICmpRegion()
94 return ConstantRange(APInt::getSignedMinValue(W), std::move(SMax) + 1); in makeAllowedICmpRegion()
97 APInt UMin(CR.getUnsignedMin()); in makeAllowedICmpRegion()
100 return ConstantRange(std::move(UMin) + 1, APInt::getNullValue(W)); in makeAllowedICmpRegion()
103 APInt SMin(CR.getSignedMin()); in makeAllowedICmpRegion()
106 return ConstantRange(std::move(SMin) + 1, APInt::getSignedMinValue(W)); in makeAllowedICmpRegion()
109 APInt UMin(CR.getUnsignedMin()); in makeAllowedICmpRegion()
112 return ConstantRange(std::move(UMin), APInt::getNullValue(W)); in makeAllowedICmpRegion()
115 APInt SMin(CR.getSignedMin()); in makeAllowedICmpRegion()
118 return ConstantRange(std::move(SMin), APInt::getSignedMinValue(W)); in makeAllowedICmpRegion()
134 const APInt &C) { in makeExactICmpRegion()
146 APInt &RHS) const { in getEquivalentICmp()
151 RHS = APInt(getBitWidth(), 0); in getEquivalentICmp()
216 SubsetIntersect(Result, ConstantRange(APInt::getNullValue(BitWidth), in makeGuaranteedNoWrapRegion()
219 const APInt &SignedMin = Other.getSignedMin(); in makeGuaranteedNoWrapRegion()
220 const APInt &SignedMax = Other.getSignedMax(); in makeGuaranteedNoWrapRegion()
224 ConstantRange(APInt::getSignedMinValue(BitWidth), in makeGuaranteedNoWrapRegion()
225 APInt::getSignedMinValue(BitWidth) - SignedMax)); in makeGuaranteedNoWrapRegion()
229 ConstantRange(APInt::getSignedMinValue(BitWidth) - SignedMin, in makeGuaranteedNoWrapRegion()
230 APInt::getSignedMinValue(BitWidth))); in makeGuaranteedNoWrapRegion()
242 APInt::getMinValue(BitWidth))); in makeGuaranteedNoWrapRegion()
244 const APInt &SignedMin = Other.getSignedMin(); in makeGuaranteedNoWrapRegion()
245 const APInt &SignedMax = Other.getSignedMax(); in makeGuaranteedNoWrapRegion()
249 ConstantRange(APInt::getSignedMinValue(BitWidth) + SignedMax, in makeGuaranteedNoWrapRegion()
250 APInt::getSignedMinValue(BitWidth))); in makeGuaranteedNoWrapRegion()
254 ConstantRange(APInt::getSignedMinValue(BitWidth), in makeGuaranteedNoWrapRegion()
255 APInt::getSignedMinValue(BitWidth) + SignedMin)); in makeGuaranteedNoWrapRegion()
268 BitWidth](APInt V) -> ConstantRange { in makeGuaranteedNoWrapRegion()
274 APInt MinValue, MaxValue; in makeGuaranteedNoWrapRegion()
276 MinValue = APInt::getMinValue(BitWidth); in makeGuaranteedNoWrapRegion()
277 MaxValue = APInt::getMaxValue(BitWidth); in makeGuaranteedNoWrapRegion()
279 MinValue = APInt::getSignedMinValue(BitWidth); in makeGuaranteedNoWrapRegion()
280 MaxValue = APInt::getSignedMaxValue(BitWidth); in makeGuaranteedNoWrapRegion()
286 APInt Lower, Upper; in makeGuaranteedNoWrapRegion()
288 Lower = APIntOps::RoundingSDiv(MaxValue, V, APInt::Rounding::UP); in makeGuaranteedNoWrapRegion()
289 Upper = APIntOps::RoundingSDiv(MinValue, V, APInt::Rounding::DOWN); in makeGuaranteedNoWrapRegion()
291 Lower = APIntOps::RoundingUDiv(MinValue, V, APInt::Rounding::UP); in makeGuaranteedNoWrapRegion()
292 Upper = APIntOps::RoundingUDiv(MaxValue, V, APInt::Rounding::DOWN); in makeGuaranteedNoWrapRegion()
294 Lower = APIntOps::RoundingSDiv(MinValue, V, APInt::Rounding::UP); in makeGuaranteedNoWrapRegion()
295 Upper = APIntOps::RoundingSDiv(MaxValue, V, APInt::Rounding::DOWN); in makeGuaranteedNoWrapRegion()
332 return contains(APInt::getSignedMaxValue(getBitWidth())) && in isSignWrappedSet()
333 contains(APInt::getSignedMinValue(getBitWidth())); in isSignWrappedSet()
336 APInt ConstantRange::getSetSize() const { in getSetSize()
338 return APInt::getOneBitSet(getBitWidth()+1, getBitWidth()); in getSetSize()
360 return APInt::getMaxValue(getBitWidth()).ugt(MaxSize - 1); in isSizeLargerThan()
365 APInt ConstantRange::getUnsignedMax() const { in getUnsignedMax()
367 return APInt::getMaxValue(getBitWidth()); in getUnsignedMax()
371 APInt ConstantRange::getUnsignedMin() const { in getUnsignedMin()
373 return APInt::getMinValue(getBitWidth()); in getUnsignedMin()
377 APInt ConstantRange::getSignedMax() const { in getSignedMax()
379 return APInt::getSignedMaxValue(getBitWidth()); in getSignedMax()
383 APInt ConstantRange::getSignedMin() const { in getSignedMin()
385 return APInt::getSignedMinValue(getBitWidth()); in getSignedMin()
389 bool ConstantRange::contains(const APInt &V) const { in contains()
416 ConstantRange ConstantRange::subtract(const APInt &Val) const { in subtract()
514 APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper; in unionWith()
520 APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower; in unionWith()
521 APInt U = (CR.Upper - 1).ugt(Upper - 1) ? CR.Upper : Upper; in unionWith()
544 APInt d1 = CR.Lower - Upper, d2 = Lower - CR.Upper; in unionWith()
567 APInt L = CR.Lower.ult(Lower) ? CR.Lower : Lower; in unionWith()
568 APInt U = CR.Upper.ugt(Upper) ? CR.Upper : Upper; in unionWith()
595 APInt Min = APInt::getMinValue(BW).zextOrSelf(ResultBitWidth); in castOp()
596 APInt Max = APInt::getMaxValue(BW).zextOrSelf(ResultBitWidth); in castOp()
602 APInt SMin = APInt::getSignedMinValue(BW).sextOrSelf(ResultBitWidth); in castOp()
603 APInt SMax = APInt::getSignedMaxValue(BW).sextOrSelf(ResultBitWidth); in castOp()
623 APInt LowerExt(DstTySize, 0); in zeroExtend()
627 APInt::getOneBitSet(DstTySize, SrcTySize)); in zeroExtend()
644 return ConstantRange(APInt::getHighBitsSet(DstTySize,DstTySize-SrcTySize+1), in signExtend()
645 APInt::getLowBitsSet(DstTySize, SrcTySize-1) + 1); in signExtend()
658 APInt LowerDiv(Lower), UpperDiv(Upper); in truncate()
671 Union = ConstantRange(APInt::getMaxValue(DstTySize),Upper.trunc(DstTySize)); in truncate()
683 APInt Adjust = LowerDiv & APInt::getBitsSetFrom(getBitWidth(), DstTySize); in truncate()
767 APInt NewLower = getLower() + Other.getLower(); in add()
768 APInt NewUpper = getUpper() + Other.getUpper() - 1; in add()
780 ConstantRange ConstantRange::addWithNoSignedWrap(const APInt &Other) const { in addWithNoSignedWrap()
800 APInt NewLower = getLower() - Other.getUpper() + 1; in sub()
801 APInt NewUpper = getUpper() - Other.getLower(); in sub()
830 APInt this_min = getUnsignedMin().zext(getBitWidth() * 2); in multiply()
831 APInt this_max = getUnsignedMax().zext(getBitWidth() * 2); in multiply()
832 APInt Other_min = Other.getUnsignedMin().zext(getBitWidth() * 2); in multiply()
833 APInt Other_max = Other.getUnsignedMax().zext(getBitWidth() * 2); in multiply()
860 auto Compare = [](const APInt &A, const APInt &B) { return A.slt(B); }; in multiply()
873 APInt NewL = APIntOps::smax(getSignedMin(), Other.getSignedMin()); in smax()
874 APInt NewU = APIntOps::smax(getSignedMax(), Other.getSignedMax()) + 1; in smax()
886 APInt NewL = APIntOps::umax(getUnsignedMin(), Other.getUnsignedMin()); in umax()
887 APInt NewU = APIntOps::umax(getUnsignedMax(), Other.getUnsignedMax()) + 1; in umax()
899 APInt NewL = APIntOps::smin(getSignedMin(), Other.getSignedMin()); in smin()
900 APInt NewU = APIntOps::smin(getSignedMax(), Other.getSignedMax()) + 1; in smin()
912 APInt NewL = APIntOps::umin(getUnsignedMin(), Other.getUnsignedMin()); in umin()
913 APInt NewU = APIntOps::umin(getUnsignedMax(), Other.getUnsignedMax()) + 1; in umin()
926 APInt Lower = getUnsignedMin().udiv(RHS.getUnsignedMax()); in udiv()
928 APInt RHS_umin = RHS.getUnsignedMin(); in udiv()
938 APInt Upper = getUnsignedMax().udiv(RHS_umin) + 1; in udiv()
955 APInt umin = APIntOps::umin(Other.getUnsignedMax(), getUnsignedMax()); in binaryAnd()
958 return ConstantRange(APInt::getNullValue(getBitWidth()), std::move(umin) + 1); in binaryAnd()
968 APInt umax = APIntOps::umax(getUnsignedMin(), Other.getUnsignedMin()); in binaryOr()
971 return ConstantRange(std::move(umax), APInt::getNullValue(getBitWidth())); in binaryOr()
979 APInt max = getUnsignedMax(); in shl()
980 APInt Other_umax = Other.getUnsignedMax(); in shl()
988 APInt min = getUnsignedMin(); in shl()
1000 APInt max = getUnsignedMax().lshr(Other.getUnsignedMin()) + 1; in lshr()
1001 APInt min = getUnsignedMin().lshr(Other.getUnsignedMax()); in lshr()
1019 APInt PosMax = getSignedMax().ashr(Other.getUnsignedMin()) + 1; in ashr()
1026 APInt PosMin = getSignedMin().ashr(Other.getUnsignedMax()); in ashr()
1033 APInt NegMax = getSignedMax().ashr(Other.getUnsignedMax()) + 1; in ashr()
1040 APInt NegMin = getSignedMin().ashr(Other.getUnsignedMin()); in ashr()
1042 APInt max, min; in ashr()