1/* { dg-do compile } */ 2/* { dg-options "-O2 -fdump-tree-original" } */ 3int test1(int a) 4{ 5 return !(a & 4); 6} 7 8int test2(int b) 9{ 10 return (b & 4) == 0; 11} 12 13int test3(int c) 14{ 15 return ((c & 4) ^ 4) != 0; 16} 17 18int test4(int d) 19{ 20 return ((d ^ 4) & 4) != 0; 21} 22 23int test5(int e) 24{ 25 return (~e & 4) != 0; 26} 27 28/* { dg-final { scan-tree-dump-times "\\(a \& 4\\) == 0" 1 "original" } } */ 29/* { dg-final { scan-tree-dump-times "\\(b \& 4\\) == 0" 1 "original" } } */ 30/* { dg-final { scan-tree-dump-times "\\(c \& 4\\) == 0" 1 "original" } } */ 31/* { dg-final { scan-tree-dump-times "\\(d \& 4\\) == 0" 1 "original" } } */ 32/* { dg-final { scan-tree-dump-times "\\(e \& 4\\) == 0" 1 "original" } } */ 33/* { dg-final { cleanup-tree-dump "original" } } */ 34