https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85529
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Reassoc does <bb 4> [local count: 530374774]: - # b.9_28 = PHI <b.9_48(13), prephitmp_59(9)> + # b.9_28 = PHI <b.9_48(12), prephitmp_59(8)> # RANGE [-83, 1] NONZERO 173 - # k_32 = PHI <k_47(13), k_12(9)> - # c_lsm.11_10 = PHI <pretmp_22(13), c_lsm.11_6(9)> - # c_lsm.12_24 = PHI <0(13), c_lsm.12_25(9)> + # k_32 = PHI <k_47(12), k_12(8)> + # c_lsm.11_10 = PHI <pretmp_22(12), c_lsm.11_6(8)> + # c_lsm.12_24 = PHI <0(12), c_lsm.12_25(8)> _4 ={v} s.a; # RANGE [-2147483647, 2147483647] _42 = b.9_28 + 1; - if (k_32 >= 0) - goto <bb 5>; [26.46%] - else - goto <bb 9>; [73.54%] - - <bb 5> [local count: 140323371]: - # RANGE [0, 1] NONZERO 1 _5 = (int) k_32; - # RANGE [0, 4] NONZERO 4 _20 = _5 << 2; - # RANGE [0, 4] NONZERO 4 iftmp.0_44 = (char) _20; - if (k_32 < iftmp.0_44) - goto <bb 6>; [84.48%] + _14 = (unsigned char) k_32; + _8 = (unsigned char) iftmp.0_44; + if (_8 > _14) likely the reset_flow_sensitive_info_in_bb call is too late for the simplification bits it does.