pet 0.11.8
[pet.git] / tests / quasi_affine.scop
blob6d6d970cd3235038a1559cde0470c4dffe7d1e52
1 start: 88
2 end: 222
3 indent: "\t"
4 context: '[N, in] -> {  : -1 <= N <= 2147483646 and -2147483648 <= in <= 2147483647
5   }'
6 schedule: '{ domain: "[N, in] -> { S_8[]; S_7[]; S_1[] : N >= 0; S_3[i] : 0 < i <=
7   N; S_4[] : N >= 0; S_2[i] : 0 < i <= N; S_0[] : N >= 0; S_6[]; S_5[] }", child:
8   { sequence: [ { filter: "[N] -> { S_0[] }" }, { filter: "[N] -> { S_1[] }" }, {
9   filter: "[N] -> { S_3[i]; S_2[i] }", child: { schedule: "[N] -> L_0[{ S_3[i] ->
10   [(i)]; S_2[i] -> [(i)] }]", child: { sequence: [ { filter: "[N] -> { S_2[i] }" },
11   { filter: "[N] -> { S_3[i] }" } ] } } }, { filter: "[N] -> { S_4[] }" }, { filter:
12   "[N] -> { S_5[]; S_7[]; S_6[]; S_8[] }", child: { set: [ { filter: "{ S_5[] }" },
13   { filter: "{ S_6[] }" }, { filter: "{ S_7[] }" }, { filter: "{ S_8[] }" } ] } }
14   ] } }'
15 arrays:
16 - context: '[N] -> {  : -1 <= N <= 2147483646 }'
17   extent: '[N, in] -> { A[i0] : 0 <= i0 <= N }'
18   element_type: int
19   element_size: 4
20 - context: '{  :  }'
21   extent: '[N, in] -> { i[] }'
22   element_type: int
23   element_size: 4
24 - context: '{  :  }'
25   extent: '[N, in] -> { in[] }'
26   element_type: int
27   element_size: 4
28 - context: '{  :  }'
29   extent: '[N, in] -> { out[] }'
30   element_type: int
31   element_size: 4
32 statements:
33 - line: 14
34   domain: '[N, in] -> { S_0[] : N >= 0 }'
35   body:
36     type: expression
37     expr:
38       type: op
39       operation: =
40       arguments:
41       - type: access
42         index: '[N, in] -> { S_0[] -> A[(0)] }'
43         reference: __pet_ref_0
44         read: 0
45         write: 1
46       - type: access
47         index: '[N, in] -> { S_0[] -> [(in)] }'
48         reference: __pet_ref_1
49         read: 1
50         write: 0
51 - line: 15
52   domain: '[N, in] -> { S_1[] : N >= 0 }'
53   body:
54     type: expression
55     expr:
56       type: op
57       operation: =
58       arguments:
59       - type: access
60         index: '[N, in] -> { S_1[] -> i[] }'
61         reference: __pet_ref_2
62         read: 0
63         write: 1
64       - type: int
65         value: 1
66 - line: 16
67   domain: '[N, in] -> { S_2[i] : 0 < i <= N }'
68   body:
69     type: expression
70     expr:
71       type: op
72       operation: =
73       arguments:
74       - type: access
75         index: '[N, in] -> { S_2[i] -> A[(i)] }'
76         reference: __pet_ref_3
77         read: 0
78         write: 1
79       - type: call
80         name: f
81         arguments:
82         - type: call
83           name: g
84           arguments:
85           - type: access
86             index: '[N, in] -> { S_2[i] -> A[(floor((i)/2))] }'
87             reference: __pet_ref_4
88             read: 1
89             write: 0
90 - line: 15
91   domain: '[N, in] -> { S_3[i] : 0 < i <= N }'
92   body:
93     type: expression
94     expr:
95       type: op
96       operation: =
97       arguments:
98       - type: access
99         index: '[N, in] -> { S_3[i] -> i[] }'
100         reference: __pet_ref_5
101         read: 0
102         write: 1
103       - type: access
104         index: '[N, in] -> { S_3[i] -> [(1 + i)] }'
105         reference: __pet_ref_6
106         read: 1
107         write: 0
108 - line: 18
109   domain: '[N, in] -> { S_4[] : N >= 0 }'
110   body:
111     type: expression
112     expr:
113       type: op
114       operation: =
115       arguments:
116       - type: access
117         index: '[N, in] -> { S_4[] -> out[] }'
118         reference: __pet_ref_7
119         read: 0
120         write: 1
121       - type: call
122         name: g
123         arguments:
124         - type: access
125           index: '[N, in] -> { S_4[] -> A[(N)] }'
126           reference: __pet_ref_8
127           read: 1
128           write: 0
129 - line: -1
130   domain: '[N, in] -> { S_5[] }'
131   body:
132     type: expression
133     expr:
134       type: op
135       operation: kill
136       arguments:
137       - type: access
138         killed: '[N, in] -> { S_5[] -> i[] }'
139         index: '[N, in] -> { S_5[] -> i[] }'
140         reference: __pet_ref_9
141         kill: 1
142 - line: -1
143   domain: '[N, in] -> { S_6[] }'
144   body:
145     type: expression
146     expr:
147       type: op
148       operation: kill
149       arguments:
150       - type: access
151         killed: '[N, in] -> { S_6[] -> in[] }'
152         index: '[N, in] -> { S_6[] -> in[] }'
153         reference: __pet_ref_10
154         kill: 1
155 - line: -1
156   domain: '[N, in] -> { S_7[] }'
157   body:
158     type: expression
159     expr:
160       type: op
161       operation: kill
162       arguments:
163       - type: access
164         killed: '[N, in] -> { S_7[] -> A[o0] : 0 <= o0 <= N }'
165         index: '[N, in] -> { S_7[] -> A[] }'
166         depth: 1
167         reference: __pet_ref_11
168         kill: 1
169 - line: -1
170   domain: '[N, in] -> { S_8[] }'
171   body:
172     type: expression
173     expr:
174       type: op
175       operation: kill
176       arguments:
177       - type: access
178         killed: '[N, in] -> { S_8[] -> out[] }'
179         index: '[N, in] -> { S_8[] -> out[] }'
180         reference: __pet_ref_12
181         kill: 1