Lines Matching refs:SCEVConstant
254 cast<SCEVConstant>(this)->getValue()->printAsOperand(OS, false); in print()
382 return cast<SCEVConstant>(this)->getType(); in getType()
410 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(this)) in isZero()
416 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(this)) in isOne()
422 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(this)) in isAllOnesValue()
432 const SCEVConstant *SC = dyn_cast<SCEVConstant>(Mul->getOperand(0)); in isNonConstantNegative()
452 SCEV *S = new (SCEVAllocator) SCEVConstant(ID.Intern(SCEVAllocator), V); in getConstant()
726 const SCEVConstant *LC = cast<SCEVConstant>(LHS); in CompareSCEVComplexity()
727 const SCEVConstant *RC = cast<SCEVConstant>(RHS); in CompareSCEVComplexity()
1203 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getTruncateExpr()
1506 const SCEVConstant *StartC = dyn_cast<SCEVConstant>(Start); in proveNoWrapByVaryingStart()
1545 const SCEVConstant *ConstantTerm, in extractConstantWithoutWrapping()
1586 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getZeroExtendExpr()
1762 if (const auto *SC = dyn_cast<SCEVConstant>(Start)) { in getZeroExtendExpr()
1817 if (const auto *SC = dyn_cast<SCEVConstant>(SA->getOperand(0))) { in getZeroExtendExpr()
1855 if (auto *MulLHS = dyn_cast<SCEVConstant>(SM->getOperand(0))) in getZeroExtendExpr()
1889 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getSignExtendExpr()
1951 if (const auto *SC = dyn_cast<SCEVConstant>(SA->getOperand(0))) { in getSignExtendExpr()
2078 if (const auto *SC = dyn_cast<SCEVConstant>(Start)) { in getSignExtendExpr()
2126 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op)) in getAnyExtendExpr()
2198 while (const SCEVConstant *C = dyn_cast<SCEVConstant>(Ops[i])) { in CollectAddOperandsWithScales()
2210 if (Mul && isa<SCEVConstant>(Mul->getOperand(0))) { in CollectAddOperandsWithScales()
2212 Scale * cast<SCEVConstant>(Mul->getOperand(0))->getAPInt(); in CollectAddOperandsWithScales()
2361 isa<SCEVConstant>(Ops[0])) { in StrengthenNoWrapFlags()
2374 const APInt &C = cast<SCEVConstant>(Ops[0])->getAPInt(); in StrengthenNoWrapFlags()
2423 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getAddExpr()
2426 while (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(Ops[Idx])) { in getAddExpr()
2431 LHSC = cast<SCEVConstant>(Ops[0]); in getAddExpr()
2514 } else if (const SCEVConstant *C = dyn_cast<SCEVConstant>(Ops[i])) { in getAddExpr()
2526 } else if (const auto *C = dyn_cast<SCEVConstant>(M->getOperand(j))) { in getAddExpr()
2544 if (isa<SCEVConstant>(Fold) || isa<SCEVUnknown>(Fold)) in getAddExpr()
2556 auto *C = dyn_cast<SCEVConstant>(A); in getAddExpr()
2557 if (AddExpr && C && isa<SCEVConstant>(AddExpr->getOperand(0))) { in getAddExpr()
2558 auto C1 = cast<SCEVConstant>(AddExpr->getOperand(0))->getAPInt(); in getAddExpr()
2676 if (isa<SCEVConstant>(MulOpSCEV)) in getAddExpr()
2955 FoundConstant |= isa<SCEVConstant>(S); in containsConstantInAddMulChain()
2991 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getMulExpr()
2994 while (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(Ops[Idx])) { in getMulExpr()
2999 LHSC = cast<SCEVConstant>(Ops[0]); in getMulExpr()
3033 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getMulExpr()
3243 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { in getURemExpr()
3281 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(LHS)) in getUDivExpr()
3285 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { in getUDivExpr()
3305 if (const SCEVConstant *Step = in getUDivExpr()
3306 dyn_cast<SCEVConstant>(AR->getStepRecurrence(*this))) { in getUDivExpr()
3323 const SCEVConstant *StartC = dyn_cast<SCEVConstant>(AR->getStart()); in getUDivExpr()
3372 dyn_cast<SCEVConstant>(OtherDiv->getRHS())) { in getUDivExpr()
3403 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(LHS)) { in getUDivExpr()
3423 static const APInt gcd(const SCEVConstant *C1, const SCEVConstant *C2) { in gcd()
3451 if (const SCEVConstant *RHSCst = dyn_cast<SCEVConstant>(RHS)) { in getUDivExactExpr()
3454 if (const auto *LHSCst = dyn_cast<SCEVConstant>(Mul->getOperand(0))) { in getUDivExactExpr()
3466 cast<SCEVConstant>(getConstant(LHSCst->getAPInt().udiv(Factor))); in getUDivExactExpr()
3468 cast<SCEVConstant>(getConstant(RHSCst->getAPInt().udiv(Factor))); in getUDivExactExpr()
3611 ConstantInt *Index = cast<SCEVConstant>(IndexExpr)->getValue(); in getGEPExpr()
3698 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(Ops[0])) { in getMinMaxExpr()
3713 while (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(Ops[Idx])) { in getMinMaxExpr()
3720 LHSC = cast<SCEVConstant>(Ops[0]); in getMinMaxExpr()
3981 auto *ConstOp = dyn_cast<SCEVConstant>(Add->getOperand(0)); in splitAddExpr()
4097 if (const SCEVConstant *VC = dyn_cast<SCEVConstant>(V)) in getNegativeSCEV()
4123 if (const SCEVConstant *VC = dyn_cast<SCEVConstant>(V)) in getNotSCEV()
4549 bool IsOne = cast<SCEVConstant>(Res.getValue())->getValue()->isOne(); in visitUnknown()
5756 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(S)) in GetMinTrailingZerosImpl()
5999 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(S)) in getRangeRef()
6362 if (!isa<SCEVConstant>(Step)) in getRangeForAffineNoSelfWrappingAR()
6445 if (SA->getNumOperands() != 2 || !isa<SCEVConstant>(SA->getOperand(0))) in getRangeViaFactoring()
6448 Offset = cast<SCEVConstant>(SA->getOperand(0))->getAPInt(); in getRangeViaFactoring()
6849 if (auto *OpC = dyn_cast<SCEVConstant>(LHSMul->getOperand(0))) { in createSCEV()
7153 static unsigned getConstantTripCount(const SCEVConstant *ExitCount) { in getConstantTripCount()
7168 auto *ExitCount = dyn_cast<SCEVConstant>(getBackedgeTakenCount(L, Exact)); in getSmallConstantTripCount()
7178 const SCEVConstant *ExitCount = in getSmallConstantTripCount()
7179 dyn_cast<SCEVConstant>(getExitCount(L, ExitingBlock)); in getSmallConstantTripCount()
7185 dyn_cast<SCEVConstant>(getConstantMaxBackedgeTakenCount(L)); in getSmallConstantMaxTripCount()
7211 const SCEVConstant *TC = dyn_cast<SCEVConstant>(TCExpr); in getSmallConstantTripMultiple()
7605 isa<SCEVConstant>(getConstantMax())) && in getConstantMax()
7642 isa<SCEVConstant>(MaxNotTaken)) && in ExitLimit()
7703 isa<SCEVConstant>(ConstantMax)) && in BackedgeTakenInfo()
7981 PoisonSafe = isa<SCEVConstant>(EL0.ExactNotTaken) || in computeExitLimitFromCondFromBinOp()
7982 isa<SCEVConstant>(EL1.ExactNotTaken); in computeExitLimitFromCondFromBinOp()
8062 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) in computeExitLimitFromICmp()
8167 assert(isa<SCEVConstant>(Val) && in EvaluateConstantChrecAtConstant()
8169 return cast<SCEVConstant>(Val)->getValue(); in EvaluateConstantChrecAtConstant()
8223 !isa<SCEVConstant>(IdxExpr->getOperand(0)) || in computeLoadConstantCompareExitLimit()
8224 !isa<SCEVConstant>(IdxExpr->getOperand(1))) in computeLoadConstantCompareExitLimit()
8739 return cast<SCEVConstant>(V)->getValue(); in BuildConstantFromSCEV()
8840 if (isa<SCEVConstant>(V)) return V; in computeSCEVAtScope()
8886 if (auto *BTCC = dyn_cast<SCEVConstant>(BackedgeTakenCount)) { in computeSCEVAtScope()
8903 if (isa<SCEVConstant>(InputAtScope)) return InputAtScope; in computeSCEVAtScope()
9148 const SCEVConstant *LC = dyn_cast<SCEVConstant>(AddRec->getOperand(0)); in GetQuadraticEquation()
9149 const SCEVConstant *MC = dyn_cast<SCEVConstant>(AddRec->getOperand(1)); in GetQuadraticEquation()
9150 const SCEVConstant *NC = dyn_cast<SCEVConstant>(AddRec->getOperand(2)); in GetQuadraticEquation()
9416 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(V)) { in howFarToZero()
9441 const auto *R = cast<SCEVConstant>(getConstant(S.getValue())); in howFarToZero()
9472 const SCEVConstant *StepC = dyn_cast<SCEVConstant>(Step); in howFarToZero()
9550 if (const SCEVConstant *C = dyn_cast<SCEVConstant>(V)) { in howFarToNonZero()
9623 if (const SCEVConstant *LHSC = dyn_cast<SCEVConstant>(LHS)) { in SimplifyICmpOperands()
9625 if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS)) { in SimplifyICmpOperands()
9653 if (const SCEVConstant *RC = dyn_cast<SCEVConstant>(RHS)) { in SimplifyICmpOperands()
10173 if (!isa<SCEVConstant>(XConstOp) || in isKnownPredicateViaNoOverflow()
10183 if (!isa<SCEVConstant>(YConstOp) || in isKnownPredicateViaNoOverflow()
10190 OutC1 = cast<SCEVConstant>(XConstOp)->getAPInt(); in isKnownPredicateViaNoOverflow()
10191 OutC2 = cast<SCEVConstant>(YConstOp)->getAPInt(); in isKnownPredicateViaNoOverflow()
10639 if (isa<SCEVConstant>(RHS)) { in isImpliedCondBalancedTypes()
10664 if (!isa<SCEVConstant>(RHS) && !isa<SCEVAddRecExpr>(LHS)) in isImpliedCondBalancedTypes()
10667 if (!isa<SCEVConstant>(FoundRHS) && !isa<SCEVAddRecExpr>(FoundLHS)) in isImpliedCondBalancedTypes()
10690 (isa<SCEVConstant>(FoundLHS) || isa<SCEVConstant>(FoundRHS))) { in isImpliedCondBalancedTypes()
10692 const SCEVConstant *C = nullptr; in isImpliedCondBalancedTypes()
10695 if (isa<SCEVConstant>(FoundLHS)) { in isImpliedCondBalancedTypes()
10696 C = cast<SCEVConstant>(FoundLHS); in isImpliedCondBalancedTypes()
10699 C = cast<SCEVConstant>(FoundRHS); in isImpliedCondBalancedTypes()
10824 if (isa<SCEVConstant>(Less) && isa<SCEVConstant>(More)) { in computeConstantDifference()
10825 const auto &M = cast<SCEVConstant>(More)->getAPInt(); in computeConstantDifference()
10826 const auto &L = cast<SCEVConstant>(Less)->getAPInt(); in computeConstantDifference()
10833 const SCEVConstant *C1 = nullptr, *C2 = nullptr; in computeConstantDifference()
10836 if ((C1 = dyn_cast<SCEVConstant>(LLess))) in computeConstantDifference()
10842 if ((C2 = dyn_cast<SCEVConstant>(LMore))) in computeConstantDifference()
11291 auto *Denominator = cast<SCEVConstant>(getSCEV(LR)); in isImpliedViaOperations()
11444 if (!isa<SCEVConstant>(RHS) || !isa<SCEVConstant>(FoundRHS)) in isImpliedCondOperandsViaRanges()
11453 const APInt &ConstFoundRHS = cast<SCEVConstant>(FoundRHS)->getAPInt(); in isImpliedCondOperandsViaRanges()
11465 const APInt &ConstRHS = cast<SCEVConstant>(RHS)->getAPInt(); in isImpliedCondOperandsViaRanges()
11713 auto *StrideC = dyn_cast<SCEVConstant>(Stride); in howManyLessThans()
11860 if (auto *StrideC = dyn_cast<SCEVConstant>(Stride)) { in howManyLessThans()
11930 if (isa<SCEVConstant>(BECount)) { in howManyLessThans()
11933 isa<SCEVConstant>(BECountIfBackedgeTaken)) { in howManyLessThans()
12036 const SCEV *MaxBECount = isa<SCEVConstant>(BECount) in howManyGreaterThans()
12053 if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(getStart())) in getNumIterationsInRange()
12068 if (any_of(operands(), [](const SCEV *Op) { return !isa<SCEVConstant>(Op); })) in getNumIterationsInRange()
12088 APInt A = cast<SCEVConstant>(getOperand(1))->getAPInt(); in getNumIterationsInRange()
12315 if (!isa<SCEVConstant>(Op)) in findArrayDimensionsRec()
12338 erase_if(Terms, [](const SCEV *E) { return isa<SCEVConstant>(E); }); in findArrayDimensionsRec()
12365 if (isa<SCEVConstant>(T)) in removeConstantFactors()
12374 if (!isa<SCEVConstant>(Op)) in removeConstantFactors()
12614 if (auto *Const = dyn_cast<SCEVConstant>(Expr)) in getIndexExpressionsFromGEP()
13205 const SCEV *visitConstant(const SCEVConstant *Constant) { in verify()
13258 if ((VerifySCEVStrict || isa<SCEVConstant>(Delta)) && !Delta->isZero()) { in verify()
13620 if (const auto *Step = dyn_cast<SCEVConstant>(AR->getStepRecurrence(SE))) in getImpliedFlags()
13861 if (Mul->getNumOperands() == 3 && isa<SCEVConstant>(Mul->getOperand(0))) in matchURem()
13926 const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS); in applyLoopGuards()
13958 auto *C1 = dyn_cast<SCEVConstant>(AddExpr->getOperand(0)); in applyLoopGuards()
13960 auto *C2 = dyn_cast<SCEVConstant>(RHS); in applyLoopGuards()
14022 if (isa<SCEVConstant>(RHS)) in applyLoopGuards()
14026 if (isa<SCEVConstant>(RHS) && in applyLoopGuards()
14027 cast<SCEVConstant>(RHS)->getValue()->isNullValue()) in applyLoopGuards()