https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62079
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, so this is if-after-reload which calls loop_optimizer_init on a CFG with an unreachable block. Thus we miss a cfg-cleanup somewhere. Note that regular ifcvt runs a cleanup_cfg (CLEANUP_EXPENSIVE), but not if-after-combine or if-after-reload. It's peephole2 that ends up with this bogus CFG. Passes leaving dangling unreachable blocks should fix that up.