1 /* PR rtl-optimization/101260 */
2 /* { dg-do run { target s390_useable_hw } } */
3 /* { dg-options "-O1 -march=z14" } */
4
5 /* This used to fail with commit: 5dc1390b41d */
6
7 struct a
8 {
9 unsigned b:7;
10 int c;
11 int d;
12 short e;
13 } p, *q = &p;
14 int f, g, h, i, r, s;
15 static short j[8][1][6] = { };
16
17 char k[7];
18 short l, m;
19 int *n;
20 int **o = &n;
21 void
22 t ()
23 {
24 for (; f;)
25 ;
26 }
27
28 static struct a
29 u (int x)
30 {
31 struct a a = { 4, 8, 5, 4 };
32 for (; i <= 6; i++)
33 {
34 struct a v = { };
35 for (; l; l++)
36 h = 0;
37 for (; h >= 0; h--)
38 {
39 j[i];
40 struct a *w = &p;
41 s = 0;
42 for (; s < 3; s++)
43 {
44 r ^= x;
45 m = j[i][g][h] == (k[g] = g);
46 *w = v;
47 }
48 r = 2;
49 for (; r; r--)
50 *o = &r;
51 }
52 }
53 t ();
54 return a;
55 }
56
57 int
58 main ()
59 {
60 *q = u (636);
61 if (p.b != 4)
62 __builtin_abort ();
63 }