https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82187
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- PRE thinks we are creating a loop-carried dependence that might prevent vectorization (which is enabled at -O3) thus it doesn't perform the transform. So it's a feature ...