1 /* { dg-do compile } */ 2 /* { dg-require-effective-target vect_float } */ 3 4 #define VECTOR_SIZE 512 5 6 extern void check(const float * __restrict__ v); 7 square(const float * __restrict__ a,float * __restrict__ out)8void square(const float * __restrict__ a, 9 float * __restrict__ out) 10 { 11 unsigned int i; 12 for (i = 0; i < VECTOR_SIZE; i++) { 13 float ai = a[i]; 14 float a2 = ai * ai; 15 out[i] = a2; 16 } 17 check(out); 18 } 19 20 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ 21 /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { target { vect_no_align && { ! vect_hw_misalign } } } } } */ 22