1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
/* PR tree-optimization/113466 */
/* { dg-do compile { target bitint575 } } */
/* { dg-options "-O2" } */
int foo (int);
__attribute__((returns_twice, noipa)) _BitInt(325)
bar (_BitInt(575) x)
{
(void) x;
return 0wb;
}
__attribute__((returns_twice, noipa)) _BitInt(325)
garply (_BitInt(575) x, _BitInt(575) y, _BitInt(575) z, int u, int v, _BitInt(575) w)
{
(void) x;
(void) y;
(void) z;
(void) u;
(void) v;
(void) w;
return 0wb;
}
_BitInt(325)
baz (_BitInt(575) y)
{
foo (1);
return bar (y);
}
_BitInt(325)
qux (int x, _BitInt(575) y)
{
if (x == 25)
x = foo (2);
else if (x == 42)
x = foo (foo (3));
return bar (y);
}
void
corge (int x, _BitInt(575) y, _BitInt(325) *z)
{
void *q[] = { &&l1, &&l2, &&l3, &&l3 };
if (x == 25)
{
l1:
x = foo (2);
}
else if (x == 42)
{
l2:
x = foo (foo (3));
}
l3:
*z = bar (y);
if (x < 4)
goto *q[x & 3];
}
_BitInt(325)
freddy (int x, _BitInt(575) y)
{
bar (y);
++y;
if (x == 25)
x = foo (2);
else if (x == 42)
x = foo (foo (3));
return bar (y);
}
_BitInt(325)
quux (_BitInt(575) x, _BitInt(575) y, _BitInt(575) z)
{
_BitInt(575) w = x + y;
foo (1);
return garply (x, y, z, 42, 42, w);
}
_BitInt(325)
grault (int x, _BitInt(575) y, _BitInt(575) z)
{
_BitInt(575) v = x + y;
_BitInt(575) w = x - y;
if (x == 25)
x = foo (2);
else if (x == 42)
x = foo (foo (3));
return garply (y, z, v, 0, 0, w);
}
_BitInt(325)
plugh (int x, _BitInt(575) y, _BitInt(575) z, _BitInt(575) v, _BitInt(575) w)
{
garply (y, z, v, 1, 2, w);
++y;
z += 2wb;
v <<= 3;
w *= 3wb;
if (x == 25)
x = foo (2);
else if (x == 42)
x = foo (foo (3));
return garply (y, z, v, 1, 2, w);
}
|