Lines Matching refs:SCEVConstant
270 cast<SCEVConstant>(this)->getValue()->printAsOperand(OS, false); in print()
383 return cast<SCEVConstant>(this)->getType(); in getType()
443 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(this)) in isZero()
449 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(this)) in isOne()
455 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(this)) in isAllOnesValue()
465 const SCEVConstant *SC = dyn_cast<SCEVConstant>(Mul->getOperand(0)); in isNonConstantNegative()
485 SCEV *S = new (SCEVAllocator) SCEVConstant(ID.Intern(SCEVAllocator), V); in getConstant()
709 const SCEVConstant *LC = cast<SCEVConstant>(LHS); in CompareSCEVComplexity()
710 const SCEVConstant *RC = cast<SCEVConstant>(RHS); in CompareSCEVComplexity()
1150 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getTruncateExpr()
1455 const SCEVConstant *StartC = dyn_cast<SCEVConstant>(Start); in proveNoWrapByVaryingStart()
1494 const SCEVConstant *ConstantTerm, in extractConstantWithoutWrapping()
1576 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getZeroExtendExprImpl()
1744 if (const auto *SC = dyn_cast<SCEVConstant>(Start)) { in getZeroExtendExprImpl()
1800 if (const auto *SC = dyn_cast<SCEVConstant>(SA->getOperand(0))) { in getZeroExtendExprImpl()
1838 if (auto *MulLHS = dyn_cast<SCEVConstant>(SM->getOperand(0))) in getZeroExtendExprImpl()
1912 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getSignExtendExprImpl()
1973 if (const auto *SC = dyn_cast<SCEVConstant>(SA->getOperand(0))) { in getSignExtendExprImpl()
2096 if (const auto *SC = dyn_cast<SCEVConstant>(Start)) { in getSignExtendExprImpl()
2173 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getAnyExtendExpr()
2244 while (const SCEVConstant *C = dyn_cast<SCEVConstant>(Ops[i])) { in CollectAddOperandsWithScales()
2256 if (Mul && isa<SCEVConstant>(Mul->getOperand(0))) { in CollectAddOperandsWithScales()
2258 Scale * cast<SCEVConstant>(Mul->getOperand(0))->getAPInt(); in CollectAddOperandsWithScales()
2339 auto *RHSC = dyn_cast<SCEVConstant>(RHS); in willNotOverflow()
2452 isa<SCEVConstant>(Ops[0])) { in StrengthenNoWrapFlags()
2465 const APInt &C = cast<SCEVConstant>(Ops[0])->getAPInt(); in StrengthenNoWrapFlags()
2532 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getAddExpr()
2535 while (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(Ops[Idx])) { in getAddExpr()
2540 LHSC = cast<SCEVConstant>(Ops[0]); in getAddExpr()
2623 } else if (const SCEVConstant *C = dyn_cast<SCEVConstant>(Ops[i])) { in getAddExpr()
2635 } else if (const auto *C = dyn_cast<SCEVConstant>(M->getOperand(j))) { in getAddExpr()
2653 if (isa<SCEVConstant>(Fold) || isa<SCEVUnknown>(Fold)) in getAddExpr()
2665 auto *C = dyn_cast<SCEVConstant>(A); in getAddExpr()
2666 if (AddExpr && C && isa<SCEVConstant>(AddExpr->getOperand(0))) { in getAddExpr()
2667 auto C1 = cast<SCEVConstant>(AddExpr->getOperand(0))->getAPInt(); in getAddExpr()
2794 if (isa<SCEVConstant>(MulOpSCEV)) in getAddExpr()
3089 FoundConstant |= isa<SCEVConstant>(S); in containsConstantInAddMulChain()
3125 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getMulExpr()
3128 while (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(Ops[Idx])) { in getMulExpr()
3133 LHSC = cast<SCEVConstant>(Ops[0]); in getMulExpr()
3167 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getMulExpr()
3398 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { in getURemExpr()
3436 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(LHS)) in getUDivExpr()
3440 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { in getUDivExpr()
3460 if (const SCEVConstant *Step = in getUDivExpr()
3461 dyn_cast<SCEVConstant>(AR->getStepRecurrence(*this))) { in getUDivExpr()
3478 const SCEVConstant *StartC = dyn_cast<SCEVConstant>(AR->getStart()); in getUDivExpr()
3527 dyn_cast<SCEVConstant>(OtherDiv->getRHS())) { in getUDivExpr()
3558 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(LHS)) in getUDivExpr()
3574 APInt gcd(const SCEVConstant *C1, const SCEVConstant *C2) { in gcd()
3602 if (const SCEVConstant *RHSCst = dyn_cast<SCEVConstant>(RHS)) { in getUDivExactExpr()
3605 if (const auto *LHSCst = dyn_cast<SCEVConstant>(Mul->getOperand(0))) { in getUDivExactExpr()
3617 cast<SCEVConstant>(getConstant(LHSCst->getAPInt().udiv(Factor))); in getUDivExactExpr()
3619 cast<SCEVConstant>(getConstant(RHSCst->getAPInt().udiv(Factor))); in getUDivExactExpr()
3770 ConstantInt *Index = cast<SCEVConstant>(IndexExpr)->getValue(); in getGEPExpr()
3859 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getMinMaxExpr()
3877 while (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(Ops[Idx])) { in getMinMaxExpr()
3884 LHSC = cast<SCEVConstant>(Ops[0]); in getMinMaxExpr()
4047 RetVal visitConstant(const SCEVConstant *Constant) { return Constant; } in visitConstant()
4588 if (const SCEVConstant *VC = dyn_cast<SCEVConstant>(V)) in getNegativeSCEV()
4616 if (const SCEVConstant *VC = dyn_cast<SCEVConstant>(V)) in getNotSCEV()
5000 bool IsOne = cast<SCEVConstant>(*Res)->getValue()->isOne(); in visitUnknown()
5089 if (const SCEVConstant *BECountMax = dyn_cast<SCEVConstant>(BECount)) { in proveNoWrapViaConstantRanges()
6152 if (isa<SCEVConstant>(C) && cast<SCEVConstant>(C)->getAPInt().ule(1)) in createNodeForSelectOrPHIInstWithICmpInstCond()
6196 if (!isa<SCEVConstant>(TrueExpr) && !isa<SCEVConstant>(FalseExpr)) in createNodeForSelectViaUMinSeq()
6200 if (isa<SCEVConstant>(TrueExpr)) { in createNodeForSelectViaUMinSeq()
6292 return cast<SCEVConstant>(S)->getAPInt(); in getConstantMultipleImpl()
6615 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(S)) in getRangeRef()
6749 APInt MaxBECount = cast<SCEVConstant>(MaxBEScev)->getAPInt(); in getRangeRef()
7043 if (!isa<SCEVConstant>(Step)) in getRangeForAffineNoSelfWrappingAR()
7130 if (SA->getNumOperands() != 2 || !isa<SCEVConstant>(SA->getOperand(0))) in getRangeViaFactoring()
7133 Offset = cast<SCEVConstant>(SA->getOperand(0))->getAPInt(); in getRangeViaFactoring()
7798 if (auto *OpC = dyn_cast<SCEVConstant>(LHSMul->getOperand(0))) { in createSCEV()
8168 static unsigned getConstantTripCount(const SCEVConstant *ExitCount) { in getConstantTripCount()
8183 auto *ExitCount = dyn_cast<SCEVConstant>(getBackedgeTakenCount(L, Exact)); in getSmallConstantTripCount()
8193 const SCEVConstant *ExitCount = in getSmallConstantTripCount()
8194 dyn_cast<SCEVConstant>(getExitCount(L, ExitingBlock)); in getSmallConstantTripCount()
8200 dyn_cast<SCEVConstant>(getConstantMaxBackedgeTakenCount(L)); in getSmallConstantMaxTripCount()
8633 isa<SCEVConstant>(getConstantMax())) && in getConstantMax()
8681 isa<SCEVConstant>(ConstantMaxNotTaken)) && in ExitLimit()
8719 isa<SCEVConstant>(ConstantMax)) && in BackedgeTakenInfo()
8818 if (!isa<SCEVConstant>(Pair.second.ExactNotTaken)) in computeBackedgeTakenCount()
8820 if (!isa<SCEVConstant>(Pair.second.SymbolicMaxNotTaken)) in computeBackedgeTakenCount()
9117 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) in computeExitLimitFromICmp()
9140 auto *StrideC = dyn_cast<SCEVConstant>(AR->getStepRecurrence(*this)); in computeExitLimitFromICmp()
9259 assert(isa<SCEVConstant>(Val) && in EvaluateConstantChrecAtConstant()
9261 return cast<SCEVConstant>(Val)->getValue(); in EvaluateConstantChrecAtConstant()
9730 if (!isa<SCEVConstant>(C)) in getSCEVAtScope()
9748 return cast<SCEVConstant>(V)->getValue(); in BuildConstantFromSCEV()
9974 if (auto *BTCC = dyn_cast<SCEVConstant>(BackedgeTakenCount)) { in computeSCEVAtScope()
10107 const SCEVConstant *LC = dyn_cast<SCEVConstant>(AddRec->getOperand(0)); in GetQuadraticEquation()
10108 const SCEVConstant *MC = dyn_cast<SCEVConstant>(AddRec->getOperand(1)); in GetQuadraticEquation()
10109 const SCEVConstant *NC = dyn_cast<SCEVConstant>(AddRec->getOperand(2)); in GetQuadraticEquation()
10380 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(V)) { in howFarToZero()
10405 const auto *R = cast<SCEVConstant>(getConstant(*S)); in howFarToZero()
10436 const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step); in howFarToZero()
10516 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(V)) { in howFarToNonZero()
10589 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(LHS)) { in SimplifyICmpOperands()
10591 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { in SimplifyICmpOperands()
10618 if (const SCEVConstant *RC = dyn_cast<SCEVConstant>(RHS)) { in SimplifyICmpOperands()
11208 if (!isa<SCEVConstant>(XConstOp) || in isKnownPredicateViaNoOverflow()
11218 if (!isa<SCEVConstant>(YConstOp) || in isKnownPredicateViaNoOverflow()
11225 OutC1 = cast<SCEVConstant>(XConstOp)->getAPInt(); in isKnownPredicateViaNoOverflow()
11226 OutC2 = cast<SCEVConstant>(YConstOp)->getAPInt(); in isKnownPredicateViaNoOverflow()
11667 if (isa<SCEVConstant>(RHS)) { in isImpliedCondBalancedTypes()
11692 if (!isa<SCEVConstant>(RHS) && !isa<SCEVAddRecExpr>(LHS)) in isImpliedCondBalancedTypes()
11695 if (!isa<SCEVConstant>(FoundRHS) && !isa<SCEVAddRecExpr>(FoundLHS)) in isImpliedCondBalancedTypes()
11761 (isa<SCEVConstant>(FoundLHS) || isa<SCEVConstant>(FoundRHS))) { in isImpliedCondBalancedTypes()
11763 const SCEVConstant *C = nullptr; in isImpliedCondBalancedTypes()
11766 if (isa<SCEVConstant>(FoundLHS)) { in isImpliedCondBalancedTypes()
11767 C = cast<SCEVConstant>(FoundLHS); in isImpliedCondBalancedTypes()
11770 C = cast<SCEVConstant>(FoundRHS); in isImpliedCondBalancedTypes()
11896 if (isa<SCEVConstant>(Less) && isa<SCEVConstant>(More)) { in computeConstantDifference()
11897 const auto &M = cast<SCEVConstant>(More)->getAPInt(); in computeConstantDifference()
11898 const auto &L = cast<SCEVConstant>(Less)->getAPInt(); in computeConstantDifference()
11905 const SCEVConstant *C1 = nullptr, *C2 = nullptr; in computeConstantDifference()
11908 if ((C1 = dyn_cast<SCEVConstant>(LLess))) in computeConstantDifference()
11914 if ((C2 = dyn_cast<SCEVConstant>(LMore))) in computeConstantDifference()
12409 auto *Denominator = cast<SCEVConstant>(getSCEV(LR)); in isImpliedViaOperations()
12563 if (!isa<SCEVConstant>(RHS) || !isa<SCEVConstant>(FoundRHS)) in isImpliedCondOperandsViaRanges()
12572 const APInt &ConstFoundRHS = cast<SCEVConstant>(FoundRHS)->getAPInt(); in isImpliedCondOperandsViaRanges()
12584 const APInt &ConstRHS = cast<SCEVConstant>(RHS)->getAPInt(); in isImpliedCondOperandsViaRanges()
12722 auto *StrideC = dyn_cast<SCEVConstant>(AR->getStepRecurrence(*this)); in howManyLessThans()
13036 if (auto *StrideC = dyn_cast<SCEVConstant>(Stride)) { in howManyLessThans()
13106 if (isa<SCEVConstant>(BECount)) { in howManyLessThans()
13109 isa<SCEVConstant>(BECountIfBackedgeTaken)) { in howManyLessThans()
13215 isa<SCEVConstant>(BECount) in howManyGreaterThans()
13235 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(getStart())) in getNumIterationsInRange()
13250 if (any_of(operands(), [](const SCEV *Op) { return !isa<SCEVConstant>(Op); })) in getNumIterationsInRange()
13270 APInt A = cast<SCEVConstant>(getOperand(1))->getAPInt(); in getNumIterationsInRange()
13865 if (!isa<SCEVConstant>(S)) { in forgetBackedgeTakenCounts()
13928 if (!isa_and_nonnull<SCEVConstant>(Pair.second)) in forgetMemoizedResultsImpl()
14024 const SCEV *visitConstant(const SCEVConstant *Constant) { in verify()
14053 if (!VerifySCEVStrict && !isa<SCEVConstant>(Delta)) in verify()
14166 if (isa<SCEVConstant>(Op)) in verify()
14183 if (!isa<SCEVConstant>(ValueAtScope)) { in verify()
14200 assert(!isa<SCEVConstant>(Value)); in verify()
14218 if (!isa<SCEVConstant>(S)) { in verify()
14662 if (const auto *Step = dyn_cast<SCEVConstant>(AR->getStepRecurrence(SE))) in getImpliedFlags()
14719 if (!isa<SCEVConstant>(Op)) in registerUser()
14901 if (Mul->getNumOperands() == 3 && isa<SCEVConstant>(Mul->getOperand(0))) in matchURem()
15017 if (isa<SCEVConstant>(LHS)) { in applyLoopGuards()
15031 auto *C1 = dyn_cast<SCEVConstant>(AddExpr->getOperand(0)); in applyLoopGuards()
15033 auto *C2 = dyn_cast<SCEVConstant>(RHS); in applyLoopGuards()
15064 if (auto *C = dyn_cast<SCEVConstant>(MinMax->getOperand(0))) { in applyLoopGuards()
15080 auto *ConstExpr = dyn_cast<SCEVConstant>(Expr); in applyLoopGuards()
15081 auto *ConstDivisor = dyn_cast<SCEVConstant>(Divisor); in applyLoopGuards()
15144 const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS); in applyLoopGuards()
15167 if (isa<SCEVConstant>(LHS) || containsAddRecurrence(RHS)) in applyLoopGuards()
15209 if (isa<SCEVConstant>(MulLHS)) in applyLoopGuards()
15290 if (isa<SCEVConstant>(From)) in applyLoopGuards()
15323 if (isa<SCEVConstant>(RHS)) in applyLoopGuards()
15327 if (isa<SCEVConstant>(RHS) && in applyLoopGuards()
15328 cast<SCEVConstant>(RHS)->getValue()->isNullValue()) { in applyLoopGuards()