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[2*N][2*N][N] __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__)));
8 
9 __attribute__ ((noinline)) void
foo()10 foo (){
11   int i,j,k;
12 
13  for (k=0; k<N; k++) {
14   for (i = 0; i < N; i++) {
15     for (j = 0; j < N; j+=2) {
16       image[k][j][i] = j+i+k;
17     }
18   }
19  }
20 }
21 
main(void)22 int main (void)
23 {
24   check_vect ();
25   int i, j, k;
26 
27   foo ();
28 
29  for (k=0; k<N; k++) {
30   for (i = 0; i < N; i++) {
31     for (j = 0; j < N; j+=2) {
32       if (image[k][j][i] != j+i+k)
33 	abort ();
34     }
35   }
36  }
37 
38   return 0;
39 }
40 
41 /* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED" 1 "vect" } } */
42 /* { dg-final { cleanup-tree-dump "vect" } } */
43