OSDN Git Service

Call abort for runtime test, always return 0 from main.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / graphite / block-4.c
1 /* { dg-require-effective-target size32plus } */
2
3 #define DEBUG 0
4 #if DEBUG
5 #include <stdio.h>
6 #endif
7
8 #define N 24
9 #define M 1000
10
11 int A[M][M], B[M][M], C[M][M];
12
13 static int __attribute__((noinline))
14 foo (void)
15 {
16   int i, j, k;
17
18   for (i = 0; i < 24; i++)
19     for (j = 0; j < 24; j++)
20       for (k = 0; k < 24; k++)
21         A[i][j] = B[i][k] * C[k][j];
22
23   for (i = 0; i < M; i++)
24     for (j = 0; j < M; j++)
25       for (k = 0; k < M; k++)
26         A[i][j] = B[i][k] * C[k][j];
27
28   return A[0][0] + A[M-1][M-1];
29 }
30
31 extern void abort ();
32
33 int
34 main (void)
35 {
36   int i, j, res;
37
38   for (i = 0; i < M; i++)
39     for (j = 0; j < M; j++)
40       {
41         B[i][j] = i;
42         C[i][j] = j;
43       }
44
45   res = foo ();
46
47 #if DEBUG
48   fprintf (stderr, "res = %d \n", res);
49 #endif
50
51   if (res != 998001)
52     abort ();
53
54   return 0;
55 }
56
57 /* { dg-final { scan-tree-dump-times "will be loop blocked" 1 "graphite" { xfail *-*-* } } } */
58 /* { dg-final { cleanup-tree-dump "graphite" } } */