https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101145
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed| |2021-06-21 Keywords| |missed-optimization CC| |amker at gcc dot gnu.org, | |guojiufu at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- This comes up with a pending patch to split loops like void foo (int *a, int *b, unsigned l, unsigned n) { while (++l != n) a[l] = b[l] + 1; } into while (++l > n) a[l] = b[l] + 1; while (++l < n) a[l] = b[l] + 1; since for the second loop (the "usual" case involving no wrapping of the IV) this results in affine IVs and thus analyzable data dependence.