https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113354
Vladimir Makarov <vmakarov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at gcc dot gnu.org --- Comment #2 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- Thank you for reporting this. The issue is not in the patch itself. The patch simply triggered a hidden bug. The insn in the question looks like 1657: {r3001:SI=r291:SI*r294:SI+r3002:SI;clobber r2788:SI;clobber r2390:SI;} On the 1st subpass we choose alternative with the following constraints (0) l (1) d (2) d (3) l (4) X (5) X {*mul_acc_si} On the second subpass we choose alternative (0) l (1) d (2) d (3) l (4) X (5) X {*mul_acc_si} p2788 happened to get MD0 and it prevents p3001 to get MD0 too. p2788 can be in any location for this alternative but LRA assignment subpass does not take this into account. I'll try to fix this hidden bug on the beginning of the next week.