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

--- Comment #12 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Peter Cordes from comment #10)

> It also bizarrely uses it for VMOVSS, which gcc should only emit if it
> actually wants to merge (right?).  *If* this part of the patch isn't a bug
> 
> -         return "vmovss\t{%1, %0, %0|%0, %0, %1}";
> +         return "vmovss\t{%d1, %0|%0, %d1}";
>  
> then even better would be vmovaps %1, %0 (which can benefit from
> mov-elimination, and doesn't need a port-5-only ALU uop.)  Same for vmovsd
> of course.

This is actually overridden in mode calculations, where it is disabled for
TARGET_SSE_PARTIAL_REG_DEPENDENCY targets.

Reply via email to