https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109564
--- Comment #12 from Richard Biener <rguenth at gcc dot gnu.org> --- Completely scrapping PHI equivalences will cause FAIL: gcc.dg/pr102648.c scan-tree-dump-not optimized "foo" FAIL: gcc.dg/pr103359.c scan-tree-dump-not evrp "c = 0" FAIL: gcc.dg/tree-ssa/evrp-ignore.c scan-tree-dump-not evrp "kill" FAIL: gcc.dg/tree-ssa/vrp06.c scan-tree-dump-times vrp1 "Folding predicate i_[0-9]+.*j_[0-9]+.* to 0" 1 allowing all-equal PHI args doesn't make a difference. The vrp06.c case for example is bb5: if (0 != 0) bb6: i_16 = ...; bb7: # i_2 = PHI <i_10(D)(5), i_16(6)> where i_16 gets undefined_p (). The equivalence looks OK in this case. I'm not sure I completely understand the failure mode yet.