https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114151
--- Comment #3 from Tamar Christina <tnfchris at gcc dot gnu.org> --- > > This was a correctness fix btw, so I'm not sure we can easily recover - we > could try using niter information for CHREC_VARIABLE but then there's > variable niter here so I don't see a chance. > It looks like it's mostly SVE suffering here. Adv. SIMD an scalar codegen seems to have vastly improved with it. we see ~10% improvements due to better addressing for scalar. It also only happens at -O3 but -O2 is fine, which is weird as I was expected IVopts to be enabled at -O2 too. > > OTOH the +1 could make it overflow for large size. > > Can you test the above? It should be an incremental improvement. > Applying the changes does not seem to make a difference for the final codegen :(