1 /* { dg-do compile } */
2 /* { dg-options "-O1 -fdump-tree-optimized" } */
3 
f(int x)4 int f(int x)
5 {
6   return ((~x) != 0);
7 }
f1(int x)8 int f1(int x)
9 {
10   return ((~x) == 0);
11 }
12 
13 /* There should be no != 0 which is produced by the front-end as
14    ~x != 0 is the same as x != -1 (or ~0).   Likewise for ==. */
15 /* { dg-final { scan-tree-dump-times "!= 0" 0 "optimized"} } */
16 /* { dg-final { scan-tree-dump-times "!= -1" 1 "optimized"} } */
17 /* { dg-final { scan-tree-dump-times "== 0" 0 "optimized"} } */
18 /* { dg-final { scan-tree-dump-times "== -1" 1 "optimized"} } */
19 
20 
21