1 /* { dg-do compile } */
2 /* { dg-options "-fdump-tree-gimple" } */
f1(int a,int b,int c,int d)3 int f1(int a,int b,int c,int d)
4 {
5   return ((a&d)|(b&c)) ^ (b&c);
6 }
7 
f2(int a,int b,int c,int d)8 int f2(int a,int b,int c,int d)
9 {
10   return (b&c) ^ ((a&d)|(b&c));
11 }
12 
f3(int a,int b,int c,int d)13 int f3(int a,int b,int c,int d)
14 {
15   return ((b&c)|(a&d)) ^ (b&c);
16 }
17 
f4(int a,int b,int c,int d)18 int f4(int a,int b,int c,int d)
19 {
20   return (b&c) ^ ((b&c)|(a&d));
21 }
22 
23 /* There should be no ^, 4 ~ and 12 &. */
24 /* { dg-final { scan-tree-dump-times "\\^" 0 "gimple"} } */
25 /* { dg-final { scan-tree-dump-times "~" 4 "gimple"} } */
26 /* { dg-final { scan-tree-dump-times "&" 12 "gimple"} } */
27