https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101882

--- Comment #15 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
(In reply to Segher Boessenkool from comment #14)
>                   (match_operand:DI 1 "register_operand" "r0")
> 
> That means either a general register ("r"), or the same thing as operand 0
> (that's what "0" means)!
> 
> So the backend explicitly allows it here.

The problem is operand 4 does not have "0", and it's also assigned the hard
register r23.  It's fine for operand 0 and 1 to be the same, also for operand 1
and 4 to be the same, but operand 0 and 4 cannot be same.  Thus this combine
breaks the code.

Reply via email to