https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85284
--- Comment #4 from amker at gcc dot gnu.org --- (In reply to Richard Biener from comment #3) > What triggers this somehow (still didn't get to the "wrong" parts) is that we > compute zero iterations for the conditional iteration of if _2 > 2. That's > of course wrong. We do that via derive_simple_iv_with_niters computing > {7, +, 7} with *niters == 0 which then is "merged" with the niters computed > by niter analysis of _that_ "simplified" IV computing _also_ zero. Which > then results in an always true assumption. > > So while I can't pin-point the exact wrongness it looks to me that we > cannot really take the number_of_iterations_cond niter result for > granted as it was computed under an assumption we are going to compute > with its result -- kind-of a catch 22. > > So it's tempting to special-case zero for *niter of simple_iv_with_niters > but I'm not sure the same issue wouldn't reproduce with random other > *niter? > > Bin? Sorry for the breakage, I will investigate this.