blob: dadc4206c544f8079076bb08582c4b127174d89d [file] [log] [blame]
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-mdejagnu-cpu=power8 -O3" } */
/* { dg-final { scan-assembler-not "xxpermdi" } } */
/* This is a test for a specific convert-splat permute removal. */
void compute (float*, float*, float*, int, int);
double test (void);
double gorp;
int main (void)
{
float X[10000], Y[256], Z[2000];
int i;
for (i = 0; i < 2500; i++)
compute (X, Y, Z, 256, 2000);
gorp = test ();
}
void compute(float *X, float *Y, float *Z, int m, int n)
{
int i, j;
float w, *x, *y;
for (i = 0; i < n; i++)
{
w = 0.0;
x = X++;
y = Y;
for (j = 0; j < m; j++)
w += (*x++) * (*y++);
Z[i] = w;
}
}