PR debug/48204
[official-gcc.git] / gcc / testsuite / gcc.dg / pr46614.c
blob8e757803ef4bede1c948ad0d1fc8a35e319e9b0c
1 /* PR rtl-optimization/46614 */
2 /* { dg-do run } */
3 /* { dg-options "-O -fno-rename-registers -fsched2-use-superblocks -fschedule-insns2 -funroll-loops" } */
5 extern void abort (void);
7 struct S
9 unsigned char a;
10 unsigned char b;
11 unsigned int c;
12 unsigned int e;
13 unsigned char f;
14 unsigned int g;
17 void bar (struct S *x)
19 int i;
20 struct S *p = x;
21 struct S r[16];
22 unsigned j;
23 for (i = 0; i < 16; i++)
25 r[i].c = p->b + p->c;
26 j = p->c + p->f;
27 r[i].a = j + p->b;
28 r[i].f = p->f + p->e;
29 r[i].g = p->b + p->c;
31 for (i = 0; i < 16; i++)
33 if (r[i].c != x[i].b + x[i].c
34 || r[i].a != x[i].c + x[i].f + x[i].b
35 || r[i].f != x[i].f + x[i].e
36 || r[i].g != x[i].b + x[i].c)
37 abort ();
39 for (i = 0; i < 16; i++)
41 r[i].b = p->c;
42 if (r[i].b != x[i].c)
43 abort ();
47 int
48 main ()
50 int i;
51 struct S x[16];
52 for (i = 0; i < 16; i++)
53 x[i].b = x[i].c = x[i].e = x[i].f = 5;
54 bar (x);
55 return 0;