[Bug tree-optimization/63202] tree vectorizer does not make use of alignment information from VRP/CCP

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 8 08:38:00 GMT 2014


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

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Well, as with restrict it would be nice to be able to annotate the memory
references themselves with alignment info.

Btw, a possibility would be to insert assume_aligned calls into the IL
from the

 if (p & 15)
   __builtin_unreachable ();

pattern and remove the test & __builtin_unreachable ().

Of course quite special and breaks down for assume (!(p & 15) && a == b).

As Jakub said, the testcase can be handled with the existing code as
there is no use of p before the conditional.

Note that there isn't an extra loop for the "unaligned" case but
the extra loop is for the case where there is aliasing between
p and b.

But yes, we fail to use aligned loads here (but movdqu doesn't have a
penalty for that).



More information about the Gcc-bugs mailing list