https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85822
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- _2 = x.0_1 & -281474976710656; if (_2 == -281474976710656) goto <bb 5>; [20.24%] [...] x.0_11 = ASSERT_EXPR <x.0_1, (unsigned long) x.0_1 + 281474976710656 <= 281474976710655>; x.0_12 = ASSERT_EXPR <x.0_11, x.0_11 <= -281474976710656>; x.0_13 = ASSERT_EXPR <x.0_12, x.0_12 >= -1>; y_7 = (unsigned intD.9) x.0_13; Those ASSERT_EXPR look strange, possibly the last 2 inequalities are inverted.