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

--- Comment #300 from Oleg Endo <olegendo at gcc dot gnu.org> ---
(In reply to Kazumoto Kojima from comment #297)
> 
> > >   && REG_P (operands[2]) && REGNO (operands[2]) == R4_REG
> > >   && REG_P (operands[3]) && REGNO (operands[3]) == R5_REG
> > >   && REG_P (operands[4]) && REGNO (operands[4]) == R6_REG"
> > 
> > Out of curiousity, why are these checks needed?
> 
> Otherwise, operands[2-4] can be replaced by another register. I've seen that
> in some cases.

So the checks fail the pattern match unless all hard regs are in place and so
if something tries to change the reg operands in the insn it will fail and will
stay put?  Is that what's happening there?

Reply via email to