1 /* { dg-require-effective-target vect_int } */ 2 3 #include <stdarg.h> 4 #include "tree-vect.h" 5 6 #define N 64 7 8 char x[N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))); 9 10 __attribute__ ((noinline)) int foo(int len,int * z)11foo (int len, int *z) { 12 int i; 13 14 for (i=0; i<len; i++) { 15 z[i] = x[i]; 16 } 17 } 18 19 main(void)20int main (void) 21 { 22 char i; 23 int z[N+4]; 24 25 check_vect (); 26 27 for (i=0; i<N; i++) { 28 x[i] = i; 29 } 30 31 foo (N,z+2); 32 33 for (i=0; i<N; i++) { 34 if (z[i+2] != x[i]) 35 abort (); 36 } 37 38 return 0; 39 } 40 41 /* bleah */ 42 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_unpack } } } */ 43 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! vect_unpack } } } } */ 44 45