1 /* { dg-require-effective-target size32plus } */
2 
3 #define DEBUG 0
4 #if DEBUG
5 #include <stdio.h>
6 #endif
7 
8 #define N 111
9 #define M 111
10 
11 static unsigned int __attribute__((noinline))
foo(unsigned int * x)12 foo (unsigned int *x)
13 {
14   int i, j;
15   unsigned int sum = 0;
16 
17   for (j = 0; j < M; ++j)
18     for (i = 0;  i < N; ++i)
19       sum += x[M * i + j];
20 
21   return sum;
22 }
23 
24 extern void abort ();
25 
26 int
main(void)27 main (void)
28 {
29   unsigned int A[N*M];
30   int i;
31   unsigned int res;
32 
33   for (i = 0; i < N*M; i++)
34     A[i] = 2;
35 
36   res = foo (A);
37 
38 #if DEBUG
39   fprintf (stderr, "res = %d \n", res);
40 #endif
41 
42   if (res != 24642)
43     abort ();
44 
45   return 0;
46 }
47