pet_stmt: use pet_tree to represent statement body
[pet.git] / tests / loop7.scop
blobc00ac6ec237a666ef97497a84123f81ae312e722
1 start: 40
2 end: 114
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: '{ a[] }'
14   element_type: int
15   element_size: 4
16 - context: '{  :  }'
17   extent: '{ i[] }'
18   element_type: int
19   element_size: 4
20 statements:
21 - line: 9
22   domain: '{ S_0[] }'
23   schedule: '{ S_0[] -> [0] }'
24   body:
25     type: expression
26     expr:
27       type: op
28       operation: =
29       arguments:
30       - type: access
31         relation: '{ S_0[] -> i[] }'
32         index: '{ S_0[] -> i[] }'
33         reference: __pet_ref_0
34         read: 0
35         write: 1
36       - type: call
37         name: f
38 - line: 10
39   domain: '{ S_1[] }'
40   schedule: '{ S_1[] -> [1, 0] }'
41   body:
42     type: expression
43     expr:
44       type: op
45       operation: =
46       arguments:
47       - type: access
48         relation: '{ S_1[] -> i[] }'
49         index: '{ S_1[] -> i[] }'
50         reference: __pet_ref_1
51         read: 0
52         write: 1
53       - type: access
54         relation: '{ S_1[] -> i[] }'
55         index: '{ S_1[] -> i[] }'
56         reference: __pet_ref_2
57         read: 1
58         write: 0
59 - line: 10
60   domain: '{ [S_2[t] -> [1]] : t >= 0 }'
61   schedule: '{ S_2[t] -> [1, 1, t, 0] }'
62   body:
63     type: expression
64     expr:
65       type: op
66       operation: =
67       arguments:
68       - type: access
69         relation: '{ S_2[t] -> __pet_test_0[t] }'
70         index: '{ S_2[t] -> __pet_test_0[(t)] }'
71         reference: __pet_ref_4
72         read: 0
73         write: 1
74       - type: op
75         operation: <
76         arguments:
77         - type: access
78           relation: '{ S_2[t] -> i[] }'
79           index: '{ S_2[t] -> i[] }'
80           reference: __pet_ref_5
81           read: 1
82           write: 0
83         - type: int
84           value: 10
85   arguments:
86   - type: access
87     relation: '{ S_2[t] -> __pet_test_0[-1 + t] : t >= 1 }'
88     index: '{ S_2[t] -> __pet_test_0[((-1 + t) : t >= 1)] }'
89     reference: __pet_ref_3
90     read: 1
91     write: 0
92 - line: 11
93   domain: '{ [S_3[t] -> [1]] : t >= 0 }'
94   schedule: '{ S_3[t] -> [1, 1, t, 1] }'
95   body:
96     type: expression
97     expr:
98       type: op
99       operation: =
100       arguments:
101       - type: access
102         relation: '{ S_3[t] -> a[] }'
103         index: '{ S_3[t] -> a[] }'
104         reference: __pet_ref_7
105         read: 0
106         write: 1
107       - type: int
108         value: 5
109   arguments:
110   - type: access
111     relation: '{ S_3[t] -> __pet_test_0[t] }'
112     index: '{ S_3[t] -> __pet_test_0[(t)] }'
113     reference: __pet_ref_6
114     read: 1
115     write: 0
116 - line: 10
117   domain: '{ [S_4[t] -> [1]] : t >= 0 }'
118   schedule: '{ S_4[t] -> [1, 1, t, 2] }'
119   body:
120     type: expression
121     expr:
122       type: op
123       operation: +=
124       arguments:
125       - type: access
126         relation: '{ S_4[t] -> i[] }'
127         index: '{ S_4[t] -> i[] }'
128         reference: __pet_ref_9
129         read: 0
130         write: 1
131       - type: int
132         value: 1
133   arguments:
134   - type: access
135     relation: '{ S_4[t] -> __pet_test_0[t] }'
136     index: '{ S_4[t] -> __pet_test_0[(t)] }'
137     reference: __pet_ref_8
138     read: 1
139     write: 0
140 implications:
141 - satisfied: 1
142   extension: '{ __pet_test_0[t] -> __pet_test_0[t''] : t'' <= t and t'' >= 0 }'