PR target/71656
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / pr71656-2.c
blob99855fa1667c2ad6d292438bfc63583b87445099
1 /* Test for reload ICE arising from POWER9 Vector Dform code generation. */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target powerpc_p9vector_ok } */
4 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
5 /* { dg-options "-O3 -mcpu=power9 -mpower9-dform-vector -mno-lra -funroll-loops -fno-aggressive-loop-optimizations" } */
7 typedef double vec[3];
8 struct vec_t
10 vec x;
11 vec y;
13 int a, j, k, l, m, n, o, p, q;
14 double b, i;
15 vec c;
16 double h[6];
17 void func1 (vec);
19 void
20 func2 (double *b)
22 for (; k; k--)
23 for (; j <= k;)
24 for (; m <= q; m++)
25 for (; n <= k; n++)
26 for (; o <= l; o++)
28 j = p + m + n + o;
29 h[j] = i;
33 void
34 func3 (void)
36 struct vec_t d;
37 func1 (d.y);
38 func2 (&b);
39 for (; a;)
41 double *e = d.y, *g;
42 double f;
43 c[0] = g[0] + f * e[0];
44 c[1] = g[1] + f * e[1];
45 func1 (c);