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.

Reply via email to