| /* { dg-do run } */ |
| /* { dg-options "-O2 -ftree-vectorize -mavx512bw" } */ |
| /* { dg-require-effective-target avx512bw } */ |
| |
| #define AVX512BW |
| #include "avx512f-helper.h" |
| |
| extern void abort (void); |
| |
| void __attribute__((noinline,noclone)) |
| test1 (int *a, int *b, int *c) |
| { |
| int i; |
| for (i = 0; i < 16; i++) |
| { |
| if ((i == 0) || (i == 3)) |
| a[i] = b[i]; |
| else |
| a[i] = c[i]; |
| } |
| } |
| |
| void |
| TEST () |
| { |
| int a[16], b[16], c[16], i; |
| |
| for (i = 0; i < 16; i++) |
| { |
| a[i] = i; |
| b[i] = -i; |
| } |
| |
| test1 (a, b, c); |
| |
| for (i = 0; i < 16; i++) |
| { |
| if ((i == 0) || (i == 3)) |
| { |
| if (a[i] != b[i]) |
| abort (); |
| } |
| else |
| { |
| if (a[i] != c[i]) |
| abort (); |
| } |
| } |
| } |