https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87047
--- Comment #10 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Scaling costs by edge probabilities would also solve this issue, perhaps in a cleaner way. (to be clear: if speed_p, instead of taking the weird faux-minimum, add to original_cost the linear combination of then_bb/else_bb costs according to their relative probabilities; in this case we would take roughly 0.5*then_cost)