/* Test for reload ICE arising from POWER9 Vector Dform code generation. */ | |
/* { dg-do compile } */ | |
/* { dg-require-effective-target powerpc_p9vector_ok } */ | |
/* { dg-options "-O3 -mpower9-vector -funroll-loops -fno-aggressive-loop-optimizations" } */ | |
typedef double vec[3]; | |
struct vec_t | |
{ | |
vec x; | |
vec y; | |
}; | |
int a, j, k, l, m, n, o, p, q; | |
double b, i; | |
vec c; | |
double h[6]; | |
void func1 (vec); | |
void | |
func2 (double *b) | |
{ | |
for (; k; k--) | |
for (; j <= k;) | |
for (; m <= q; m++) | |
for (; n <= k; n++) | |
for (; o <= l; o++) | |
{ | |
j = p + m + n + o; | |
h[j] = i; | |
} | |
} | |
void | |
func3 (void) | |
{ | |
struct vec_t d; | |
func1 (d.y); | |
func2 (&b); | |
for (; a;) | |
{ | |
double *e = d.y, *g; | |
double f; | |
c[0] = g[0] + f * e[0]; | |
c[1] = g[1] + f * e[1]; | |
func1 (c); | |
} | |
} |