http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59163

--- Comment #11 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #10)
> For stores I think the patch already allows that, that is the
>   if (GET_CODE (*x) == SET && &SET_DEST (*x) == data)
>     return 1;
> in there (the reason why I've added it was that for the misaligned store
> insns
> with UNSPEC_STOREU the misaligned MEM is in SET_DEST and SET_SRC just
> contains some rtl with UNSPEC_STOREU embedded somewhere in it.
> So, would you like:
>   if (GET_CODE (*x) == SET && (&SET_DEST (*x) == data || &SET_SRC (*x) ==
> data))
>     return 1;
> ?  That would IMHO handle simple loads from misaligned MEM too.

Yes. Perhaps also special case sse4.2 string instructions (they can operate on
unaligned data, too), and the patch covers everything.

Reply via email to