/* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-optimized" } */ int f(int a) { int b = a & 1; int c = b == 0; return c; } /* This should be optimized to just return `(a&1) ^ 1` or `(~a) & 1`. */ /* { dg-final { scan-tree-dump-not " == " "optimized"} } */ /* { dg-final { scan-tree-dump-times "~a" 1 "optimized"} } */ /* { dg-final { scan-tree-dump-times " & 1" 1 "optimized"} } */