export pet_expr_new_cast
[pet.git] / tests / break6.scop
blobb8d6862e9a966b63d75b3479981b23a422e4b7ef
1 start: 40
2 end: 184
3 indent: "\t"
4 context: '{  :  }'
5 arrays:
6 - context: '{  :  }'
7   extent: '{ __pet_test_0[t] : t >= 0 }'
8   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
9   element_type: int
10   element_size: 4
11   uniquely_defined: 1
12 - context: '{  :  }'
13   extent: '{ __pet_test_1[t] : t >= 0 }'
14   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
15   element_type: int
16   element_size: 4
17   uniquely_defined: 1
18 - context: '{  :  }'
19   extent: '{ __pet_test_2[t] : t >= 0 }'
20   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
21   element_type: int
22   element_size: 4
23   uniquely_defined: 1
24 - context: '{  :  }'
25   extent: '{ __pet_test_3[t] : t >= 0 }'
26   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
27   element_type: int
28   element_size: 4
29   uniquely_defined: 1
30 - context: '{  :  }'
31   extent: '{ a[i0] : i0 >= 0 and i0 <= 99 }'
32   element_type: int
33   element_size: 4
34 - context: '{  :  }'
35   extent: '{ i[] }'
36   element_type: int
37   element_size: 4
38 statements:
39 - line: 8
40   domain: '{ S_0[] }'
41   schedule: '{ S_0[] -> [0, 0] }'
42   body:
43     type: expression
44     expr:
45       type: op
46       operation: =
47       arguments:
48       - type: access
49         index: '{ S_0[] -> i[] }'
50         reference: __pet_ref_0
51         read: 0
52         write: 1
53       - type: call
54         name: f
55 - line: 8
56   domain: '{ [S_1[t] -> [1, 0]] : t >= 0 }'
57   schedule: '{ S_1[t] -> [0, 1, t, 0] }'
58   body:
59     type: expression
60     expr:
61       type: op
62       operation: =
63       arguments:
64       - type: access
65         index: '{ S_1[t] -> __pet_test_0[(t)] }'
66         reference: __pet_ref_3
67         read: 0
68         write: 1
69       - type: op
70         operation: <
71         arguments:
72         - type: access
73           index: '{ S_1[t] -> i[] }'
74           reference: __pet_ref_4
75           read: 1
76           write: 0
77         - type: int
78           value: 100
79   arguments:
80   - type: access
81     index: '{ S_1[t] -> __pet_test_0[((-1 + t) : t >= 1)] }'
82     reference: __pet_ref_1
83     read: 1
84     write: 0
85   - type: access
86     index: '{ S_1[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
87     reference: __pet_ref_2
88     read: 1
89     write: 0
90 - line: 9
91   domain: '{ [S_2[t] -> [1, 0]] : t >= 0 }'
92   schedule: '{ S_2[t] -> [0, 1, t, 1, 0] }'
93   body:
94     type: expression
95     expr:
96       type: op
97       operation: =
98       arguments:
99       - type: access
100         index: '{ [S_2[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
101         reference: __pet_ref_8
102         read: 0
103         write: 1
104         arguments:
105         - type: access
106           index: '{ S_2[t] -> i[] }'
107           reference: __pet_ref_7
108           read: 1
109           write: 0
110       - type: int
111         value: 0
112   arguments:
113   - type: access
114     index: '{ S_2[t] -> __pet_test_0[(t)] }'
115     reference: __pet_ref_5
116     read: 1
117     write: 0
118   - type: access
119     index: '{ S_2[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
120     reference: __pet_ref_6
121     read: 1
122     write: 0
123 - line: 10
124   domain: '{ [S_3[t] -> [1, 0]] : t >= 0 }'
125   schedule: '{ S_3[t] -> [0, 1, t, 1, 1, 0] }'
126   body:
127     type: expression
128     expr:
129       type: op
130       operation: =
131       arguments:
132       - type: access
133         index: '{ S_3[t] -> __pet_test_1[(t)] }'
134         reference: __pet_ref_11
135         read: 0
136         write: 1
137       - type: call
138         name: f
139   arguments:
140   - type: access
141     index: '{ S_3[t] -> __pet_test_0[(t)] }'
142     reference: __pet_ref_9
143     read: 1
144     write: 0
145   - type: access
146     index: '{ S_3[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
147     reference: __pet_ref_10
148     read: 1
149     write: 0
150 - line: 12
151   domain: '{ [S_4[t] -> [1, 0]] : t >= 0 }'
152   schedule: '{ S_4[t] -> [0, 1, t, 1, 2] }'
153   body:
154     type: expression
155     expr:
156       type: op
157       operation: =
158       arguments:
159       - type: access
160         index: '{ [S_4[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
161         reference: __pet_ref_15
162         read: 0
163         write: 1
164         arguments:
165         - type: access
166           index: '{ S_4[t] -> i[] }'
167           reference: __pet_ref_14
168           read: 1
169           write: 0
170       - type: int
171         value: 1
172   arguments:
173   - type: access
174     index: '{ S_4[t] -> __pet_test_0[(t)] }'
175     reference: __pet_ref_12
176     read: 1
177     write: 0
178   - type: access
179     index: '{ S_4[t] -> __pet_test_1[(t)] }'
180     reference: __pet_ref_13
181     read: 1
182     write: 0
183 - line: 13
184   domain: '{ [S_5[t] -> [1, 0]] : t >= 0 }'
185   schedule: '{ S_5[t] -> [0, 1, t, 1, 3, 0, 0] }'
186   body:
187     type: expression
188     expr:
189       type: op
190       operation: =
191       arguments:
192       - type: access
193         index: '{ S_5[t] -> __pet_test_2[(t)] }'
194         reference: __pet_ref_18
195         read: 0
196         write: 1
197       - type: call
198         name: f
199   arguments:
200   - type: access
201     index: '{ S_5[t] -> __pet_test_0[(t)] }'
202     reference: __pet_ref_16
203     read: 1
204     write: 0
205   - type: access
206     index: '{ S_5[t] -> __pet_test_1[(t)] }'
207     reference: __pet_ref_17
208     read: 1
209     write: 0
210 - line: -1
211   domain: '{ [S_6[t] -> [1, 0]] : t >= 0 }'
212   schedule: '{ S_6[t] -> [0, 1, t, 1, 3, 1] }'
213   body:
214     type: expression
215     expr:
216       type: op
217       operation: =
218       arguments:
219       - type: access
220         index: '{ S_6[t] -> __pet_test_3[(t)] }'
221         reference: __pet_ref_21
222         read: 0
223         write: 1
224       - type: op
225         operation: '?:'
226         arguments:
227         - type: access
228           index: '{ S_6[t] -> __pet_test_1[(t)] }'
229           reference: __pet_ref_22
230           read: 1
231           write: 0
232         - type: access
233           index: '{ S_6[t] -> [(1)] }'
234           reference: __pet_ref_23
235           read: 1
236           write: 0
237         - type: access
238           may_read: '{ [S_6[t] -> [0]] -> __pet_test_2[t] }'
239           index: '{ [S_6[t] -> [__pet_test_1]] -> __pet_test_2[(t)] }'
240           reference: __pet_ref_25
241           read: 1
242           write: 0
243           arguments:
244           - type: access
245             index: '{ S_6[t] -> __pet_test_1[(t)] }'
246             reference: __pet_ref_24
247             read: 1
248             write: 0
249   arguments:
250   - type: access
251     index: '{ S_6[t] -> __pet_test_0[(t)] }'
252     reference: __pet_ref_19
253     read: 1
254     write: 0
255   - type: access
256     index: '{ S_6[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
257     reference: __pet_ref_20
258     read: 1
259     write: 0
260 - line: 15
261   domain: '{ [S_7[t] -> [1, 0, 0]] : t >= 0 }'
262   schedule: '{ S_7[t] -> [0, 1, t, 1, 4] }'
263   body:
264     type: expression
265     expr:
266       type: op
267       operation: =
268       arguments:
269       - type: access
270         index: '{ [S_7[t] -> [i1]] -> a[((i1) : i1 >= 0)] }'
271         reference: __pet_ref_30
272         read: 0
273         write: 1
274         arguments:
275         - type: access
276           index: '{ S_7[t] -> i[] }'
277           reference: __pet_ref_29
278           read: 1
279           write: 0
280       - type: int
281         value: 2
282   arguments:
283   - type: access
284     index: '{ S_7[t] -> __pet_test_0[(t)] }'
285     reference: __pet_ref_26
286     read: 1
287     write: 0
288   - type: access
289     index: '{ S_7[t] -> __pet_test_1[((-1 + t) : t >= 1)] }'
290     reference: __pet_ref_27
291     read: 1
292     write: 0
293   - type: access
294     index: '{ S_7[t] -> __pet_test_3[(t)] }'
295     reference: __pet_ref_28
296     read: 1
297     write: 0
298 - line: 8
299   domain: '{ [S_8[t] -> [1, 0]] : t >= 0 }'
300   schedule: '{ S_8[t] -> [0, 1, t, 2] }'
301   body:
302     type: expression
303     expr:
304       type: op
305       operation: +=
306       arguments:
307       - type: access
308         index: '{ S_8[t] -> i[] }'
309         reference: __pet_ref_33
310         read: 0
311         write: 1
312       - type: int
313         value: 1
314   arguments:
315   - type: access
316     index: '{ S_8[t] -> __pet_test_0[(t)] }'
317     reference: __pet_ref_31
318     read: 1
319     write: 0
320   - type: access
321     index: '{ S_8[t] -> __pet_test_1[(t)] }'
322     reference: __pet_ref_32
323     read: 1
324     write: 0
325 implications:
326 - satisfied: 0
327   extension: '{ __pet_test_1[t] -> __pet_test_1[t''] : t'' <= t and t'' >= 0 }'
328 - satisfied: 1
329   extension: '{ __pet_test_0[t] -> __pet_test_0[t''] : t'' <= t and t'' >= 0 }'