https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110941
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-08-08 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- # RANGE [irange] unsigned int [0, 16][20, 20][24, 24][65532, 4294901776][4294967293, +INF] MASK 0xfffffffc VALUE 0x0 # ivtmp.18_37 = PHI <ivtmp.18_38(8), 24(2)> # RANGE [irange] unsigned short [0, +INF] MASK 0xfffc VALUE 0xfffc _21 = (unsigned short) ivtmp.18_37; if (_21 <= 24) Confirmed. The range for _21 is way to conserative. It should have been: `[0, 16][20, 20][24, 24]`.