libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr96513.c
blob5ee040e96c8e966c35bdc1024cc278c68979a026
1 /* { dg-do compile } */
3 typedef struct {
4 short a;
5 short b;
6 } c;
7 c *d;
8 int e, f, i, j, k, l, m, n, o, p;
9 c g, h;
10 void q() {
11 do {
12 if (o) {
13 (*d).a = (*d).b = d[e].a = d[e].a * 3 + 1 >> 15;
14 d[e].b = d[e].b * 3 + 1 >> 15;
16 n = -(d[e].b * g.b) >> 5;
17 m = d[e].b * g.a + 1 >> 5;
18 l = d[f].a * -d[f].b * h.b + 1 >> 5;
19 k = d[f].a * h.b + d[f].b * h.a + 1 >> 5;
20 j = n + l;
21 i = m - k;
22 (*d).a += j;
23 d[e].a -= i;
24 ++d;
25 } while (--p);