libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / bitint-100.c
blobe859bfba6b86aeada2e3458b6282c6225b114a44
1 /* PR tree-optimization/113466 */
2 /* { dg-do compile { target bitint575 } } */
3 /* { dg-options "-O2" } */
5 int foo (int);
7 __attribute__((returns_twice, noipa)) _BitInt(325)
8 bar (_BitInt(575) x)
10 (void) x;
11 return 0wb;
14 __attribute__((returns_twice, noipa)) _BitInt(325)
15 garply (_BitInt(575) x, _BitInt(575) y, _BitInt(575) z, int u, int v, _BitInt(575) w)
17 (void) x;
18 (void) y;
19 (void) z;
20 (void) u;
21 (void) v;
22 (void) w;
23 return 0wb;
26 _BitInt(325)
27 baz (_BitInt(575) y)
29 foo (1);
30 return bar (y);
33 _BitInt(325)
34 qux (int x, _BitInt(575) y)
36 if (x == 25)
37 x = foo (2);
38 else if (x == 42)
39 x = foo (foo (3));
40 return bar (y);
43 void
44 corge (int x, _BitInt(575) y, _BitInt(325) *z)
46 void *q[] = { &&l1, &&l2, &&l3, &&l3 };
47 if (x == 25)
49 l1:
50 x = foo (2);
52 else if (x == 42)
54 l2:
55 x = foo (foo (3));
57 l3:
58 *z = bar (y);
59 if (x < 4)
60 goto *q[x & 3];
63 _BitInt(325)
64 freddy (int x, _BitInt(575) y)
66 bar (y);
67 ++y;
68 if (x == 25)
69 x = foo (2);
70 else if (x == 42)
71 x = foo (foo (3));
72 return bar (y);
75 _BitInt(325)
76 quux (_BitInt(575) x, _BitInt(575) y, _BitInt(575) z)
78 _BitInt(575) w = x + y;
79 foo (1);
80 return garply (x, y, z, 42, 42, w);
83 _BitInt(325)
84 grault (int x, _BitInt(575) y, _BitInt(575) z)
86 _BitInt(575) v = x + y;
87 _BitInt(575) w = x - y;
88 if (x == 25)
89 x = foo (2);
90 else if (x == 42)
91 x = foo (foo (3));
92 return garply (y, z, v, 0, 0, w);
95 _BitInt(325)
96 plugh (int x, _BitInt(575) y, _BitInt(575) z, _BitInt(575) v, _BitInt(575) w)
98 garply (y, z, v, 1, 2, w);
99 ++y;
100 z += 2wb;
101 v <<= 3;
102 w *= 3wb;
103 if (x == 25)
104 x = foo (2);
105 else if (x == 42)
106 x = foo (foo (3));
107 return garply (y, z, v, 1, 2, w);