https://gcc.gnu.org/bugzilla/show_bug.cgi?id=20514
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > Two things, we just don't jump thread. The testcase in comment #2 works correctly on the trunk: <bb 2> [15.0%]: i_lsm.3_8 = i; switch (i_lsm.3_8) <default: <L13> [15.0%], case 5: <L10> [85.0%]> <L10> [85.0%]: i = 4; <L13> [15.0%]: return 0; That is no loop.