https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112096
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Another testcase: ``` int f(int a, int b, int d) { bool t = a == 0; bool t1 = d == 0; int c = a + b; if (t & t1) return b; return c; } int f1(int a, int b, int d) { bool t = a == 0; bool t1 = d == 43; int c = a + b; if (t & t1) return b; return c; } ``` I have a patch which handles this one. I have to check on the != cases next.