* gcc.target/i386/pr70021.c: Add -mtune=skylake.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr59501-3.c
blobf27e9b3bb25ca8768e41f790175bde19f0fe609f
1 /* PR target/59501 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -mavx -mno-accumulate-outgoing-args" } */
4 /* { dg-require-effective-target avx } */
6 #define CHECK_H "avx-check.h"
7 #define TEST avx_test
9 #include CHECK_H
11 typedef double V __attribute__ ((vector_size (32)));
13 __attribute__((noinline, noclone)) V
14 foo (double *x, int a, int b, int c, int d, int e, int f, unsigned *y)
16 V r = { x[y[0]], x[y[1]], x[y[2]], x[y[3]] };
17 return r;
20 static void
21 TEST (void)
23 double a[16];
24 unsigned b[4] = { 5, 0, 15, 7 };
25 int i;
26 for (i = 0; i < 16; i++)
27 a[i] = 0.5 + i;
28 V v = foo (a, 0, 0, 0, 0, 0, 0, b);
29 if (v[0] != 5.5 || v[1] != 0.5 || v[2] != 15.5 || v[3] != 7.5)
30 __builtin_abort ();