Lines Matching defs:AddRec
655 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Inst)))
656 if (AddRec->getLoop() == L)
657 ExitValue = AddRec->evaluateAtIteration(ExitCount, *SE);
1279 /// operands is an AddRec for this loop, return the AddRec and the kind of
1320 const SCEVAddRecExpr *AddRec =
1323 if (!AddRec || AddRec->getLoop() != L)
1326 return {AddRec, ExtKind};
1363 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr);
1364 if (!AddRec || AddRec->getLoop() != L)
1366 return {AddRec, ExtKind};
1478 // Verifying that Defining operand is an AddRec
1754 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi));
1755 if (!AddRec)
1760 ? SE->getSignExtendExpr(AddRec, WideType)
1761 : SE->getZeroExtendExpr(AddRec, WideType);
1767 AddRec = dyn_cast<SCEVAddRecExpr>(WideIVExpr);
1768 if (!AddRec || AddRec->getLoop() != L)
1771 // An AddRec must have loop-invariant operands. Since this AddRec is
1775 SE->properlyDominates(AddRec->getStart(), L->getHeader()) &&
1776 SE->properlyDominates(AddRec->getStepRecurrence(*SE), L->getHeader()) &&
1797 WidePhi = cast<PHINode>(Rewriter.expandCodeFor(AddRec, WideType, InsertPt));
2046 /// that this is less general than SCEVs AddRec checking.