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