3 /* { dg-require-effective-target avx2 } */
4 /* { dg-options "-O2 -ftree-vectorize -mavx2 -fdump-tree-vect-details -mtune=skylake" } */
6 #include "avx2-check.h"
10 unsigned long long int b
[N
], c
[N
], d
[N
], e
[N
];
12 __attribute__((noinline
, noclone
)) void
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
));
28 for (i
= 0; i
< N
; ++i
)
31 b
[i
] = 10919594786573202791ULL;
32 c
[i
] = 2593730175074624973ULL;
33 d
[i
] = 7447894520878803661ULL;
34 e
[i
] = 14234165565810642243ULL;
37 for (i
= 0; i
< N
; ++i
)
38 if (e
[i
] != ((i
& 3) ? 14234165565810642243ULL : 1ULL))
42 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */