libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / vect / pr70021.c
blobd4d5db12bc0e646413ba393b57edc60ba1189059
1 /* PR target/70021 */
3 #include "tree-vect.h"
5 #define N 160
6 int a[N];
7 unsigned long long int b[N], c[N], d[N], e[N];
9 __attribute__((noinline, noclone)) void
10 foo (void)
12 int i;
13 for (i = 0; i < N; i += 4)
15 unsigned long long int f = (_Bool) b[i];
16 unsigned long long int g = c[i] != d[i];
17 e[i] = g ^ (a[i] & (g << f));
21 int
22 main ()
24 int i;
25 check_vect ();
26 for (i = 0; i < N; ++i)
28 a[i] = 1618000128;
29 b[i] = 10919594786573202791ULL;
30 c[i] = 2593730175074624973ULL;
31 d[i] = 7447894520878803661ULL;
32 e[i] = 14234165565810642243ULL;
34 foo ();
35 #pragma GCC novector
36 for (i = 0; i < N; ++i)
37 if (e[i] != ((i & 3) ? 14234165565810642243ULL : 1ULL))
38 __builtin_abort ();
39 return 0;