reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

include/llvm/Analysis/ScalarEvolution.h
   66 class SCEVAddRecExpr;

References

include/llvm/Analysis/ScalarEvolution.h
  365   getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE);
  368   const SCEVAddRecExpr *AR;
  373                              const SCEVAddRecExpr *AR,
  910                                const SCEVAddRecExpr *LHS, const SCEV *RHS);
  921   bool isMonotonicPredicate(const SCEVAddRecExpr *LHS, ICmpInst::Predicate Pred,
 1078   getWrapPredicate(const SCEVAddRecExpr *AR,
 1086   const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates(
 1780   SCEV::NoWrapFlags proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR);
 1782   bool isMonotonicPredicateImpl(const SCEVAddRecExpr *LHS,
 1989   const SCEVAddRecExpr *getAsAddRec(Value *V);
 2010   bool areAddRecsEqualWithPreds(const SCEVAddRecExpr *AR1,
 2011                                 const SCEVAddRecExpr *AR2) const;
include/llvm/Analysis/ScalarEvolutionExpander.h
  227     Value *generateOverflowCheck(const SCEVAddRecExpr *AR, Instruction *Loc,
  378     Value *visitAddRecExpr(const SCEVAddRecExpr *S);
  398     Value *expandAddRecExprLiterally(const SCEVAddRecExpr *);
  399     PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
include/llvm/Analysis/ScalarEvolutionExpressions.h
  359     const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const;
  724     const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) {
  833     const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) {
  844       const SCEVAddRecExpr *Rec = cast<SCEVAddRecExpr>(Res);
  844       const SCEVAddRecExpr *Rec = cast<SCEVAddRecExpr>(Res);
include/llvm/Analysis/ScalarEvolutionNormalization.h
   50 typedef function_ref<bool(const SCEVAddRecExpr *)> NormalizePredTy;
include/llvm/Analysis/TargetTransformInfoImpl.h
  662     return Ptr && isa<SCEVAddRecExpr>(Ptr);
  669     const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ptr);
  669     const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ptr);
include/llvm/Support/Casting.h
   58     return To::classof(&Val);
   77     return isa_impl<To, From>::doit(Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
lib/Analysis/DependenceAnalysis.cpp
  884   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src);
  884   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src);
  909   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst);
  909   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst);
 1027   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) {
 1027   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) {
 1049     if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) {
 1049     if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) {
 2158   const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src);
 2158   const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src);
 2159   const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst);
 2159   const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst);
 2235   const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src);
 2235   const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src);
 2236   const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst);
 2236   const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst);
 2246     if (const SCEVAddRecExpr *tmpAddRec =
 2247         dyn_cast<SCEVAddRecExpr>(SrcAddRec->getStart())) {
 2259     if (const SCEVAddRecExpr *tmpAddRec =
 2260         dyn_cast<SCEVAddRecExpr>(DstAddRec->getStart())) {
 2341   while (const SCEVAddRecExpr *AddRec =
 2342          dyn_cast<SCEVAddRecExpr>(Coefficients)) {
 2360   while (const SCEVAddRecExpr *AddRec =
 2361          dyn_cast<SCEVAddRecExpr>(Coefficients)) {
 2430   while (const SCEVAddRecExpr *AddRec =
 2431          dyn_cast<SCEVAddRecExpr>(Coefficients)) {
 2438     while (RunningGCD != 1 && isa<SCEVAddRecExpr>(Inner)) {
 2439       AddRec = cast<SCEVAddRecExpr>(Inner);
 2455     while (RunningGCD != 1 && isa<SCEVAddRecExpr>(Inner)) {
 2456       AddRec = cast<SCEVAddRecExpr>(Inner);
 2923   while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) {
 2923   while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) {
 2997   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
 2997   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
 3013   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
 3013   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
 3033   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
 3033   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);
 3295   const SCEVAddRecExpr *SrcAR = dyn_cast<SCEVAddRecExpr>(SrcSCEV);
 3295   const SCEVAddRecExpr *SrcAR = dyn_cast<SCEVAddRecExpr>(SrcSCEV);
 3296   const SCEVAddRecExpr *DstAR = dyn_cast<SCEVAddRecExpr>(DstSCEV);
 3296   const SCEVAddRecExpr *DstAR = dyn_cast<SCEVAddRecExpr>(DstSCEV);
lib/Analysis/IVDescriptors.cpp
  914                                     const SCEVAddRecExpr *AR,
  965     auto *AddRec = dyn_cast<SCEVAddRecExpr>(PSE.getSCEV(Val));
 1002   const auto *AR = dyn_cast<SCEVAddRecExpr>(PhiScev);
 1002   const auto *AR = dyn_cast<SCEVAddRecExpr>(PhiScev);
 1040   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PhiScev);
 1040   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PhiScev);
lib/Analysis/IVUsers.cpp
   62   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
   62   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  394 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) {
  395   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  395   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  403       if (const SCEVAddRecExpr *AR = findAddRecForLoop(Op, L))
  412   if (const SCEVAddRecExpr *AR = findAddRecForLoop(getExpr(IU), L))
lib/Analysis/Loads.cpp
  218   auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Ptr));
lib/Analysis/LoopAccessAnalysis.cpp
  203     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Sc);
  203     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Sc);
  628   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev);
  628   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev);
  669     if (!Assume || !isa<SCEVAddRecExpr>(Expr))
  943 static bool isNoWrapAddRec(Value *Ptr, const SCEVAddRecExpr *AR,
  982       if (auto *OpAR = dyn_cast<SCEVAddRecExpr>(OpScev))
 1006   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev);
 1006   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev);
