Lines Matching defs:AR
1332 /// AddRecurrence \p AR; See createAddRecFromPHIWithCast). We want to find the
1335 /// cast instructions, and compute the phi using \p AR (instead of some scev
1362 const SCEVAddRecExpr *AR,
1367 assert(PSE.getSCEV(PN) == AR && "Unexpected phi node SCEV expression");
1368 const Loop *L = AR->getLoop();
1414 if (AddRec && PSE.areAddRecsEqualWithPreds(AddRec, AR))
1450 const auto *AR = dyn_cast<SCEVAddRecExpr>(PhiScev);
1453 if (Assume && !AR)
1454 AR = PSE.getAsAddRec(Phi);
1456 if (!AR) {
1468 if (PhiScev != AR && SymbolicPhi) {
1470 if (getCastsForInductionPHI(PSE, SymbolicPhi, AR, Casts))
1471 return isInductionPHI(Phi, TheLoop, PSE.getSE(), D, AR, &Casts);
1474 return isInductionPHI(Phi, TheLoop, PSE.getSE(), D, AR);
1488 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PhiScev);
1490 if (!AR) {
1495 if (AR->getLoop() != TheLoop) {
1506 assert(Phi->getParent() == AR->getLoop()->getHeader()
1510 Phi->getIncomingValueForBlock(AR->getLoop()->getLoopPreheader());
1512 BasicBlock *Latch = AR->getLoop()->getLoopLatch();
1516 const SCEV *Step = AR->getStepRecurrence(*SE);