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",