lib/Analysis/LoopCacheAnalysis.cpp
   76   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&AccessFn);
   76   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&AccessFn);
   85   if (isa<SCEVAddRecExpr>(Start) || isa<SCEVAddRecExpr>(Step))
   85   if (isa<SCEVAddRecExpr>(Start) || isa<SCEVAddRecExpr>(Step))
  402   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LastSubscript);
  402   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LastSubscript);
  408   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript);
  408   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(&Subscript);
  415   if (!isa<SCEVAddRecExpr>(Subscript))
  418   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(&Subscript);
  418   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(&Subscript);
lib/Analysis/LoopInfo.cpp
  271   if (const SCEVAddRecExpr *StepAddRecExpr =
  272           dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&getStepInst())))
lib/Analysis/LoopUnrollAnalyzer.cpp
   37   auto *AR = dyn_cast<SCEVAddRecExpr>(S);
lib/Analysis/ScalarEvolution.cpp
  265     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this);
  265     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this);
  696     const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS);
  696     const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS);
  697     const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS);
  697     const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS);
  972   void visitAddRecExpr(const SCEVAddRecExpr *Numerator) {
 1325   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) {
 1325   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) {
 1437 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty,
 1469   const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>(
 1469   const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>(
 1511 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty,
 1582     const auto *PreAR =
 1687   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op))
 1687   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op))
 2031   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op))
 2031   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op))
 2229   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) {
 2229   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Op)) {
 2693   for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) {
 2697     const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]);
 2697     const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]);
 2740          OtherIdx < Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]);
 2748       if (AddRecLoop == cast<SCEVAddRecExpr>(Ops[OtherIdx])->getLoop()) {
 2752         for (; OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]);
 2754           const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]);
 2754           const auto *OtherAddRec = cast<SCEVAddRecExpr>(Ops[OtherIdx]);
 2816   SCEVAddRecExpr *S =
 2822         SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L);
 2983         } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) {
 2983         } else if (const auto *AddRec = dyn_cast<SCEVAddRecExpr>(Ops[1])) {
 3031   for (; Idx < Ops.size() && isa<SCEVAddRecExpr>(Ops[Idx]); ++Idx) {
 3035     const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]);
 3035     const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]);
 3090          OtherIdx != Ops.size() && isa<SCEVAddRecExpr>(Ops[OtherIdx]);
 3092       const SCEVAddRecExpr *OtherAddRec =
 3093         dyn_cast<SCEVAddRecExpr>(Ops[OtherIdx]);
 3140         AddRec = dyn_cast<SCEVAddRecExpr>(NewAddRec);
 3212       if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS))
 3212       if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS))
 3397   if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step))
 3397   if (const SCEVAddRecExpr *StepChrec = dyn_cast<SCEVAddRecExpr>(Step))
 3437   if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) {
 3437   if (const SCEVAddRecExpr *NestedAR = dyn_cast<SCEVAddRecExpr>(Operands[0])) {
 3816   bool FoundAddRec = SCEVExprContains(S, isa<SCEVAddRecExpr, const SCEV *>);
 4256   const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) {
 4297   const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) {
 4414   const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) {
 4434 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) {
 4816   if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) {
 4816   if (const auto *AR = dyn_cast<SCEVAddRecExpr>(PHISCEV)) {
 4936     const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const {
 4936     const SCEVAddRecExpr *AR1, const SCEVAddRecExpr *AR2) const {
 5075           (isa<SCEVAddRecExpr>(Accum) &&
 5076            cast<SCEVAddRecExpr>(Accum)->getLoop() == L)) {
 5196         const auto *ARLoop = cast<SCEVAddRecExpr>(S)->getLoop();
 5479   if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) {
 5479   if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) {
 5647   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) {
 5647   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) {
 6018     if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) {
 6314           if (const SCEVAddRecExpr *NewAR = dyn_cast<SCEVAddRecExpr>(S)) {
 6314           if (const SCEVAddRecExpr *NewAR = dyn_cast<SCEVAddRecExpr>(S)) {
 6315             const SCEVAddRecExpr *OldAR = cast<SCEVAddRecExpr>(LHS);
 6315             const SCEVAddRecExpr *OldAR = cast<SCEVAddRecExpr>(LHS);
 7399     if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS))
 7399     if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(LHS))
 7479 EvaluateConstantChrecAtConstant(const SCEVAddRecExpr *AddRec, ConstantInt *C,
 7536   const SCEVAddRecExpr *IdxExpr = dyn_cast<SCEVAddRecExpr>(Idx);
 7536   const SCEVAddRecExpr *IdxExpr = dyn_cast<SCEVAddRecExpr>(Idx);
 8305   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) {
 8305   if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(V)) {
 8325       AddRec = dyn_cast<SCEVAddRecExpr>(FoldedRec);
 8442 GetQuadraticEquation(const SCEVAddRecExpr *AddRec) {
 8542 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) {
 8574 SolveQuadraticAddRecRange(const SCEVAddRecExpr *AddRec,
 8718   const SCEVAddRecExpr *AddRec =
 8719       dyn_cast<SCEVAddRecExpr>(stripInjectiveFunctions(V));
 8929   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) {
 8929   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(RHS)) {
 9188                                               const SCEVAddRecExpr *LHS,
 9195 bool ScalarEvolution::isMonotonicPredicate(const SCEVAddRecExpr *LHS,
 9216 bool ScalarEvolution::isMonotonicPredicateImpl(const SCEVAddRecExpr *LHS,
 9285   const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS);
 9285   const SCEVAddRecExpr *ArLHS = dyn_cast<SCEVAddRecExpr>(LHS);
 9877   if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) {
 9877   if (isa<SCEVAddRecExpr>(Less) && isa<SCEVAddRecExpr>(More)) {
 9878     const auto *LAR = cast<SCEVAddRecExpr>(Less);
 9878     const auto *LAR = cast<SCEVAddRecExpr>(Less);
 9879     const auto *MAR = cast<SCEVAddRecExpr>(More);
 9879     const auto *MAR = cast<SCEVAddRecExpr>(More);
 9933   const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS);
 9933   const auto *AddRecLHS = dyn_cast<SCEVAddRecExpr>(LHS);
 9937   const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS);
 9937   const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS);
10059   const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS);
10059   const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS);
10153   const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS);
10153   const SCEVAddRecExpr *LAR = dyn_cast<SCEVAddRecExpr>(LHS);
10156   const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS);
10156   const SCEVAddRecExpr *RAR = dyn_cast<SCEVAddRecExpr>(RHS);
10587   const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS);
10587   const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS);
10731   const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS);
10731   const SCEVAddRecExpr *IV = dyn_cast<SCEVAddRecExpr>(LHS);
10808       if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted))
10808       if (const auto *ShiftedAddRec = dyn_cast<SCEVAddRecExpr>(Shifted))
10867 const SCEVAddRecExpr *
10888   return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, getLoop(),
10912     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
10912     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
10952     if (isa<SCEVAddRecExpr>(S)) {
11217   if (auto *AR = dyn_cast<SCEVAddRecExpr>(Expr))
11242       if (isa<SCEVAddRecExpr>(R)) {
11672     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
11672     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
11783     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
11783     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
11899       if (auto *AR = dyn_cast<SCEVAddRecExpr>(S))
12083     const SCEVAddRecExpr *AR,
12132     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand);
12132     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand);
12148     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand);
12148     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Operand);
12177   bool addOverflowAssumption(const SCEVAddRecExpr *AR,
12199         auto *AR = cast<const SCEVAddRecExpr>(WP->getExpr());
12221 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates(
12226   auto *AddRec = dyn_cast<SCEVAddRecExpr>(S);
12269                                      const SCEVAddRecExpr *AR,
12301 SCEVWrapPredicate::getImpliedFlags(const SCEVAddRecExpr *AR,
12433   const auto *AR = cast<SCEVAddRecExpr>(Expr);
12433   const auto *AR = cast<SCEVAddRecExpr>(Expr);
12449   const auto *AR = cast<SCEVAddRecExpr>(Expr);
12449   const auto *AR = cast<SCEVAddRecExpr>(Expr);
12462 const SCEVAddRecExpr *PredicatedScalarEvolution::getAsAddRec(Value *V) {
lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
  100   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  100   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
lib/Analysis/ScalarEvolutionExpander.cpp
  294   if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) {
  294   if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) {
  320   for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i)
  351     while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) {
  351     while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) {
  635     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
  635     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
  877   while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) {
  877   while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) {
 1097                                     const SCEVAddRecExpr *Phi,
 1098                                     const SCEVAddRecExpr *Requested,
 1107   Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy));
 1127 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) {
 1141 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) {
 1159 SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
 1185       const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN));
 1185       const SCEVAddRecExpr *PhiSCEV = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN));
 1337 Value *SCEVExpander::expandAddRecExprLiterally(const SCEVAddRecExpr *S) {
 1344   const SCEVAddRecExpr *Normalized = S;
 1348     Normalized = cast<SCEVAddRecExpr>(normalizeForPostIncUse(S, Loops, SE));
 1357     Normalized = cast<SCEVAddRecExpr>(
 1377       cast<SCEVAddRecExpr>(SE.getAddRecExpr(
 1485 Value *SCEVExpander::visitAddRecExpr(const SCEVAddRecExpr *S) {
 1623   if (isa<SCEVAddRecExpr>(Ext))
 1626   const SCEV *V = cast<SCEVAddRecExpr>(NewS)->evaluateAtIteration(IH, SE);
 2238 Value *SCEVExpander::generateOverflowCheck(const SCEVAddRecExpr *AR,
 2337   const auto *A = cast<SCEVAddRecExpr>(Pred->getExpr());
 2337   const auto *A = cast<SCEVAddRecExpr>(Pred->getExpr());
 2410     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
 2410     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
lib/Analysis/ScalarEvolutionNormalization.cpp
   42   const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr);
   47 NormalizeDenormalizeRewriter::visitAddRecExpr(const SCEVAddRecExpr *AR) {
lib/Analysis/StackSafetyAnalysis.cpp
   40     if (!isa<SCEVAddRecExpr>(Expr) && !isa<SCEVAddExpr>(Expr) &&
lib/Analysis/VectorUtils.cpp
  206   const SCEVAddRecExpr *S = dyn_cast<SCEVAddRecExpr>(V);
  206   const SCEVAddRecExpr *S = dyn_cast<SCEVAddRecExpr>(V);
lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
  164       const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV);
  164       const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV);
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  739         const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV);
  739         const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV);
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  143     int getSCEVStride(const SCEVAddRecExpr *StoreEv);
 1907 int HexagonLoopIdiomRecognize::getSCEVStride(const SCEVAddRecExpr *S) {
 1929   auto *StoreEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
 1951   auto *LoadEv = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LoadPtr));
 2014   auto *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
 2024   auto *LoadEv = cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand()));
lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
  270       const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV);
  270       const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV);
  329   const SCEVAddRecExpr *BasePtrSCEV =
  330       cast<SCEVAddRecExpr>(BucketChain.BaseSCEV);
  515     const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV);
  515     const SCEVAddRecExpr *PHIBasePtrSCEV = dyn_cast<SCEVAddRecExpr>(PHISCEV);
  582       const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV);
  582       const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV);
lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
  148   } else if (const SCEVAddRecExpr *DiffARSCEV =
  149              dyn_cast<SCEVAddRecExpr>(DiffSCEV)) {
lib/Transforms/Scalar/IndVarSimplify.cpp
  654           if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Inst)))
 1043   Instruction *cloneIVUser(NarrowIVDefUse DU, const SCEVAddRecExpr *WideAR);
 1045                                      const SCEVAddRecExpr *WideAR);
 1050   using WidenedRecTy = std::pair<const SCEVAddRecExpr *, ExtendKind>;
 1088                                   const SCEVAddRecExpr *WideAR) {
 1140                                             const SCEVAddRecExpr *WideAR) {
 1293   const SCEVAddRecExpr *AddRec =
 1294       dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode));
 1323     if (isa<SCEVAddRecExpr>(WideExpr))
 1336   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr);
 1336   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr);
 1453   const SCEVAddRecExpr *AddRecOp1 = dyn_cast<SCEVAddRecExpr>(Op1);
 1453   const SCEVAddRecExpr *AddRecOp1 = dyn_cast<SCEVAddRecExpr>(Op1);
 1727   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi));
 1727   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi));
 1740   AddRec = dyn_cast<SCEVAddRecExpr>(WideIVExpr);
 2227   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi));
 2227   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Phi));
 2270     const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi));
 2270     const auto *AR = cast<SCEVAddRecExpr>(SE->getSCEV(Phi));
 2335   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar));
 2335   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IndVar));
 2465     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar));
 2465     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar));
 3082       const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ExitCount);
 3082       const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(ExitCount);
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  215                                             const SCEVAddRecExpr *IndVar,
  361   const auto *IndexAddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Index));
  361   const auto *IndexAddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Index));
  803   if (!isa<SCEVAddRecExpr>(LeftSCEV)) {
  804     if (isa<SCEVAddRecExpr>(RightSCEV)) {
  822     const SCEVAddRecExpr *ExtendAfterOp =
  823         dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy));
  843   const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV);
  843   const SCEVAddRecExpr *IndVarBase = cast<SCEVAddRecExpr>(LeftSCEV);
 1567     ScalarEvolution &SE, const SCEVAddRecExpr *IndVar,
 1830   const SCEVAddRecExpr *IndVar =
 1831       cast<SCEVAddRecExpr>(SE.getMinusSCEV(SE.getSCEV(LS.IndVarBase), SE.getSCEV(LS.IndVarStep)));
