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

Reply via email to