https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106122
Roger Sayle <roger at nextmovesoftware dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2022-06-29 CC| |roger at nextmovesoftware dot com Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |roger at nextmovesoftware dot com --- Comment #2 from Roger Sayle <roger at nextmovesoftware dot com> --- Mine. Currently testing the (obvious) one line fix: diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 125a3b4..3b6f362 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -2588,7 +2588,8 @@ "optimize_insn_for_size_p () && optimize_size > 1 && operands[1] != const0_rtx && IN_RANGE (INTVAL (operands[1]), -128, 127) - && !ix86_red_zone_used" + && !ix86_red_zone_used + && REGNO (operands[0]) != SP_REG" [(set (match_dup 2) (match_dup 1)) (set (match_dup 0) (match_dup 3))] {