https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110117
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This was "fixed" by r14-1534-g908e5ab5c11c64 as we don't have a nonzero bits on _5 in : # RANGE [irange] int [-2147483647, +INF] _4 = 0; _5 = _4 & 1; _39 = _5 != 0; Since we don't have a non-zero bits we don't look back at the TER to see it was &1 and we don't call into expand_single_bit_test . I am still going to fix expand_single_bit_test to do the correct thing for const_int but we no longer ICEs in the original testcase.