Index: lib/Analysis/ScalarEvolutionExpander.cpp =================================================================== --- lib/Analysis/ScalarEvolutionExpander.cpp +++ lib/Analysis/ScalarEvolutionExpander.cpp @@ -1273,6 +1273,11 @@ if (!SE.dominates(Step, L->getHeader())) { PostLoopScale = Step; Step = SE.getConstant(Normalized->getType(), 1); + if (!PostLoopOffset) { + // otherwise, Start is known to already be a constant zero + PostLoopOffset = Start; + Start = SE.getConstant(Normalized->getType(), 0); + } Normalized = cast(SE.getAddRecExpr( Start, Step, Normalized->getLoop(),