Mercurial > hg > CbC > CbC_gcc
annotate libgomp/testsuite/libgomp.graphite/force-parallel-6.c @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 04ced10e8804 |
children |
rev | line source |
---|---|
111 | 1 void abort (void); |
2 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 #define N 500 |
111 | 4 #define M 50 |
5 | |
6 int X[2*N], Y[2*N], B[2*N]; | |
7 int A[2*N][2*N], C[2*N][2*N]; | |
8 | |
9 static void __attribute__((noinline,noclone)) | |
10 init (void) | |
11 { | |
12 volatile int i, j; | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 |
111 | 14 for (i = 0; i < 2 * N; ++i) |
15 { | |
16 B[i] = 1; | |
17 X[i] = 1; | |
18 Y[i] = 1; | |
19 for (j = 0; j < 2 * N; ++j) | |
20 { | |
21 A[i][j] = 1; | |
22 C[i][j] = 1; | |
23 } | |
24 } | |
25 } | |
26 | |
27 static void __attribute__((noinline,noclone)) | |
28 foo (void) | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 { |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 int i, j, k; |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 |
111 | 32 for (i = 0; i < M; i++) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 { |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 X[i] = Y[i] + 10; |
111 | 35 for (j = 0; j < M; j++) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 { |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 B[j] = A[j][N]; |
111 | 38 for (k = 0; k < N; k++) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 { |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 A[j+1][k] = B[j] + C[j][k]; |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 } |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 Y[i+j] = A[j+1][N]; |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 } |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 } |
111 | 45 } |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 |
111 | 47 static void __attribute__((noinline,noclone)) |
48 check (void) | |
49 { | |
50 volatile int i, j; | |
51 | |
52 for (i = 0; i < 2 * N; ++i) | |
53 { | |
54 int expect_x = i < M ? 11 : 1; | |
55 | |
56 if (B[i] != 1 | |
57 || X[i] != expect_x | |
58 || Y[i] != 1) | |
59 abort (); | |
60 | |
61 for (j = 0; j < 2 * N; ++j) | |
62 { | |
63 int expect_a = (0 < i && i <= M && j < N) ? 2 : 1; | |
64 | |
65 if (A[i][j] != expect_a | |
66 || C[i][j] != 1) | |
67 abort (); | |
68 } | |
69 } | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 } |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 int main(void) |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 { |
111 | 74 init (); |
75 foo (); | |
76 check (); | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 return 0; |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 } |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 /* Check that parallel code generation part make the right answer. */ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 /* { dg-final { scan-tree-dump-times "1 loops carried no dependency" 1 "graphite" } } */ |
111 | 83 /* { dg-final { scan-tree-dump-times "loopfn.0" 4 "optimized" } } */ |