| /* { dg-do run } */ |
| /* { dg-require-effective-target avx } */ |
| /* { dg-options "-O3 -mavx" } */ |
| |
| #include "avx-check.h" |
| |
| #include "rotate-4.c" |
| |
| static void |
| __attribute__((noinline)) |
| avx_test (void) |
| { |
| int i; |
| for (i = 0; i < 1024; i++) |
| a[i] = i * 1073741789U; |
| foo (3); |
| for (i = 0; i < 1024; i++) |
| { |
| unsigned int x = i * 1073741789U; |
| if (a[i] != ((x << 3) | (x >> ((-3) & 31)))) |
| abort (); |
| } |
| foo (0); |
| for (i = 0; i < 1024; i++) |
| { |
| unsigned int x = i * 1073741789U; |
| if (a[i] != ((x << 3) | (x >> ((-3) & 31)))) |
| abort (); |
| } |
| foo (29); |
| for (i = 0; i < 1024; i++) |
| if (a[i] != i * 1073741789U) |
| abort (); |
| } |