Lines Matching defs:AddRec
1473 /// operands is an AddRec for this loop, return the AddRec and the kind of
1528 const SCEVAddRecExpr *AddRec =
1531 if (!AddRec || AddRec->getLoop() != L)
1534 return {AddRec, ExtKind};
1571 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr);
1572 if (!AddRec || AddRec->getLoop() != L)
1574 return {AddRec, ExtKind};
1636 // The widenIVUse avoids generating trunc by evaluating the use as AddRec, this
1756 // Verifying that Defining operand is an AddRec
2033 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi));
2034 if (!AddRec)
2039 ? SE->getSignExtendExpr(AddRec, WideType)
2040 : SE->getZeroExtendExpr(AddRec, WideType);
2046 AddRec = dyn_cast<SCEVAddRecExpr>(WideIVExpr);
2047 if (!AddRec || AddRec->getLoop() != L)
2050 // An AddRec must have loop-invariant operands. Since this AddRec is
2054 SE->properlyDominates(AddRec->getStart(), L->getHeader()) &&
2055 SE->properlyDominates(AddRec->getStepRecurrence(*SE), L->getHeader()) &&
2076 Value *ExpandInst = Rewriter.expandCodeFor(AddRec, WideType, InsertPt);