| /* PR target/70021 */ |
| |
| #include "tree-vect.h" |
| |
| #define N 160 |
| int a[N]; |
| unsigned long long int b[N], c[N], d[N], e[N]; |
| |
| __attribute__((noinline, noclone)) void |
| foo (void) |
| { |
| int i; |
| for (i = 0; i < N; i += 4) |
| { |
| unsigned long long int f = (_Bool) b[i]; |
| unsigned long long int g = c[i] != d[i]; |
| e[i] = g ^ (a[i] & (g << f)); |
| } |
| } |
| |
| int |
| main () |
| { |
| int i; |
| check_vect (); |
| for (i = 0; i < N; ++i) |
| { |
| a[i] = 1618000128; |
| b[i] = 10919594786573202791ULL; |
| c[i] = 2593730175074624973ULL; |
| d[i] = 7447894520878803661ULL; |
| e[i] = 14234165565810642243ULL; |
| } |
| foo (); |
| for (i = 0; i < N; ++i) |
| if (e[i] != ((i & 3) ? 14234165565810642243ULL : 1ULL)) |
| __builtin_abort (); |
| return 0; |
| } |