https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84777
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- IIRC the issue is that -Os inhibits most loop-header copying. Can you provide a testcase that shows the issue please? Can you check if the following patch fixes things for you? Index: gcc/tree-ssa-loop-ch.c =================================================================== --- gcc/tree-ssa-loop-ch.c (revision 258380) +++ gcc/tree-ssa-loop-ch.c (working copy) @@ -257,8 +257,7 @@ public: /* opt_pass methods: */ virtual bool gate (function *fun) { - return flag_tree_ch != 0 - && (flag_tree_loop_vectorize != 0 || fun->has_force_vectorize_loops); + return flag_tree_loop_vectorize != 0 || fun->has_force_vectorize_loops; } /* Just copy headers, no initialization/finalization of loop structures. */