https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89324
--- Comment #3 from Matthew Malcomson <matmal01 at gcc dot gnu.org> --- (In reply to ktkachov from comment #2) > The sub<mode>3_compare1_imm pattern was introduced for GCC 9. It's probably > something going wrong with the constraints. Matthew, could you take a look > please? On first blush it looks like the define_peephole2 generating this instruction allows the stack pointer while the 'r' constraint in the pattern doesn't accept it. A quick check of only allowing GENERAL_REGS registers in the peephole indeed stops the generation of this instruction and hence avoids the bug. I haven't yet checked whether the pattern should allow the stack pointer or not.