https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95643
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- After FRE1 we have _2 = x_9(D) == 0; if (_2 != 0) so we assert things for _2 and not x_9, and we lose the __builtin_unreachable information in CCP2.