Home | History | Annotate | Download | only in Analysis

Lines Matching full:apint

327 const SCEV *ScalarEvolution::getConstant(const APInt &Val) {
545 const APInt &LA = LC->getValue()->getValue();
546 const APInt &RA = RC->getValue()->getValue();
767 APInt NumeratorVal = Numerator->getValue()->getValue();
768 APInt DenominatorVal = D->getValue()->getValue();
777 APInt QuotientVal(NumeratorVal.getBitWidth(), 0);
778 APInt RemainderVal(NumeratorVal.getBitWidth(), 0);
779 APInt::sdivrem(NumeratorVal, DenominatorVal, QuotientVal, RemainderVal);
1000 APInt OddFactorial(W, 1);
1003 APInt Mult(W, i);
1014 APInt DivFactor = APInt::getOneBitSet(CalculationBits, T);
1019 APInt Mod = APInt::getSignedMinValue(W+1);
1020 APInt MultiplyFactor = OddFactorial.zext(W+1);
1162 return SE->getConstant(APInt::getSignedMinValue(BitWidth) -
1167 return SE->getConstant(APInt::getSignedMaxValue(BitWidth) -
1182 return SE->getConstant(APInt::getMinValue(BitWidth) -
1378 APInt StartAI = StartC->getValue()->getValue();
1527 const SCEV *N = getConstant(APInt::getMinValue(BitWidth) -
1541 const SCEV *N = getConstant(APInt::getMaxValue(BitWidth) -
1629 const APInt &C1 = SC1->getValue()->getValue();
1630 const APInt &C2 = SC2->getValue()->getValue();
1745 const APInt &C1 = SC1->getValue()->getValue();
1746 const APInt &C2 = SC2->getValue()->getValue();
1849 CollectAddOperandsWithScales(DenseMap<const SCEV *, APInt> &M,
1851 APInt &AccumulatedConstant,
1853 const APInt &Scale,
1872 APInt NewScale =
1886 std::pair<DenseMap<const SCEV *, APInt>::iterator, bool> Pair =
1899 std::pair<DenseMap<const SCEV *, APInt>::iterator, bool> Pair =
1917 bool operator()(const APInt &LHS, const APInt &RHS) const {
2105 DenseMap<const SCEV *, APInt> M;
2107 APInt AccumulatedConstant(BitWidth, 0);
2110 APInt(BitWidth, 1), *this)) {
2114 std::map<APInt, SmallVector<const SCEV *, 4>, APIntCompare> MulOpLists;
2122 for (std::map<APInt, SmallVector<const SCEV *, 4>, APIntCompare>::iterator
2638 const APInt &StepInt = Step->getValue()->getValue();
2639 const APInt &DivInt = RHSC->getValue()->getValue();
2660 const APInt &StartInt = StartC->getValue()->getValue();
2661 const APInt &StartRem = StartInt.urem(StepInt);
2726 static const APInt gcd(const SCEVConstant *C1, const SCEVConstant *C2) {
2727 APInt A = C1->getValue()->getValue().abs();
2728 APInt B = C2->getValue()->getValue().abs();
2768 APInt Factor = gcd(LHSCst, RHSCst);
3807 APInt Zeros(BitWidth, 0), Ones(BitWidth, 0);
3872 ConstantRange(APInt::getMinValue(BitWidth),
3873 APInt::getMaxValue(BitWidth).lshr(TZ).shl(TZ) + 1);
3876 APInt::getSignedMinValue(BitWidth),
3877 APInt::getSignedMaxValue(BitWidth).ashr(TZ).shl(TZ) + 1);
3941 ConstantRange(C->getValue()->getValue(), APInt(BitWidth, 0)));
3954 ConstantRange(APInt(BitWidth, 0),
3955 APInt::getSignedMinValue(BitWidth)));
3958 ConstantRange(APInt::getSignedMinValue(BitWidth),
3959 APInt(BitWidth, 1)));
3993 APInt Min = APIntOps::umin(StartURange.getUnsignedMin(),
3995 APInt Max = APIntOps::umax(StartURange.getUnsignedMax(),
4015 APInt Min = APIntOps::smin(StartSRange.getSignedMin(),
4017 APInt Max = APIntOps::smax(StartSRange.getSignedMax(),
4042 APInt Zeros(BitWidth, 0), Ones(BitWidth, 0);
4053 ConstantRange(APInt::getSignedMinValue(BitWidth).ashr(NS - 1),
4054 APInt::getSignedMaxValue(BitWidth).ashr(NS - 1) + 1));
4149 const APInt &A = CI->getValue();
4158 APInt KnownZero(BitWidth, 0), KnownOne(BitWidth, 0);
4162 APInt EffectiveMask =
4163 APInt::getLowBitsSet(BitWidth, BitWidth - LZ - TZ).shl(TZ);
4166 ConstantInt::get(getContext(), APInt::getOneBitSet(BitWidth, TZ)));
4187 const APInt &CIVal = CI->getValue();
4239 APInt Trunc = CI->getValue().trunc(Z0TySize);
4261 APInt::getOneBitSet(BitWidth, SA->getZExtValue()));
4279 APInt::getOneBitSet(BitWidth, SA->getZExtValue()));
5434 const APInt &BEs,
5939 static const SCEV *SolveLinEquationWithOverflow(const APInt &A, const APInt &B,
5964 APInt AD = A.lshr(Mult2).zext(BW + 1); // AD = A / D
5965 APInt Mod(BW + 1, 0);
5967 APInt I = AD.multiplicativeInverse(Mod);
5971 APInt Result = (I * B.lshr(Mult2).zext(BW + 1)).urem(Mod);
5996 const APInt &L = LC->getValue()->getValue();
5997 const APInt &M = MC->getValue()->getValue();
5998 const APInt &N = NC->getValue()->getValue();
5999 APInt Two(BitWidth, 2);
6000 APInt Four(BitWidth, 4);
6004 const APInt& C = L;
6007 APInt B(M);
6011 APInt A(N.sdiv(Two));
6014 APInt SqrtTerm(B);
6025 // integer value or else APInt::sqrt() will assert.
6026 APInt SqrtVal(SqrtTerm.sqrt());
6030 APInt NegB(-B);
6031 APInt TwoA(A << 1);
6146 ? getConstant(APInt::getMinValue(CR.getBitWidth()))
6147 : getConstant(APInt::getMaxValue(CR.getBitWidth()));
6159 const APInt &StepV = StepC->getValue()->getValue();
6298 const APInt &RA = RC->getValue()->getValue();
6941 APInt Min = ICmpInst::isSigned(Pred) ?
6949 APInt SharperMin = Min + 1;
7159 APInt ConstFoundRHS = cast<SCEVConstant>(FoundRHS)->getValue()->getValue();
7168 APInt Addend =
7174 APInt ConstRHS = cast<SCEVConstant>(RHS)->getValue()->getValue();
7194 APInt MaxRHS = getSignedRange(RHS).getSignedMax();
7195 APInt MaxValue = APInt::getSignedMaxValue(BitWidth);
7196 APInt MaxStrideMinusOne = getSignedRange(getMinusSCEV(Stride, One))
7203 APInt MaxRHS = getUnsignedRange(RHS).getUnsignedMax();
7204 APInt MaxValue = APInt::getMaxValue(BitWidth);
7205 APInt MaxStrideMinusOne = getUnsignedRange(getMinusSCEV(Stride, One))
7223 APInt MinRHS = getSignedRange(RHS).getSignedMin();
7224 APInt MinValue = APInt::getSignedMinValue(BitWidth);
7225 APInt MaxStrideMinusOne = getSignedRange(getMinusSCEV(Stride, One))
7232 APInt MinRHS = getUnsignedRange(RHS).getUnsignedMin();
7233 APInt MinValue = APInt::getMinValue(BitWidth);
7234 APInt MaxStrideMinusOne = getUnsignedRange(getMinusSCEV(Stride, One))
7298 APInt D = dyn_cast<const SCEVConstant>(Diff)->getValue()->getValue();
7308 APInt MinStart = IsSigned ? getSignedRange(Start).getSignedMin()
7311 APInt MinStride = IsSigned ? getSignedRange(Stride).getSignedMin()
7315 APInt Limit = IsSigned ? APInt::getSignedMaxValue(BitWidth) - (MinStride - 1)
7316 : APInt::getMaxValue(BitWidth) - (MinStride - 1);
7321 APInt MaxEnd =
7379 APInt D = dyn_cast<const SCEVConstant>(Diff)->getValue()->getValue();
7389 APInt MaxStart = IsSigned ? getSignedRange(Start).getSignedMax()
7392 APInt MinStride = IsSigned ? getSignedRange(Stride).getSignedMin()
7396 APInt Limit = IsSigned ? APInt::getSignedMinValue(BitWidth) + (MinStride - 1)
7397 : APInt::getMinValue(BitWidth) + (MinStride - 1);
7402 APInt MinEnd =
7458 if (!Range.contains(APInt(BitWidth, 0)))
7469 APInt One(BitWidth,1);
7470 APInt A = cast<SCEVConstant>(getOperand(1))->getValue()->getValue();
7471 APInt End = A.sge(One) ? (Range.getUpper() - One) : Range.getLower();
7474 APInt ExitVal = (End + A).udiv(A);