https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66678
--- Comment #5 from rguenther at suse dot de <rguenther at suse dot de> --- On Wed, 9 Aug 2023, pinskia at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66678 > > --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- > So in GCC 12+ after evrp > # RANGE [0, 4294967294] NONZERO 4294967295 > _1 = (long unsigned intD.16) i_9; > # RANGE [0, 17179869176] NONZERO 17179869180 > _2 = _1 * 4; > ... > # RANGE [1, 4294967295] > i_17 = i_9 + 1; > > So maybe this has been fix ... Note with ranger there's a regression WRT loop IVs not handled by SCEV because it no longer iterates.