privately export pet_stmt_is_affine_assume
[pet.git] / tests / wdp.scop
blobebe6bb0d546bd1e6e76688ff794376cc4596e279
1 start: 248
2 end: 619
3 indent: "\t"
4 context: '[N] -> {  : 8 <= N <= 16 }'
5 schedule: '{ domain: "[N] -> { S_11[i] : 0 <= i < N; S_8[i] : 0 <= i <= 1 + N; S_10[i]
6   : 0 <= i < N; S_9[]; S_6[]; S_14[i] : 0 <= i < N; S_17[]; S_4[i] : 0 <= i <= N;
7   S_16[]; S_0[]; S_3[]; S_7[i] : 0 <= i <= 1 + N; S_12[i] : 0 <= i < N; S_1[i] : 0
8   <= i < N; S_5[i] : 0 <= i <= N; S_15[i] : 0 <= i < N; S_2[i] : 0 <= i < N; S_13[i]
9   : 0 <= i < N }", child: { sequence: [ { filter: "[N] -> { S_0[] }" }, { filter:
10   "[N] -> { S_1[i]; S_2[i] }", child: { schedule: "[N] -> L_0[{ S_1[i] -> [(i)]; S_2[i]
11   -> [(i)] }]", child: { sequence: [ { filter: "[N] -> { S_1[i] }" }, { filter: "[N]
12   -> { S_2[i] }" } ] } } }, { filter: "[N] -> { S_3[] }" }, { filter: "[N] -> { S_4[i];
13   S_5[i] }", child: { schedule: "[N] -> L_1[{ S_4[i] -> [(i)]; S_5[i] -> [(i)] }]",
14   child: { sequence: [ { filter: "[N] -> { S_4[i] }" }, { filter: "[N] -> { S_5[i]
15   }" } ] } } }, { filter: "[N] -> { S_6[] }" }, { filter: "[N] -> { S_8[i]; S_7[i]
16   }", child: { schedule: "[N] -> L_2[{ S_8[i] -> [(i)]; S_7[i] -> [(i)] }]", child:
17   { sequence: [ { filter: "[N] -> { S_7[i] }" }, { filter: "[N] -> { S_8[i] }" } ]
18   } } }, { filter: "[N] -> { S_9[] }" }, { filter: "[N] -> { S_11[i]; S_10[i]; S_14[i];
19   S_12[i]; S_15[i]; S_13[i] }", child: { schedule: "[N] -> L_3[{ S_11[i] -> [(i)];
20   S_10[i] -> [(i)]; S_14[i] -> [(i)]; S_12[i] -> [(i)]; S_15[i] -> [(i)]; S_13[i]
21   -> [(i)] }]", child: { sequence: [ { filter: "[N] -> { S_10[i] }" }, { filter: "[N]
22   -> { S_11[i] }" }, { filter: "[N] -> { S_12[i] }" }, { filter: "[N] -> { S_13[i]
23   }" }, { filter: "[N] -> { S_14[i] }" }, { filter: "[N] -> { S_15[i] }" } ] } } },
24   { filter: "[N] -> { S_17[]; S_16[] }", child: { set: [ { filter: "{ S_16[] }" },
25   { filter: "{ S_17[] }" } ] } } ] } }'
26 arrays:
27 - context: '{  :  }'
28   extent: '[N] -> { __pet_test_0[i] : 0 <= i < N }'
29   value_bounds: '{ [i0] : 0 <= i0 <= 1 }'
30   element_type: int
31   element_size: 4
32   uniquely_defined: 1
33 - context: '{  :  }'
34   extent: '[N] -> { i[] }'
35   element_type: int
36   element_size: 4
37 - context: '[N] -> {  : -1 <= N <= 2147483646 }'
38   extent: '[N] -> { t[i0] : 0 <= i0 <= N }'
39   element_type: int
40   element_size: 4
41 - context: '[N] -> {  : N >= 0 }'
42   extent: '[N] -> { x[i0] : 0 <= i0 < N }'
43   element_type: int
44   element_size: 4
45 - context: '[N] -> {  : -1 <= N <= 2147483646 }'
46   extent: '[N] -> { y[i0] : 0 <= i0 <= N }'
47   element_type: int
48   element_size: 4
49 - context: '[N] -> {  : -2 <= N <= 2147483645 }'
50   extent: '[N] -> { z[i0] : 0 <= i0 <= 1 + N }'
51   element_type: int
52   element_size: 4
53 statements:
54 - line: 18
55   domain: '[N] -> { S_0[] }'
56   body:
57     type: expression
58     expr:
59       type: op
60       operation: =
61       arguments:
62       - type: access
63         index: '[N] -> { S_0[] -> i[] }'
64         reference: __pet_ref_0
65         read: 0
66         write: 1
67       - type: int
68         value: 0
69 - line: 19
70   domain: '[N] -> { S_1[i] : 0 <= i < N }'
71   body:
72     type: expression
73     expr:
74       type: op
75       operation: =
76       arguments:
77       - type: access
78         index: '[N] -> { S_1[i] -> x[(i)] }'
79         reference: __pet_ref_1
80         read: 0
81         write: 1
82       - type: call
83         name: _Source_x
84 - line: 18
85   domain: '[N] -> { S_2[i] : 0 <= i < N }'
86   body:
87     type: expression
88     expr:
89       type: op
90       operation: =
91       arguments:
92       - type: access
93         index: '[N] -> { S_2[i] -> i[] }'
94         reference: __pet_ref_2
95         read: 0
96         write: 1
97       - type: access
98         index: '[N] -> { S_2[i] -> [(1 + i)] }'
99         reference: __pet_ref_3
100         read: 1
101         write: 0
102 - line: 21
103   domain: '[N] -> { S_3[] }'
104   body:
105     type: expression
106     expr:
107       type: op
108       operation: =
109       arguments:
110       - type: access
111         index: '[N] -> { S_3[] -> i[] }'
112         reference: __pet_ref_4
113         read: 0
114         write: 1
115       - type: int
116         value: 0
117 - line: 22
118   domain: '[N] -> { S_4[i] : 0 <= i <= N }'
119   body:
120     type: expression
121     expr:
122       type: call
123       name: _Source_yt
124       arguments:
125       - type: op
126         operation: '&'
127         arguments:
128         - type: access
129           may_read: '[N] -> { S_4[i] -> y[i] }'
130           may_write: '[N] -> { S_4[i] -> y[i] }'
131           must_write: '[N] -> {  }'
132           index: '[N] -> { S_4[i] -> y[(i)] }'
133           reference: __pet_ref_5
134           read: 1
135           write: 1
136       - type: op
137         operation: '&'
138         arguments:
139         - type: access
140           may_read: '[N] -> { S_4[i] -> t[i] }'
141           may_write: '[N] -> { S_4[i] -> t[i] }'
142           must_write: '[N] -> {  }'
143           index: '[N] -> { S_4[i] -> t[(i)] }'
144           reference: __pet_ref_6
145           read: 1
146           write: 1
147 - line: 21
148   domain: '[N] -> { S_5[i] : 0 <= i <= N }'
149   body:
150     type: expression
151     expr:
152       type: op
153       operation: =
154       arguments:
155       - type: access
156         index: '[N] -> { S_5[i] -> i[] }'
157         reference: __pet_ref_7
158         read: 0
159         write: 1
160       - type: access
161         index: '[N] -> { S_5[i] -> [(1 + i)] }'
162         reference: __pet_ref_8
163         read: 1
164         write: 0
165 - line: 24
166   domain: '[N] -> { S_6[] }'
167   body:
168     type: expression
169     expr:
170       type: op
171       operation: =
172       arguments:
173       - type: access
174         index: '[N] -> { S_6[] -> i[] }'
175         reference: __pet_ref_9
176         read: 0
177         write: 1
178       - type: int
179         value: 0
180 - line: 25
181   domain: '[N] -> { S_7[i] : 0 <= i <= 1 + N }'
182   body:
183     type: expression
184     expr:
185       type: op
186       operation: =
187       arguments:
188       - type: access
189         index: '[N] -> { S_7[i] -> z[(i)] }'
190         reference: __pet_ref_10
191         read: 0
192         write: 1
193       - type: call
194         name: _Source_z
195 - line: 24
196   domain: '[N] -> { S_8[i] : 0 <= i <= 1 + N }'
197   body:
198     type: expression
199     expr:
200       type: op
201       operation: =
202       arguments:
203       - type: access
204         index: '[N] -> { S_8[i] -> i[] }'
205         reference: __pet_ref_11
206         read: 0
207         write: 1
208       - type: access
209         index: '[N] -> { S_8[i] -> [(1 + i)] }'
210         reference: __pet_ref_12
211         read: 1
212         write: 0
213 - line: 27
214   domain: '[N] -> { S_9[] }'
215   body:
216     type: expression
217     expr:
218       type: op
219       operation: =
220       arguments:
221       - type: access
222         index: '[N] -> { S_9[] -> i[] }'
223         reference: __pet_ref_13
224         read: 0
225         write: 1
226       - type: int
227         value: 0
228 - line: 29
229   domain: '[N] -> { [S_10[i] -> [z = 0]] : 0 <= i < N }'
230   body:
231     type: expression
232     expr:
233       type: op
234       operation: =
235       arguments:
236       - type: access
237         index: '[N] -> { S_10[i] -> x[(i)] }'
238         reference: __pet_ref_15
239         read: 0
240         write: 1
241       - type: call
242         name: F1
243         arguments:
244         - type: access
245           index: '[N] -> { S_10[i] -> x[(i)] }'
246           reference: __pet_ref_16
247           read: 1
248           write: 0
249   arguments:
250   - type: access
251     index: '[N] -> { S_10[i] -> z[(i)] }'
252     reference: __pet_ref_14
253     read: 1
254     write: 0
255 - line: 30
256   domain: '[N] -> { S_11[i] : 0 <= i < N }'
257   body:
258     type: expression
259     expr:
260       type: op
261       operation: =
262       arguments:
263       - type: access
264         index: '[N] -> { S_11[i] -> __pet_test_0[(i)] }'
265         reference: __pet_ref_17
266         read: 0
267         write: 1
268       - type: op
269         operation: '>'
270         arguments:
271         - type: op
272           operation: '*'
273           arguments:
274           - type: access
275             index: '[N] -> { S_11[i] -> x[(i)] }'
276             reference: __pet_ref_18
277             read: 1
278             write: 0
279           - type: access
280             index: '[N] -> { S_11[i] -> x[(i)] }'
281             reference: __pet_ref_19
282             read: 1
283             write: 0
284         - type: int
285           value: 100
286 - line: 31
287   domain: '[N] -> { [S_12[i] -> [__pet_test_0 = 1]] : 0 <= i < N }'
288   body:
289     type: expression
290     expr:
291       type: op
292       operation: =
293       arguments:
294       - type: access
295         index: '[N] -> { S_12[i] -> y[(1 + i)] }'
296         reference: __pet_ref_21
297         read: 0
298         write: 1
299       - type: call
300         name: F2
301         arguments:
302         - type: access
303           index: '[N] -> { S_12[i] -> y[(i)] }'
304           reference: __pet_ref_22
305           read: 1
306           write: 0
307   arguments:
308   - type: access
309     index: '[N] -> { S_12[i] -> __pet_test_0[(i)] }'
310     reference: __pet_ref_20
311     read: 1
312     write: 0
313 - line: 32
314   domain: '[N] -> { [S_13[i] -> [__pet_test_0 = 1]] : 0 <= i < N }'
315   body:
316     type: expression
317     expr:
318       type: op
319       operation: =
320       arguments:
321       - type: access
322         index: '[N] -> { S_13[i] -> t[(i)] }'
323         reference: __pet_ref_24
324         read: 0
325         write: 1
326       - type: call
327         name: F3
328         arguments:
329         - type: access
330           index: '[N] -> { S_13[i] -> t[(i)] }'
331           reference: __pet_ref_25
332           read: 1
333           write: 0
334   arguments:
335   - type: access
336     index: '[N] -> { S_13[i] -> __pet_test_0[(i)] }'
337     reference: __pet_ref_23
338     read: 1
339     write: 0
340 - line: 34
341   domain: '[N] -> { S_14[i] : 0 <= i < N }'
342   body:
343     type: expression
344     expr:
345       type: call
346       name: F4
347       arguments:
348       - type: access
349         index: '[N] -> { S_14[i] -> y[(1 + i)] }'
350         reference: __pet_ref_26
351         read: 1
352         write: 0
353       - type: access
354         index: '[N] -> { S_14[i] -> z[(i)] }'
355         reference: __pet_ref_27
356         read: 1
357         write: 0
358       - type: op
359         operation: '&'
360         arguments:
361         - type: access
362           may_read: '[N] -> { S_14[i] -> y[1 + i] }'
363           may_write: '[N] -> { S_14[i] -> y[1 + i] }'
364           must_write: '[N] -> {  }'
365           index: '[N] -> { S_14[i] -> y[(1 + i)] }'
366           reference: __pet_ref_28
367           read: 1
368           write: 1
369       - type: op
370         operation: '&'
371         arguments:
372         - type: access
373           may_read: '[N] -> { S_14[i] -> z[2 + i] }'
374           may_write: '[N] -> { S_14[i] -> z[2 + i] }'
375           must_write: '[N] -> {  }'
376           index: '[N] -> { S_14[i] -> z[(2 + i)] }'
377           reference: __pet_ref_29
378           read: 1
379           write: 1
380 - line: 27
381   domain: '[N] -> { S_15[i] : 0 <= i < N }'
382   body:
383     type: expression
384     expr:
385       type: op
386       operation: =
387       arguments:
388       - type: access
389         index: '[N] -> { S_15[i] -> i[] }'
390         reference: __pet_ref_30
391         read: 0
392         write: 1
393       - type: access
394         index: '[N] -> { S_15[i] -> [(1 + i)] }'
395         reference: __pet_ref_31
396         read: 1
397         write: 0
398 - line: -1
399   domain: '[N] -> { S_16[] }'
400   body:
401     type: expression
402     expr:
403       type: op
404       operation: kill
405       arguments:
406       - type: access
407         killed: '[N] -> { S_16[] -> i[] }'
408         index: '[N] -> { S_16[] -> i[] }'
409         reference: __pet_ref_32
410         kill: 1
411 - line: -1
412   domain: '[N] -> { S_17[] }'
413   body:
414     type: expression
415     expr:
416       type: op
417       operation: kill
418       arguments:
419       - type: access
420         killed: '[N] -> { S_17[] -> x[o0] : 0 <= o0 < N }'
421         index: '[N] -> { S_17[] -> x[] }'
422         depth: 1
423         reference: __pet_ref_33
424         kill: 1