https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120283
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |93006 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- I forgot to say this comes from gcc.dg/tree-ssa/vrp89.c . Reduced down to: ``` void g(); void foo (unsigned int a, unsigned *b) { a &= 63; a += 3; *b = a; if (a == 0) g(); } ``` Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93006 [Bug 93006] Better code with a-- == 0 rather than --a == -1