Lines Matching defs:Step

939   const SCEV *Step = AR->getStepRecurrence(SE);
940 const SCEV *OpAfterExtend = SE.getAddExpr(SE.getSignExtendExpr(Step, WideTy),
943 SE.getSignExtendExpr(SE.getAddExpr(AR, Step), WideTy);
953 const SCEV *Step = AR->getStepRecurrence(SE);
954 const SCEV *OpAfterExtend = SE.getAddExpr(SE.getZeroExtendExpr(Step, WideTy),
957 SE.getZeroExtendExpr(SE.getAddExpr(AR, Step), WideTy);
1084 const SCEV *Step = Normalized->getStepRecurrence(SE);
1089 bool useSubtract = !ExpandTy->isPointerTy() && Step->isNonConstantNegative();
1091 Step = SE.getNegativeSCEV(Step);
1093 Value *StepV = expand(Step, L->getHeader()->getFirstInsertionPt());
1157 const SCEV *Step = Normalized->getStepRecurrence(SE);
1160 assert(SE.dominates(Step, L->getHeader()) && "Step not dominate loop header");
1205 !S->getType()->isPointerTy() && Step->isNonConstantNegative();
1207 Step = SE.getNegativeSCEV(Step);
1212 StepV = expand(Step, L->getHeader()->getFirstInsertionPt());
2106 const SCEV *Step = AR->getStepRecurrence(SE);
2113 // The expression {Start,+,Step} has nusw/nssw if
2114 // Step < 0, Start - |Step| * Backedge <= Start
2115 // Step >= 0, Start + |Step| * Backedge > Start
2116 // and |Step| * Backedge doesn't unsigned overflow.
2124 Value *StepValue = expand(Step, Loc);
2125 Value *NegStepValue = expand(SE.getNegativeSCEV(Step), Loc);
2132 // Compute |Step|
2136 // Compute |Step| * Backedge
2138 // 1. Start + |Step| * Backedge < Start
2139 // 2. Start - |Step| * Backedge > Start
2142 // negative. If Step is known to be positive or negative, only create
2146 if (!Signed && Start->isZero() && SE.isKnownPositive(Step))
2153 if (Step->isOne()) {
2154 // Special-case Step of one. Potentially-costly `umul_with_overflow` isn't
2168 bool NeedPosCheck = !SE.isKnownNegative(Step);
2169 bool NeedNegCheck = !SE.isKnownPositive(Step);
2194 // Select the answer based on the sign of Step.