https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115120
--- Comment #5 from Tamar Christina <tnfchris at gcc dot gnu.org> --- considering ivopts bails out on doloop prediction for multiple exits anyway, what do you think about: diff --git a/gcc/tree-ssa-loop-ivcanon.cc b/gcc/tree-ssa-loop-ivcanon.cc index 5ef24a91917..d1b25ad7dea 100644 --- a/gcc/tree-ssa-loop-ivcanon.cc +++ b/gcc/tree-ssa-loop-ivcanon.cc @@ -1319,7 +1319,8 @@ canonicalize_loop_induction_variables (class loop *loop, if (create_iv && niter && !chrec_contains_undetermined (niter) - && exit && just_once_each_iteration_p (loop, exit->src)) + && exit && just_once_each_iteration_p (loop, exit->src) + && (single_dom_exit (loop) || targetm.predict_doloop_p (loop))) { tree iv_niter = niter; if (may_be_zero) richi?