Various ranger-enabled patches like threading and VRP2 can do this now, so add the testcase for posterity.
gcc/testsuite/
PR tree-optimization/102648
* gcc.dg/pr102648.c: New.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O3 -fdump-tree-optimized" } */
+
+void foo();
+static char a, c;
+static int d, e;
+static short b(short f, short g) { return f * g; }
+int main() {
+ short h = 4;
+ for (; d;)
+ if (h)
+ if(e) {
+ if (!b(a & 1 | h, 3))
+ c = 0;
+ h = 1;
+ }
+ if (c)
+ foo();
+}
+
+/* { dg-final { scan-tree-dump-not "foo" "optimized" } } */