https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109893
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- # j_10 = PHI <0B(4), &e(6)> ... _21 = j_10 == 0B; _22 = j_10 == &e; _23 = _21 | _22; The only pass which is able to optmize the above is pre. That is take: ``` int e; void g(); int f(int a, int b) { int *t; if (a) t = 0; else t = &e; if (b) g(); int t1 = t == 0; int t2 = t == &e; return t1|t2; } ```