Lines Matching defs:AddRec
1475 /// operands is an AddRec for this loop, return the AddRec and the kind of
1530 const SCEVAddRecExpr *AddRec =
1533 if (!AddRec || AddRec->getLoop() != L)
1536 return {AddRec, ExtKind};
1573 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr);
1574 if (!AddRec || AddRec->getLoop() != L)
1576 return {AddRec, ExtKind};
1638 // The widenIVUse avoids generating trunc by evaluating the use as AddRec, this
1758 // Verifying that Defining operand is an AddRec
2035 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi));
2036 if (!AddRec)
2041 ? SE->getSignExtendExpr(AddRec, WideType)
2042 : SE->getZeroExtendExpr(AddRec, WideType);
2048 AddRec = dyn_cast<SCEVAddRecExpr>(WideIVExpr);
2049 if (!AddRec || AddRec->getLoop() != L)
2052 // An AddRec must have loop-invariant operands. Since this AddRec is
2056 SE->properlyDominates(AddRec->getStart(), L->getHeader()) &&
2057 SE->properlyDominates(AddRec->getStepRecurrence(*SE), L->getHeader()) &&
2078 Value *ExpandInst = Rewriter.expandCodeFor(AddRec, WideType, InsertPt);