Merge branches/gcc-4_9-branch rev 225109.
[official-gcc.git] / gcc-4_9-branch / gcc / testsuite / gcc.target / powerpc / swaps-p8-18.c
blobc55f527d420cc06ad8efc13c402a9e0e9e006d12
1 /* { dg-do compile { target { powerpc64le-*-* } } } */
2 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
3 /* { dg-options "-mcpu=power8 -O3" } */
4 /* { dg-final { scan-assembler-not "xxpermdi" } } */
6 /* This is a test for a specific convert-splat permute removal. */
8 void compute (float*, float*, float*, int, int);
9 double test (void);
10 double gorp;
12 int main (void)
14 float X[10000], Y[256], Z[2000];
15 int i;
16 for (i = 0; i < 2500; i++)
17 compute (X, Y, Z, 256, 2000);
18 gorp = test ();
21 void compute(float *X, float *Y, float *Z, int m, int n)
23 int i, j;
24 float w, *x, *y;
26 for (i = 0; i < n; i++)
28 w = 0.0;
29 x = X++;
30 y = Y;
31 for (j = 0; j < m; j++)
32 w += (*x++) * (*y++);
33 Z[i] = w;