/* { dg-do compile { target le } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math" } */ /* { dg-final { scan-assembler "lxvd2x" } } */ /* { dg-final { scan-assembler-not "xxpermdi" { target le } } } */ /* Verify that swap optimization works correctly in the presence of a V2DFmode reduction. */ extern double optvalue; extern void obfuscate (double, unsigned int); void foo (double *x, double *y, unsigned int n, unsigned int m) { unsigned int i, j; double sacc; for (j = 0; j < m; ++j) { sacc = 0.0; for (i = 0; i < n; ++i) sacc += x[i] * y[i]; obfuscate (sacc, n); } optvalue = n * 2.0 * m; }