https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102842
--- Comment #16 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-10 branch has been updated by Vladimir Makarov <vmaka...@gcc.gnu.org>: https://gcc.gnu.org/g:b7faffdb05aea6448b62b5d3b13009fc68dd103b commit r10-10251-gb7faffdb05aea6448b62b5d3b13009fc68dd103b Author: Vladimir N. Makarov <vmaka...@redhat.com> Date: Tue Oct 26 14:03:42 2021 -0400 [PR102842] Consider all outputs in generation of matching reloads Without considering all output insn operands (not only processed before), in rare cases LRA can use the same hard register for different outputs of the insn on different assignment subpasses. The patch fixes the problem. gcc/ChangeLog: PR rtl-optimization/102842 * lra-constraints.c (match_reload): Ignore out in checking values of outs. (curr_insn_transform): Collect outputs before doing reloads of operands. gcc/testsuite/ChangeLog: PR rtl-optimization/102842 * g++.target/arm/pr102842.C: New test.