https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65851
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- We are transitioning from known-bits (likely alignment) to an invariant (thus constant). Most of the cases this happens because of too weak UNDEFINED handling. I suppose we should finally punt in making that "correct" and simply drop that lattice transition... (we already to sth similar for known-bits to known-bits). The assert is really there to catch this kind of missed optimizations, in theory we can just reject invalid transitions...