* gcc.target/i386/pr70021.c: Add -mtune=skylake.
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr70021.c
blob6562c0f2bd09985883ef56fcf7f3da98314d8728
1 /* PR target/70021 */
2 /* { dg-do run } */
3 /* { dg-require-effective-target avx2 } */
4 /* { dg-options "-O2 -ftree-vectorize -mavx2 -fdump-tree-vect-details -mtune=skylake" } */
6 #include "avx2-check.h"
8 #define N 160
9 int a[N];
10 unsigned long long int b[N], c[N], d[N], e[N];
12 __attribute__((noinline, noclone)) void
13 foo (void)
15 int i;
16 for (i = 0; i < N; i += 4)
18 unsigned long long int f = (_Bool) b[i];
19 unsigned long long int g = c[i] != d[i];
20 e[i] = g ^ (a[i] & (g << f));
24 void
25 avx2_test ()
27 int i;
28 for (i = 0; i < N; ++i)
30 a[i] = 1618000128;
31 b[i] = 10919594786573202791ULL;
32 c[i] = 2593730175074624973ULL;
33 d[i] = 7447894520878803661ULL;
34 e[i] = 14234165565810642243ULL;
36 foo ();
37 for (i = 0; i < N; ++i)
38 if (e[i] != ((i & 3) ? 14234165565810642243ULL : 1ULL))
39 __builtin_abort ();
42 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */