diff options
Diffstat (limited to 'gcc-4.8/gcc/testsuite/gcc.target/i386/pr55845.c')
-rw-r--r-- | gcc-4.8/gcc/testsuite/gcc.target/i386/pr55845.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/gcc.target/i386/pr55845.c b/gcc-4.8/gcc/testsuite/gcc.target/i386/pr55845.c new file mode 100644 index 000000000..daf04e54a --- /dev/null +++ b/gcc-4.8/gcc/testsuite/gcc.target/i386/pr55845.c @@ -0,0 +1,40 @@ +/* { dg-do run } */ +/* { dg-require-effective-target avx } */ +/* { dg-options "-O3 -ffast-math -fschedule-insns -mavx -mvzeroupper" } */ + +#include "avx-check.h" + +#define N 100 + +double +__attribute__((noinline)) +foo (int size, double *y, double *x) +{ + double sum = 0.0; + int i; + + for (i = 0; i < size; i++) + sum += y[i] * x[i]; + + return sum; +} + +static void +__attribute__ ((noinline)) +avx_test () +{ + double x[N], y[N]; + double s; + int i; + + for (i = 0; i < N; i++) + { + x[i] = i; + y[i] = i; + } + + s = foo (N, y, x); + + if (s != 328350.0) + abort (); +} |