On 5/7/2021 10:26 AM, Andrew Stubbs wrote:
A recent patch from Alexandre added new calls to emit_move_insn with
PLUS expressions in the operands. Apparently this works fine on (at
least) x86_64, but fails on (at least) amdgcn, where the adddi3 patten
has clobbers that the movdi3 does not. This results in ICEs in recog.
This patch inserts force_operand around the problem cases so that it
only creates valid move instructions.
I've done a regression test on amdgcn and everything works again [*].
OK to commit?
Andrew
[*] Well, once I fix a new, unrelated TImode issue it does anyway.
210507-fix-try-store.patch
Ensure emit_move_insn operands are valid
Some architectures are fine with PLUS in move instructions, but others
are not (amdgcn is the motivating example).
gcc/ChangeLog:
PR target/100418
* builtins.c (try_store_by_multiple_pieces): Use force_operand for
emit_move_insn operands.
OK. I've had the equivalent here, but hadn't submitted it yet.
jeff