lib/Transforms/Scalar/LoopDataPrefetch.cpp
   75   bool isStrideLargeEnough(const SCEVAddRecExpr *AR);
  140 bool LoopDataPrefetch::isStrideLargeEnough(const SCEVAddRecExpr *AR) {
  250   SmallVector<std::pair<Instruction *, const SCEVAddRecExpr *>, 16> PrefLoads;
  273       const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV);
  273       const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV);
lib/Transforms/Scalar/LoopFuse.cpp
  846     const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) {
  907       const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S);
  907       const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S);
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  207                                const SCEVAddRecExpr *Ev, const SCEV *BECount,
  422 static APInt getStoreStride(const SCEVAddRecExpr *StoreEv) {
  500   const SCEVAddRecExpr *StoreEv =
  501       dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
  559     const SCEVAddRecExpr *LoadEv =
  560         dyn_cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand()));
  677     const SCEVAddRecExpr *FirstStoreEv =
  678         cast<SCEVAddRecExpr>(SE->getSCEV(FirstStorePtr));
  713       const SCEVAddRecExpr *SecondStoreEv =
  714           cast<SCEVAddRecExpr>(SE->getSCEV(SecondStorePtr));
  784     const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
  784     const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
  821   const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer));
  821   const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer));
  943     SmallPtrSetImpl<Instruction *> &Stores, const SCEVAddRecExpr *Ev,
 1060   const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
 1060   const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr));
 1072   const SCEVAddRecExpr *LoadEv =
 1073       cast<SCEVAddRecExpr>(SE->getSCEV(LI->getPointerOperand()));
 2039   const auto *ScevForSrcA = dyn_cast<SCEVAddRecExpr>(
 2039   const auto *ScevForSrcA = dyn_cast<SCEVAddRecExpr>(
 2041   const auto *ScevForSrcB = dyn_cast<SCEVAddRecExpr>(
 2041   const auto *ScevForSrcB = dyn_cast<SCEVAddRecExpr>(
lib/Transforms/Scalar/LoopInterchange.cpp
  307     const SCEVAddRecExpr *AddRec =
  308         dyn_cast<SCEVAddRecExpr>(SE->getSCEV(PhiVar));
 1040           const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(OperandVal);
 1040           const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(OperandVal);
lib/Transforms/Scalar/LoopLoadElimination.cpp
  119     auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr));
  120     auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr));
  432     auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr));
