1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3
4 int test1(unsigned int x, unsigned int y)
5 {
6 #if __SIZEOF_INT__ == 4
7 unsigned int r1 = (x << 16) | (x >> 16);
8 unsigned int r2 = (y << 16) | (y >> 16);
9 return r1 == r2;
10 #else
11 return x == y;
12 #endif
13 }
14
15 int test2(unsigned int x)
16 {
17 #if __SIZEOF_INT__ == 4
18 unsigned int r1 = (x << 16) | (x >> 16);
19 return r1 == 12345;
20 #else
21 return x == 12345;
22 #endif
23 }
24
25 int test3(unsigned int x)
26 {
27 #if __SIZEOF_INT__ == 4
28 unsigned int r1 = (x << 16) | (x >> 16);
29 return r1 == 0;
30 #else
31 return x == 0;
32 #endif
33 }
34
35 int test4(unsigned int x)
36 {
37 #if __SIZEOF_INT__ == 4
38 unsigned int r1 = (x << 16) | (x >> 16);
39 return r1 == ~0;
40 #else
41 return x == ~0;
42 #endif
43 }
44
45 /* { dg-final { scan-tree-dump-times "r>>" 0 "optimized" } } */
46