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).

Reply via email to