lib/Transforms/Scalar/LoopPredication.cpp
  237   const SCEVAddRecExpr *IV;
  239   LoopICmp(ICmpInst::Predicate Pred, const SCEVAddRecExpr *IV,
  382   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHSS);
  382   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHSS);
  477   NewLatchCheck.IV = dyn_cast<SCEVAddRecExpr>(
lib/Transforms/Scalar/LoopRerollPass.cpp
  582     if (const SCEVAddRecExpr *PHISCEV =
  583             dyn_cast<SCEVAddRecExpr>(SE->getSCEV(&*I))) {
  891   const auto *ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(DRS.BaseInst));
  891   const auto *ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(DRS.BaseInst));
  916   const auto *IVU_ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(IVU));
  916   const auto *IVU_ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(IVU));
 1428     const SCEVAddRecExpr *IVSCEV =
 1429         cast<SCEVAddRecExpr>(SE->getSCEV(DRS.BaseInst));
lib/Transforms/Scalar/LoopStrengthReduce.cpp
  407   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
  407   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
  475   const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg);
  475   const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg);
  484         return isa<const SCEVAddRecExpr>(S) &&
  485                (cast<SCEVAddRecExpr>(S)->getLoop() == &L);
  513   const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg);
  513   const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg);
  517                        return isa<const SCEVAddRecExpr>(S) &&
  518                               (cast<SCEVAddRecExpr>(S)->getLoop() == &L);
  630 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) {
  633   return isa<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy));
  690   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) {
  690   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) {
  757   } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  757   } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  783   } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  783   } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  883 static bool isExistingPhi(const SCEVAddRecExpr *AR, ScalarEvolution &SE) {
  955   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
  955   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
 1220   if (const auto *S = dyn_cast<SCEVAddRecExpr>(Reg))
 1220   if (const auto *S = dyn_cast<SCEVAddRecExpr>(Reg))
 1238   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) {
 1238   if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) {
 2116     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(PH));
 2116     const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(PH));
 2301   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(IV);
 2301   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(IV);
 2666       if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
 2666       if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
 2725       if (const SCEVAddRecExpr *AR =
 2726           dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Oper))) {
 2794     return getExprBase(cast<SCEVAddRecExpr>(S)->getStart());
 2958     if (!isa<SCEVAddRecExpr>(LastIncExpr))
 3502   } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
 3502   } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) {
 3511     if (Remainder && (AR->getLoop() == L || !isa<SCEVAddRecExpr>(Remainder))) {
 3549   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S);
 3549   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S);
 3814     if (auto *GAR = dyn_cast<SCEVAddRecExpr>(G)) {
 3993       const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Base.BaseRegs[i]);
 3993       const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Base.BaseRegs[i]);
 4770         if (isa<SCEVAddRecExpr>(BaseReg))
 4778           if (isa<SCEVAddRecExpr>(ScaledReg))
lib/Transforms/Utils/LoopUnrollPeel.cpp
  204     if (!isa<SCEVAddRecExpr>(LeftSCEV)) {
  205       if (isa<SCEVAddRecExpr>(RightSCEV)) {
  212     const SCEVAddRecExpr *LeftAR = cast<SCEVAddRecExpr>(LeftSCEV);
  212     const SCEVAddRecExpr *LeftAR = cast<SCEVAddRecExpr>(LeftSCEV);
lib/Transforms/Utils/SimplifyIndVar.cpp
  833   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S);
  833   const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S);
tools/polly/include/polly/Support/SCEVAffinator.h
  104   PWACtx visitAddRecExpr(const llvm::SCEVAddRecExpr *E);
tools/polly/lib/Analysis/ScopDetection.cpp
  872         if (auto *AF2 = dyn_cast<SCEVAddRecExpr>(Op))
tools/polly/lib/Analysis/ScopInfo.cpp
 1402   const SCEV *visitAddRecExpr(const SCEVAddRecExpr *E) {
 1436     if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(E)) {
tools/polly/lib/Support/SCEVAffinator.cpp
  169     auto *AddRec = dyn_cast<SCEVAddRecExpr>(CachedPair.first.first);
  387 PWACtx SCEVAffinator::visitAddRecExpr(const SCEVAddRecExpr *Expr) {
tools/polly/lib/Support/SCEVValidator.cpp
  227   class ValidatorResult visitAddRecExpr(const SCEVAddRecExpr *Expr) {
  538     if (auto AddRec = dyn_cast<SCEVAddRecExpr>(S)) {
  564     if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S))
  564     if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S))
  719   auto *AddRec = dyn_cast<SCEVAddRecExpr>(S);
tools/polly/lib/Support/ScopHelper.cpp
  385   const SCEV *visitAddRecExpr(const SCEVAddRecExpr *E) {
unittests/Analysis/ScalarEvolutionTest.cpp
  537     auto *S0 = cast<SCEVAddRecExpr>(SE.getSCEV(&I0));
  544     auto *S1 = cast<SCEVAddRecExpr>(SE.getSCEV(&I1));
 1188   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
 1188   const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(S);
 1901     return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, L, SCEV::FlagAnyWrap));
 1912     return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, L, SCEV::FlagAnyWrap));
 1923     return cast<SCEVAddRecExpr>(SE.getAddRecExpr(Ops, L, SCEV::FlagAnyWrap));
utils/unittest/googletest/include/gtest/gtest-message.h
  116   inline Message& operator <<(const T& val) {
utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   37   return StreamSwitch<T>::printable(V);
   54   const T& V;
   55   friend std::ostream &operator<<(std::ostream &S, const RawStreamProxy<T> &V) {
   69   static const RawStreamProxy<T> printable(const T &V) { return {V}; }
   69   static const RawStreamProxy<T> printable(const T &V) { return {V}; }