On 12/2/24 8:52 AM, Andreas Schwab wrote:
The movdi, movdf and movxf patterns allow both operands to be offsettable memory, but output_move_double cannot handle overlapping objects. This is visible in the failure of gcc.c-torture/execute/pr97073.c when compiled with LTO (where cprop optimizes out the AND operation; the failure also occurs without LTO when the AND is removed). Split the constraints so that the operands cannot both be "o" in the same insn. * config/m68k/m68k.md (movdi+1, movdf+1, movxf+2): Split constraints so that the operands cannot both be "o".
Thanks for taking care of this stuff! jeff