https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109637
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Macleod from comment #3) > we know the range of _2 is [0, 3].. wonder why we don't know that about > _1... having a look I assume the range of _1 is [-INF, +INF] (aka [0, 3] aka varrying) really as _1 has a type of unnamed-unsigned:2 so it would cover the whole range of the type.