https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111000
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-08-13 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed, changed to make it self contained testcase and maybe understand what is going wrong: ``` int printf(const char *, ...); volatile int a = 68; int b, d, e; int main() { int t = a; for (; d <= 6; d++) { for (b = 0; b <= 6; b++) { if (t >= 31) e = d; else if (d > (647 >> t)) e = d; else e = 0; } } printf("%d\n", e); if (e != 6) __builtin_abort(); } ```