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

--- Comment #8 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Uroš Bizjak from comment #5)

> To solve the presented problem for x86, we should prevent combinations
> where any of two memory operands is volatile. So, just add:
> 
> !(MEM_P (operands[0]) && MEM_P (operands[1])
>   && (MEM_VOLATILE_P (operands[0]) || MEM_VOLATILE_P (operands[1])))
We can also leave to RA to resolve VMEM/MEM combinations, which results in
a simplified expression that rejects only VMEM/VMEM combo:

!(MEM_P (operands[0]) && MEM_P (operands[1])
  && MEM_VOLATILE_P (operands[0]) && MEM_VOLATILE_P (operands[1]))

Reply via email to