1 /* { dg-require-effective-target vect_float } */
2 /* { dg-require-effective-target vect_intfloat_cvt } */
3 #include <stdarg.h>
4 #include "tree-vect.h"
5 
6 #define N 160
7 float image[N][N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
8 float out[N];
9 
10 /* Outer-loop vectorization.  */
11 
12 __attribute__ ((noinline)) void
foo()13 foo (){
14   int i,j;
15 
16   for (i = 0; i < N; i++) {
17     for (j = 0; j < N; j++) {
18       image[j][i] = j+i;
19     }
20   }
21 }
22 
main(void)23 int main (void)
24 {
25   check_vect ();
26   int i, j;
27 
28   foo ();
29 
30   for (i = 0; i < N; i++) {
31     for (j = 0; j < N; j++) {
32       if (image[j][i] != j+i)
33 	abort ();
34     }
35   }
36 
37   return 0;
38 }
39 
40 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" } } */
41