https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100794

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
There's predictive commoning which can do similar transforms and runs after
vectorization.  It might be it doesn't handle these "simple" cases or that
loop dependence info is not up to the task there.

Another option is to avoid the PRE guard with the (very) cheap cost model
at the expense of not vectorizing affected loops.

So it's just one of those classical phase ordering issues that you can
try to squash with running passes over and over again ...

Reply via email to