152
|
1 /* PR tree-optimization/94800 */
|
|
2 /* { dg-do compile { target { ilp32 || lp64 } } } */
|
|
3 /* { dg-options "-O2 -fdump-tree-optimized" } */
|
|
4 /* { dg-final { scan-tree-dump-times " \* 72340172838076673" 2 "optimized" } } */
|
|
5 /* { dg-final { scan-tree-dump-times " \* 16843009" 2 "optimized" } } */
|
|
6 /* { dg-final { scan-tree-dump-times " \* 289360691352306692" 2 "optimized" } } */
|
|
7 /* { dg-final { scan-tree-dump-times " \* 1229782938247303441" 2 "optimized" } } */
|
|
8 /* { dg-final { scan-tree-dump-not "<<" "optimized" } } */
|
|
9
|
|
10 unsigned long long int
|
|
11 foo (unsigned long long int x)
|
|
12 {
|
|
13 unsigned long long int a = x + (x << 8);
|
|
14 unsigned long long int b = a + (a << 16);
|
|
15 unsigned long long int c = b + (b << 32);
|
|
16 return c;
|
|
17 }
|
|
18
|
|
19 unsigned int
|
|
20 bar (unsigned int x)
|
|
21 {
|
|
22 unsigned int a = x + (x << 8);
|
|
23 unsigned int b = a + (a << 16);
|
|
24 return b;
|
|
25 }
|
|
26
|
|
27 unsigned long long int
|
|
28 baz (unsigned long long int x)
|
|
29 {
|
|
30 unsigned long long int a = (x << 2) + (x << 10);
|
|
31 unsigned long long int b = a + (a << 16);
|
|
32 unsigned long long int c = b + (b << 32);
|
|
33 return c;
|
|
34 }
|
|
35
|
|
36 unsigned long long int
|
|
37 qux (unsigned long long int x)
|
|
38 {
|
|
39 unsigned long long int a = x + (x << 4);
|
|
40 unsigned long long int b = a + (a << 8);
|
|
41 unsigned long long int c = b + (b << 16);
|
|
42 unsigned long long int d = c + (c << 32);
|
|
43 return d;
|
|
44 }
|
|
45
|
|
46 long long int
|
|
47 quux (long long int x)
|
|
48 {
|
|
49 long long int a = x + (x << 8);
|
|
50 long long int b = a + (a << 16);
|
|
51 long long int c = b + (b << 32);
|
|
52 return c;
|
|
53 }
|
|
54
|
|
55 int
|
|
56 corge (int x)
|
|
57 {
|
|
58 int a = x + (x << 8);
|
|
59 int b = a + (a << 16);
|
|
60 return b;
|
|
61 }
|
|
62
|
|
63 long long int
|
|
64 garply (long long int x)
|
|
65 {
|
|
66 long long int a = (x << 2) + (x << 10);
|
|
67 long long int b = a + (a << 16);
|
|
68 long long int c = b + (b << 32);
|
|
69 return c;
|
|
70 }
|
|
71
|
|
72 long long int
|
|
73 waldo (long long int x)
|
|
74 {
|
|
75 long long int a = x + (x << 4);
|
|
76 long long int b = a + (a << 8);
|
|
77 long long int c = b + (b << 16);
|
|
78 long long int d = c + (c << 32);
|
|
79 return d;
|
|
80 }
|