https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118804
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (e)VRP can handle the non-constant case already too: ``` bool bar (int x, int y, int z) { if (x == y) return true; if (x == z) if (y == z) return true; return f(x,y); } ``` Though not like: ``` bool bar (int x, int y, int z) { if (x == y) return true; if (x == z && y == z) return true; return f(x,y); } ```