https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89789
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- OK, so we oscillate for # vh_5 = PHI <vh_12(3), vh_8(D)(2)> vh_12 = vh_8(D) ^ vh_5; where vh_8(D) is undefined. First we get zero (vh_8 ^ vh_8) then we get, with vh_5 == 0 (UNDEF meet 0) we get vh_8(D) and so on. The issue is the vh_5 lattice changes UNDEF -> constant -> UNDEF where we shouldn't go back to UNDEF but to VARYING.