link against isl libraries first
[pet.git] / tests / decl.scop
bloba5fa6719f2163f7d6eb5f4400bf07357cef660b4
1 start: 95
2 end: 282
3 indent: "\t"
4 context: '[N, K, M] -> {  : 0 <= N <= 2147483647 and 0 <= K <= 2147483647 and -2147483648
5   <= M <= 2147483647 }'
6 schedule: '{ domain: "[N, K, M] -> { S_11[]; S_1[i] : 0 <= i < M; S_4[i, j, k] : 0
7   <= i < M and 0 <= j < N and 0 <= k < K; S_8[i, j, k] : 0 <= i < M and 0 <= j < N
8   and 0 <= k < K; S_9[i, j] : 0 <= i < M and 0 <= j < N; S_13[]; S_0[]; S_7[i, j,
9   k] : 0 <= i < M and 0 <= j < N and 0 <= k < K; S_2[i, j] : 0 <= i < M and 0 <= j
10   < N; S_12[]; S_10[i] : 0 <= i < M; S_6[i, j, k] : 0 <= i < M and 0 <= j < N and
11   0 <= k < K; S_5[i, j, k] : 0 <= i < M and 0 <= j < N and 0 <= k < K; S_3[i, j] :
12   0 <= i < M and 0 <= j < N }", child: { sequence: [ { filter: "[M, N, K] -> { S_0[]
13   }" }, { filter: "[M, N, K] -> { S_4[i, j, k]; S_5[i, j, k]; S_9[i, j]; S_6[i, j,
14   k]; S_2[i, j]; S_8[i, j, k]; S_7[i, j, k]; S_3[i, j]; S_1[i]; S_10[i] }", child:
15   { schedule: "[M, N, K] -> L_0[{ S_4[i, j, k] -> [(i)]; S_5[i, j, k] -> [(i)]; S_9[i,
16   j] -> [(i)]; S_6[i, j, k] -> [(i)]; S_2[i, j] -> [(i)]; S_8[i, j, k] -> [(i)]; S_7[i,
17   j, k] -> [(i)]; S_3[i, j] -> [(i)]; S_1[i] -> [(i)]; S_10[i] -> [(i)] }]", child:
18   { sequence: [ { filter: "[M, N, K] -> { S_1[i] }" }, { filter: "[M, N, K] -> { S_4[i,
19   j, k]; S_5[i, j, k]; S_9[i, j]; S_6[i, j, k]; S_2[i, j]; S_8[i, j, k]; S_7[i, j,
20   k]; S_3[i, j] }", child: { schedule: "[M, N, K] -> L_1[{ S_4[i, j, k] -> [(j)];
21   S_5[i, j, k] -> [(j)]; S_9[i, j] -> [(j)]; S_6[i, j, k] -> [(j)]; S_2[i, j] -> [(j)];
22   S_8[i, j, k] -> [(j)]; S_7[i, j, k] -> [(j)]; S_3[i, j] -> [(j)] }]", child: { sequence:
23   [ { filter: "[M, N, K] -> { S_2[i, j] }" }, { filter: "[M, N, K] -> { S_3[i, j]
24   }" }, { filter: "[M, N, K] -> { S_5[i, j, k]; S_4[i, j, k]; S_6[i, j, k]; S_8[i,
25   j, k]; S_7[i, j, k] }", child: { schedule: "[M, N, K] -> L_2[{ S_5[i, j, k] -> [(k)];
26   S_4[i, j, k] -> [(k)]; S_6[i, j, k] -> [(k)]; S_8[i, j, k] -> [(k)]; S_7[i, j, k]
27   -> [(k)] }]", child: { sequence: [ { filter: "[M, N, K] -> { S_4[i, j, k] }" },
28   { filter: "[M, N, K] -> { S_5[i, j, k] }" }, { filter: "[M, N, K] -> { S_7[i, j,
29   k] }" }, { filter: "[M, N, K] -> { S_6[i, j, k] }" }, { filter: "[M, N, K] -> {
30   S_8[i, j, k] }" } ] } } }, { filter: "[M, N, K] -> { S_9[i, j] }" } ] } } }, { filter:
31   "[M, N, K] -> { S_10[i] }" } ] } } }, { filter: "[M, N, K] -> { S_11[]; S_12[];
32   S_13[] }", child: { set: [ { filter: "{ S_11[] }" }, { filter: "{ S_12[] }" }, {
33   filter: "{ S_13[] }" } ] } } ] } }'
34 arrays:
35 - context: '{  :  }'
36   extent: '[N, K, M] -> { t[] }'
37   element_type: float
38   element_size: 4
39   declared: 1
40 - context: '[K] -> {  : K >= 0 }'
41   extent: '[N, K, M] -> { A[i0, i1] : i0 >= 0 and 0 <= i1 < K }'
42   element_type: float
43   element_size: 4
44 - context: '[N] -> {  : N >= 0 }'
45   extent: '[N, K, M] -> { B[i0, i1] : i0 >= 0 and 0 <= i1 < N }'
46   element_type: float
47   element_size: 4
48 - context: '[N] -> {  : N >= 0 }'
49   extent: '[N, K, M] -> { C[i0, i1] : i0 >= 0 and 0 <= i1 < N }'
50   element_type: float
51   element_size: 4
52 - context: '{  :  }'
53   extent: '[N, K, M] -> { i[] }'
54   element_type: int
55   element_size: 4
56 - context: '{  :  }'
57   extent: '[N, K, M] -> { j[] }'
58   element_type: int
59   element_size: 4
60 - context: '{  :  }'
61   extent: '[N, K, M] -> { k[] }'
62   element_type: int
63   element_size: 4
64 statements:
65 - line: 6
66   domain: '[N, K, M] -> { S_0[] }'
67   body:
68     type: expression
69     expr:
70       type: op
71       operation: =
72       arguments:
73       - type: access
74         index: '[N, K, M] -> { S_0[] -> i[] }'
75         reference: __pet_ref_0
76         read: 0
77         write: 1
78       - type: int
79         value: 0
80 - line: 7
81   domain: '[N, K, M] -> { S_1[i] : 0 <= i < M }'
82   body:
83     type: expression
84     expr:
85       type: op
86       operation: =
87       arguments:
88       - type: access
89         index: '[N, K, M] -> { S_1[i] -> j[] }'
90         reference: __pet_ref_1
91         read: 0
92         write: 1
93       - type: int
94         value: 0
95 - line: 8
96   domain: '[N, K, M] -> { S_2[i, j] : 0 <= i < M and 0 <= j < N }'
97   body:
98     type: expression
99     expr:
100       type: op
101       operation: =
102       arguments:
103       - type: access
104         index: '[N, K, M] -> { S_2[i, j] -> C[(i), (j)] }'
105         reference: __pet_ref_2
106         read: 0
107         write: 1
108       - type: int
109         value: 0
110 - line: 9
111   domain: '[N, K, M] -> { S_3[i, j] : 0 <= i < M and 0 <= j < N }'
112   body:
113     type: expression
114     expr:
115       type: op
116       operation: =
117       arguments:
118       - type: access
119         index: '[N, K, M] -> { S_3[i, j] -> k[] }'
120         reference: __pet_ref_3
121         read: 0
122         write: 1
123       - type: int
124         value: 0
125 - line: 10
126   domain: '[N, K, M] -> { S_4[i, j, k] : 0 <= i < M and 0 <= j < N and 0 <= k < K
127     }'
128   body:
129     type: expression
130     expr:
131       type: op
132       operation: kill
133       arguments:
134       - type: access
135         killed: '[N, K, M] -> { S_4[i, j, k] -> t[] }'
136         index: '[N, K, M] -> { S_4[i, j, k] -> t[] }'
137         reference: __pet_ref_4
138         kill: 1
139 - line: 10
140   domain: '[N, K, M] -> { S_5[i, j, k] : 0 <= i < M and 0 <= j < N and 0 <= k < K
141     }'
142   body:
143     type: expression
144     expr:
145       type: op
146       operation: =
147       arguments:
148       - type: access
149         index: '[N, K, M] -> { S_5[i, j, k] -> t[] }'
150         reference: __pet_ref_5
151         read: 0
152         write: 1
153       - type: op
154         operation: '*'
155         arguments:
156         - type: access
157           index: '[N, K, M] -> { S_5[i, j, k] -> A[(i), (k)] }'
158           reference: __pet_ref_6
159           read: 1
160           write: 0
161         - type: access
162           index: '[N, K, M] -> { S_5[i, j, k] -> B[(k), (j)] }'
163           reference: __pet_ref_7
164           read: 1
165           write: 0
166 - line: 11
167   domain: '[N, K, M] -> { S_7[i, j, k] : 0 <= i < M and 0 <= j < N and 0 <= k < K
168     }'
169   body:
170     type: expression
171     expr:
172       type: op
173       operation: +=
174       arguments:
175       - type: access
176         index: '[N, K, M] -> { S_7[i, j, k] -> C[(i), (j)] }'
177         reference: __pet_ref_8
178         read: 1
179         write: 1
180       - type: access
181         index: '[N, K, M] -> { S_7[i, j, k] -> t[] }'
182         reference: __pet_ref_9
183         read: 1
184         write: 0
185 - line: 10
186   domain: '[N, K, M] -> { S_6[i, j, k] : 0 <= i < M and 0 <= j < N and 0 <= k < K
187     }'
188   body:
189     type: expression
190     expr:
191       type: op
192       operation: kill
193       arguments:
194       - type: access
195         killed: '[N, K, M] -> { S_6[i, j, k] -> t[] }'
196         index: '[N, K, M] -> { S_6[i, j, k] -> t[] }'
197         reference: __pet_ref_10
198         kill: 1
199 - line: 9
200   domain: '[N, K, M] -> { S_8[i, j, k] : 0 <= i < M and 0 <= j < N and 0 <= k < K
201     }'
202   body:
203     type: expression
204     expr:
205       type: op
206       operation: =
207       arguments:
208       - type: access
209         index: '[N, K, M] -> { S_8[i, j, k] -> k[] }'
210         reference: __pet_ref_11
211         read: 0
212         write: 1
213       - type: access
214         index: '[N, K, M] -> { S_8[i, j, k] -> [(1 + k)] }'
215         reference: __pet_ref_12
216         read: 1
217         write: 0
218 - line: 7
219   domain: '[N, K, M] -> { S_9[i, j] : 0 <= i < M and 0 <= j < N }'
220   body:
221     type: expression
222     expr:
223       type: op
224       operation: =
225       arguments:
226       - type: access
227         index: '[N, K, M] -> { S_9[i, j] -> j[] }'
228         reference: __pet_ref_13
229         read: 0
230         write: 1
231       - type: access
232         index: '[N, K, M] -> { S_9[i, j] -> [(1 + j)] }'
233         reference: __pet_ref_14
234         read: 1
235         write: 0
236 - line: 6
237   domain: '[N, K, M] -> { S_10[i] : 0 <= i < M }'
238   body:
239     type: expression
240     expr:
241       type: op
242       operation: =
243       arguments:
244       - type: access
245         index: '[N, K, M] -> { S_10[i] -> i[] }'
246         reference: __pet_ref_15
247         read: 0
248         write: 1
249       - type: access
250         index: '[N, K, M] -> { S_10[i] -> [(1 + i)] }'
251         reference: __pet_ref_16
252         read: 1
253         write: 0
254 - line: -1
255   domain: '[N, K, M] -> { S_11[] }'
256   body:
257     type: expression
258     expr:
259       type: op
260       operation: kill
261       arguments:
262       - type: access
263         killed: '[N, K, M] -> { S_11[] -> i[] }'
264         index: '[N, K, M] -> { S_11[] -> i[] }'
265         reference: __pet_ref_17
266         kill: 1
267 - line: -1
268   domain: '[N, K, M] -> { S_12[] }'
269   body:
270     type: expression
271     expr:
272       type: op
273       operation: kill
274       arguments:
275       - type: access
276         killed: '[N, K, M] -> { S_12[] -> j[] }'
277         index: '[N, K, M] -> { S_12[] -> j[] }'
278         reference: __pet_ref_18
279         kill: 1
280 - line: -1
281   domain: '[N, K, M] -> { S_13[] }'
282   body:
283     type: expression
284     expr:
285       type: op
286       operation: kill
287       arguments:
288       - type: access
289         killed: '[N, K, M] -> { S_13[] -> k[] }'
290         index: '[N, K, M] -> { S_13[] -> k[] }'
291         reference: __pet_ref_19
292         kill: 1