https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #297 from Kazumoto Kojima <kkojima at gcc dot gnu.org> --- (In reply to Oleg Endo from comment #296) > This sounds almost logical and easy to understand. > > > Adding explicit emit_clobber R4-R6 looks better than this to me, though. > > Having to use the "emit_clobber" when instantiating that pattern might be > easy to forget. It's easier to deal with it when it's all contained in one > place. Ideally a single 'emit_insn' should suffice, IMHO. Indeed. > > && 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.