1/* PR middle-end/63568 */
2/* { dg-do compile } */
3/* { dg-options "-O -fdump-tree-cddce1" } */
4
5int
6fn1 (int a, int b, int m)
7{
8  int tem1 = a & ~m;
9  int tem2 = b & m;
10  return tem1 | tem2;
11}
12
13int
14fn2 (int a, int b, int m)
15{
16  int tem1 = a & ~m;
17  int tem2 = m & b;
18  return tem1 | tem2;
19}
20
21int
22fn3 (int a, int b, int m)
23{
24  int tem1 = ~m & a;
25  int tem2 = m & b;
26  return tem1 | tem2;
27}
28
29int
30fn4 (int a, int b, int m)
31{
32  int tem1 = ~m & a;
33  int tem2 = b & m;
34  return tem1 | tem2;
35}
36
37int
38fn5 (int a, int b, int m)
39{
40  int tem1 = b & m;
41  int tem2 = a & ~m;
42  return tem1 | tem2;
43}
44
45int
46fn6 (int a, int b, int m)
47{
48  int tem1 = m & b;
49  int tem2 = a & ~m;
50  return tem1 | tem2;
51}
52
53int
54fn7 (int a, int b, int m)
55{
56  int tem1 = m & b;
57  int tem2 = ~m & a;
58  return tem1 | tem2;
59}
60
61int
62fn8 (int a, int b, int m)
63{
64  int tem1 = b & m;
65  int tem2 = ~m & a;
66  return tem1 | tem2;
67}
68
69/* { dg-final { scan-tree-dump-not " \\| " "cddce1" } } */
70/* { dg-final { cleanup-tree-dump "original" } } */
71