https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104986
--- Comment #7 from Andrew Macleod <amacleod at redhat dot com> --- and I forgot to show to dom3 output which did the transformation: j.c.195t.dom3:Match-and-simplified (sizetype) nb_66 to 18446744073709551615 j.c.195t.dom3:Optimizing statement _2 = (sizetype) nb_66; j.c.195t.dom3: Replaced 'nb_66' with constant '-1' j.c.195t.dom3: nb_66 = -1; but for whatever reason it could not reduce nb_58 to anything better than [-1, 0] nb_58 = prephitmp_30 + -5; Intersecting int [-1, 0] and int [-1, 4] to int [-1, 0]