1 /* { dg-require-effective-target size32plus } */ 2 3 #define DEBUG 0 4 #if DEBUG 5 #include <stdio.h> 6 #endif 7 8 #define N 200 9 10 int a[N][N]; 11 int b[N][N]; 12 13 static int __attribute__((noinline)) foo(void)14foo (void) 15 { 16 int i, j; 17 int res = 0; 18 19 /* This loop nest should be blocked. */ 20 for (j = 1; j < N; j++) 21 for (i = 0; i < N; i++) 22 a[i][j] = a[i][j-1] + b[i][j]; 23 24 for (i = 0; i < N; i++) 25 res += a[i][i]; 26 27 return res; 28 } 29 30 extern void abort (); 31 32 int main(void)33main (void) 34 { 35 int i, j, res; 36 37 for (i = 0; i < N; i++) 38 for (j = 0; j < N; j++) 39 { 40 a[i][j] = i + j; 41 b[i][j] = i - j; 42 } 43 44 res = foo (); 45 46 #if DEBUG 47 fprintf (stderr, "res = %d \n", res); 48 #endif 49 50 if (res != 1333300) 51 abort (); 52 53 return 0; 54 } 55 56 /* { dg-final { scan-tree-dump "tiled by" "graphite" } } */ 57