1 /* { dg-do compile } */ 2 /* { dg-require-effective-target avx } */ 3 /* { dg-options "-O3 -mavx -fdump-tree-vect-details" } */ 4 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ 5 /* { dg-final { cleanup-tree-dump "vect" } } */ 6 7 unsigned int a[1024] __attribute__((aligned (32))); 8 9 __attribute__((noinline, noclone)) void foo(int j)10foo (int j) 11 { 12 int i; 13 for (i = 0; i < 1024; i++) 14 a[i] = (a[i] << j) | (a[i] >> ((-j) & 31)); 15 } 16