https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104196
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a new testcase where we have the same IR (including the range) in GCC 11.2.0 and the trunk: int a = 6; int main() { for (;;) { int c = 111; if (a < 0) c = 1; else goto t; c = -__INT_MAX__ - a; int b = a; int tt, ttt; tt = a != -2147479551; ttt = c == 1; tt = tt | ttt; if (!tt) continue; { t: if (a < 6) __builtin_abort (); ty: return 0; } } } It would be useful to run a bisect on this new one.