pet_stmt: use pet_tree to represent statement body
[pet.git] / tests / wdp.scop
blob9b685c76babbfc82260356cf6e85afa0d9590dcf
1 start: 248
2 end: 619
3 indent: "\t"
4 context: '[N] -> {  : N >= 8 and N <= 16 }'
5 arrays:
6 - context: '{  :  }'
7   extent: '[N] -> { __pet_test_0[i] : i <= -1 + N and i >= 0 }'
8   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
9   element_type: int
10   element_size: 4
11   uniquely_defined: 1
12 - context: '[N] -> {  : N >= -1 and N <= 2147483646 }'
13   extent: '[N] -> { t[i0] : i0 <= N and i0 >= 0 }'
14   element_type: int
15   element_size: 4
16 - context: '[N] -> {  : N >= 0 }'
17   extent: '[N] -> { x[i0] : i0 <= -1 + N and i0 >= 0 }'
18   element_type: int
19   element_size: 4
20 - context: '[N] -> {  : N >= -1 and N <= 2147483646 }'
21   extent: '[N] -> { y[i0] : i0 <= N and i0 >= 0 }'
22   element_type: int
23   element_size: 4
24 - context: '[N] -> {  : N >= -2 and N <= 2147483645 }'
25   extent: '[N] -> { z[i0] : i0 <= 1 + N and i0 >= 0 }'
26   element_type: int
27   element_size: 4
28 statements:
29 - line: 19
30   domain: '[N] -> { S_0[i] : i <= -1 + N and i >= 0 }'
31   schedule: '[N] -> { S_0[i] -> [0, i] }'
32   body:
33     type: expression
34     expr:
35       type: op
36       operation: =
37       arguments:
38       - type: access
39         relation: '[N] -> { S_0[i] -> x[i] }'
40         index: '[N] -> { S_0[i] -> x[(i)] }'
41         reference: __pet_ref_0
42         read: 0
43         write: 1
44       - type: call
45         name: _Source_x
46 - line: 22
47   domain: '[N] -> { S_1[i] : i <= N and i >= 0 }'
48   schedule: '[N] -> { S_1[i] -> [1, i] }'
49   body:
50     type: expression
51     expr:
52       type: call
53       name: _Source_yt
54       arguments:
55       - type: op
56         operation: '&'
57         arguments:
58         - type: access
59           relation: '[N] -> { S_1[i] -> y[i] }'
60           index: '[N] -> { S_1[i] -> y[(i)] }'
61           reference: __pet_ref_1
62           read: 0
63           write: 1
64       - type: op
65         operation: '&'
66         arguments:
67         - type: access
68           relation: '[N] -> { S_1[i] -> t[i] }'
69           index: '[N] -> { S_1[i] -> t[(i)] }'
70           reference: __pet_ref_2
71           read: 0
72           write: 1
73 - line: 25
74   domain: '[N] -> { S_2[i] : i <= 1 + N and i >= 0 }'
75   schedule: '[N] -> { S_2[i] -> [2, i] }'
76   body:
77     type: expression
78     expr:
79       type: op
80       operation: =
81       arguments:
82       - type: access
83         relation: '[N] -> { S_2[i] -> z[i] }'
84         index: '[N] -> { S_2[i] -> z[(i)] }'
85         reference: __pet_ref_3
86         read: 0
87         write: 1
88       - type: call
89         name: _Source_z
90 - line: 29
91   domain: '[N] -> { [S_3[i] -> [0]] : i <= -1 + N and i >= 0 }'
92   schedule: '[N] -> { S_3[i] -> [3, i, 0] }'
93   body:
94     type: expression
95     expr:
96       type: op
97       operation: =
98       arguments:
99       - type: access
100         relation: '[N] -> { S_3[i] -> x[i] }'
101         index: '[N] -> { S_3[i] -> x[(i)] }'
102         reference: __pet_ref_5
103         read: 0
104         write: 1
105       - type: call
106         name: F1
107         arguments:
108         - type: access
109           relation: '[N] -> { S_3[i] -> x[i] }'
110           index: '[N] -> { S_3[i] -> x[(i)] }'
111           reference: __pet_ref_6
112           read: 1
113           write: 0
114   arguments:
115   - type: access
116     relation: '[N] -> { S_3[i] -> z[i] }'
117     index: '[N] -> { S_3[i] -> z[(i)] }'
118     reference: __pet_ref_4
119     read: 1
120     write: 0
121 - line: 30
122   domain: '[N] -> { S_4[i] : i <= -1 + N and i >= 0 }'
123   schedule: '[N] -> { S_4[i] -> [3, i, 1, 0] }'
124   body:
125     type: expression
126     expr:
127       type: op
128       operation: =
129       arguments:
130       - type: access
131         relation: '[N] -> { S_4[i] -> __pet_test_0[i] }'
132         index: '[N] -> { S_4[i] -> __pet_test_0[(i)] }'
133         reference: __pet_ref_7
134         read: 0
135         write: 1
136       - type: op
137         operation: '>'
138         arguments:
139         - type: op
140           operation: '*'
141           arguments:
142           - type: access
143             relation: '[N] -> { S_4[i] -> x[i] }'
144             index: '[N] -> { S_4[i] -> x[(i)] }'
145             reference: __pet_ref_8
146             read: 1
147             write: 0
148           - type: access
149             relation: '[N] -> { S_4[i] -> x[i] }'
150             index: '[N] -> { S_4[i] -> x[(i)] }'
151             reference: __pet_ref_9
152             read: 1
153             write: 0
154         - type: int
155           value: 100
156 - line: 31
157   domain: '[N] -> { [S_5[i] -> [1]] : i <= -1 + N and i >= 0 }'
158   schedule: '[N] -> { S_5[i] -> [3, i, 1, 1, 0] }'
159   body:
160     type: expression
161     expr:
162       type: op
163       operation: =
164       arguments:
165       - type: access
166         relation: '[N] -> { S_5[i] -> y[1 + i] }'
167         index: '[N] -> { S_5[i] -> y[(1 + i)] }'
168         reference: __pet_ref_11
169         read: 0
170         write: 1
171       - type: call
172         name: F2
173         arguments:
174         - type: access
175           relation: '[N] -> { S_5[i] -> y[i] }'
176           index: '[N] -> { S_5[i] -> y[(i)] }'
177           reference: __pet_ref_12
178           read: 1
179           write: 0
180   arguments:
181   - type: access
182     relation: '[N] -> { S_5[i] -> __pet_test_0[i] }'
183     index: '[N] -> { S_5[i] -> __pet_test_0[(i)] }'
184     reference: __pet_ref_10
185     read: 1
186     write: 0
187 - line: 32
188   domain: '[N] -> { [S_6[i] -> [1]] : i <= -1 + N and i >= 0 }'
189   schedule: '[N] -> { S_6[i] -> [3, i, 1, 1, 1] }'
190   body:
191     type: expression
192     expr:
193       type: op
194       operation: =
195       arguments:
196       - type: access
197         relation: '[N] -> { S_6[i] -> t[i] }'
198         index: '[N] -> { S_6[i] -> t[(i)] }'
199         reference: __pet_ref_14
200         read: 0
201         write: 1
202       - type: call
203         name: F3
204         arguments:
205         - type: access
206           relation: '[N] -> { S_6[i] -> t[i] }'
207           index: '[N] -> { S_6[i] -> t[(i)] }'
208           reference: __pet_ref_15
209           read: 1
210           write: 0
211   arguments:
212   - type: access
213     relation: '[N] -> { S_6[i] -> __pet_test_0[i] }'
214     index: '[N] -> { S_6[i] -> __pet_test_0[(i)] }'
215     reference: __pet_ref_13
216     read: 1
217     write: 0
218 - line: 34
219   domain: '[N] -> { S_7[i] : i <= -1 + N and i >= 0 }'
220   schedule: '[N] -> { S_7[i] -> [3, i, 2] }'
221   body:
222     type: expression
223     expr:
224       type: call
225       name: F4
226       arguments:
227       - type: access
228         relation: '[N] -> { S_7[i] -> y[1 + i] }'
229         index: '[N] -> { S_7[i] -> y[(1 + i)] }'
230         reference: __pet_ref_16
231         read: 1
232         write: 0
233       - type: access
234         relation: '[N] -> { S_7[i] -> z[i] }'
235         index: '[N] -> { S_7[i] -> z[(i)] }'
236         reference: __pet_ref_17
237         read: 1
238         write: 0
239       - type: op
240         operation: '&'
241         arguments:
242         - type: access
243           relation: '[N] -> { S_7[i] -> y[1 + i] }'
244           index: '[N] -> { S_7[i] -> y[(1 + i)] }'
245           reference: __pet_ref_18
246           read: 0
247           write: 1
248       - type: op
249         operation: '&'
250         arguments:
251         - type: access
252           relation: '[N] -> { S_7[i] -> z[2 + i] }'
253           index: '[N] -> { S_7[i] -> z[(2 + i)] }'
254           reference: __pet_ref_19
255           read: 0
256           write: 1