https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111267
--- Comment #7 from Roger Sayle <roger at nextmovesoftware dot com> --- Very many thanks to Jeff Law for pointing me to fwprop. The following simple patch also fixes this regression. diff --git a/gcc/fwprop.cc b/gcc/fwprop.cc index 0c588f8..cbba44e 100644 --- a/gcc/fwprop.cc +++ b/gcc/fwprop.cc @@ -449,15 +449,6 @@ try_fwprop_subst_pattern (obstack_watermark &attempt, insn_ change &use_change, if (prop.num_replacements == 0) return false; - if (!prop.profitable_p ()) - { - if (dump_file && (dump_flags & TDF_DETAILS)) - fprintf (dump_file, "cannot propagate from insn %d into" - " insn %d: %s\n", def_insn->uid (), use_insn->uid (), - "would increase complexity of pattern"); - return false; - } - if (dump_file && (dump_flags & TDF_DETAILS)) { fprintf (dump_file, "\npropagating insn %d into insn %d, replacing:\n",