https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92796
--- Comment #7 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- (In reply to Peter Bergner from comment #6) > > Vlad (or Jeff), can you point me to where this is supposed to be handled? > I don't think I see where LRA verifies the reg_renumber[regno] values are > still > valid with respect to the new pattern constraints for the insns that are > modified by spilling. > > lra_reg_info[133].conflict_hard_regs does contain 66, so LRA knows it > conflicts > with reg 66, but it never seems to use that information as a sign that pseudo > 133 needs reassigning. A very interesting case, Peter. I reproduced the case too. I can take it from here if you don't mind. The solution I see for this problem is to check that if we change operand constraint from IN to INOUT when we change insn alternative then we reconsider all conflicts for pseudos already assigned to hard registers.