update barvinok to version 0.41.7
[ppn.git] / tests / inputs / test_mod_pn_adg.yaml
blobb76862a6d652405409dff689655f1e2efa96081f
1 name: test_mod
2 context: '{  :  }'
3 iterator_map: '{ [c0, c1] -> [c0] }'
4 iterators: [c0]
5 all_iterators: [c0, c1]
6 nodes:
7 - name: ND_0
8   function:
9     name: F1
10     out:
11     - {var: {access: '{ ND_0[i0] -> out_0ND_0[] }', type: int}, type: reference}
12     domain:
13       bounds: '{ ND_0[i0] : 0 <= i0 <= 9 }'
14   domain:
15     bounds: '{ ND_0[i0] : 0 <= i0 <= 9 }'
16   schedule: '{ ND_0[i0] -> [c0 = i0, c1 = 0] : 0 <= i0 <= 9 }'
17   output_ports:
18   - name: ND_0OP_ED_0_0_V_0
19     node: ND_0
20     edge: ED_0
21     vars:
22     - {access: '{ [ND_0[i0] -> local[i1]] -> out_0ND_0[] }', type: int}
23     domain:
24       bounds: '{ [ND_0[i0] -> local[i1]] : 3i1 = i0 and 0 <= i0 <= 9 }'
25       controls:
26       - {name: e3, expr: '{ ND_0[c0] -> [(floor((c0)/3))] }'}
27   - name: ND_0OP_ED_1_0_V_0
28     node: ND_0
29     edge: ED_1
30     vars:
31     - {access: '{ [ND_0[i0] -> local[i1]] -> out_0ND_0[] }', type: int}
32     domain:
33       bounds: '{ [ND_0[i0] -> local[i1]] : 3i1 = -1 + i0 and 0 <= i0 <= 9 }'
34       controls:
35       - {name: e4, expr: '{ ND_0[c0] -> [(floor((-1 + c0)/3))] }'}
36   - name: ND_0OP_ED_2_0_V_0
37     node: ND_0
38     edge: ED_2
39     vars:
40     - {access: '{ [ND_0[i0] -> local[i1]] -> out_0ND_0[] }', type: int}
41     domain:
42       bounds: '{ [ND_0[i0] -> local[i1]] : 3i1 = 1 + i0 and 0 <= i0 <= 9 }'
43       controls:
44       - {name: e5, expr: '{ ND_0[c0] -> [(floor((1 + c0)/3))] }'}
45 - name: ND_1
46   function:
47     name: F2
48     in:
49     - {var: {access: '{ ND_1[i0] -> in_0ND_1[] }', type: int}, type: reference}
50     out:
51     - {var: {access: '{ ND_1[i0] -> out_1ND_1[] }', type: int}, type: reference}
52     domain:
53       bounds: '{ [ND_1[i0] -> local[i1]] : 3i1 = i0 and 0 <= i0 <= 9 }'
54       controls:
55       - {name: e0, expr: '{ ND_1[c0] -> [(floor((c0)/3))] }'}
56   domain:
57     bounds: '{ [ND_1[i0] -> local[i1]] : 3i1 = i0 and 0 <= i0 <= 9 }'
58     controls:
59     - {name: e0, expr: '{ ND_1[c0] -> [(floor((c0)/3))] }'}
60   schedule: '{ ND_1[i0] -> [c0 = i0, c1 = 1] : 3*floor((i0)/3) = i0 and 0 <= i0 <=
61     9 }'
62   input_ports:
63   - name: ND_1IP_ED_0_0_V_0
64     node: ND_1
65     edge: ED_0
66     vars:
67     - {access: '{ [[ND_1[i0] -> local[i1]] -> local[]] -> in_0ND_1[] }', type: int}
68     domain:
69       bounds: '{ [[ND_1[i0] -> local[i1]] -> local[]] : 3i1 = i0 and 0 <= i0 <= 9
70         }'
71       controls:
72       - {name: e0, expr: '{ ND_1[c0] -> [(floor((c0)/3))] }'}
73   output_ports:
74   - name: ND_1OP_ED_3_0_V_1
75     node: ND_1
76     edge: ED_3
77     vars:
78     - {access: '{ [ND_1[i0] -> local[i1]] -> out_1ND_1[] }', type: int}
79     domain:
80       bounds: '{ [ND_1[i0] -> local[i1]] : 3i1 = i0 and 0 <= i0 <= 9 }'
81       controls:
82       - {name: e0, expr: '{ ND_1[c0] -> [(floor((c0)/3))] }'}
83 - name: ND_2
84   function:
85     name: F2
86     in:
87     - {var: {access: '{ ND_2[i0] -> in_0ND_2[] }', type: int}, type: reference}
88     out:
89     - {var: {access: '{ ND_2[i0] -> out_1ND_2[] }', type: int}, type: reference}
90     domain:
91       bounds: '{ [ND_2[i0] -> local[i1]] : 3i1 = -1 + i0 and 0 <= i0 <= 9 }'
92       controls:
93       - {name: e1, expr: '{ ND_2[c0] -> [(floor((-1 + c0)/3))] }'}
94   domain:
95     bounds: '{ [ND_2[i0] -> local[i1]] : 3i1 = -1 + i0 and 0 <= i0 <= 9 }'
96     controls:
97     - {name: e1, expr: '{ ND_2[c0] -> [(floor((-1 + c0)/3))] }'}
98   schedule: '{ ND_2[i0] -> [c0 = i0, c1 = 1] : 3*floor((-1 + i0)/3) = -1 + i0 and
99     0 <= i0 <= 9 }'
100   input_ports:
101   - name: ND_2IP_ED_1_0_V_0
102     node: ND_2
103     edge: ED_1
104     vars:
105     - {access: '{ [[ND_2[i0] -> local[i1]] -> local[]] -> in_0ND_2[] }', type: int}
106     domain:
107       bounds: '{ [[ND_2[i0] -> local[i1]] -> local[]] : 3i1 = -1 + i0 and 0 <= i0
108         <= 9 }'
109       controls:
110       - {name: e1, expr: '{ ND_2[c0] -> [(floor((-1 + c0)/3))] }'}
111   output_ports:
112   - name: ND_2OP_ED_4_0_V_1
113     node: ND_2
114     edge: ED_4
115     vars:
116     - {access: '{ [ND_2[i0] -> local[i1]] -> out_1ND_2[] }', type: int}
117     domain:
118       bounds: '{ [ND_2[i0] -> local[i1]] : 3i1 = -1 + i0 and 0 <= i0 <= 9 }'
119       controls:
120       - {name: e1, expr: '{ ND_2[c0] -> [(floor((-1 + c0)/3))] }'}
121 - name: ND_3
122   function:
123     name: F2
124     in:
125     - {var: {access: '{ ND_3[i0] -> in_0ND_3[] }', type: int}, type: reference}
126     out:
127     - {var: {access: '{ ND_3[i0] -> out_1ND_3[] }', type: int}, type: reference}
128     domain:
129       bounds: '{ [ND_3[i0] -> local[i1]] : 0 <= i0 <= 9 and -3 + i0 <= 3i1 <= -2 +
130         i0 }'
131       controls:
132       - {name: e2, expr: '{ ND_3[c0] -> [(floor((-1 + c0)/3))] }'}
133   domain:
134     bounds: '{ [ND_3[i0] -> local[i1]] : 0 <= i0 <= 9 and -3 + i0 <= 3i1 <= -2 + i0
135       }'
136     controls:
137     - {name: e2, expr: '{ ND_3[c0] -> [(floor((-1 + c0)/3))] }'}
138   schedule: '{ ND_3[i0] -> [c0 = i0, c1 = 2] : 0 <= i0 <= 9 and 3*floor((-1 + i0)/3)
139     <= -2 + i0 }'
140   input_ports:
141   - name: ND_3IP_ED_2_0_V_0
142     node: ND_3
143     edge: ED_2
144     vars:
145     - {access: '{ [[ND_3[i0] -> local[i1]] -> local[]] -> in_0ND_3[] }', type: int}
146     domain:
147       bounds: '{ [[ND_3[i0] -> local[i1]] -> local[]] : 3i1 = -2 + i0 and 0 <= i0
148         <= 9 }'
149       controls:
150       - {name: e2, expr: '{ ND_3[c0] -> [(floor((-1 + c0)/3))] }'}
151   - name: ND_3IP_ED_3_0_V_0
152     node: ND_3
153     edge: ED_3
154     vars:
155     - {access: '{ [[ND_3[i0] -> local[i1]] -> local[]] -> in_0ND_3[] }', type: int}
156     domain:
157       bounds: '{ [[ND_3[i0] -> local[i1]] -> local[]] : 3i1 = -3 + i0 and 0 <= i0
158         <= 9 }'
159       controls:
160       - {name: e2, expr: '{ ND_3[c0] -> [(floor((-1 + c0)/3))] }'}
161   output_ports:
162   - name: ND_3OP_ED_5_0_V_1
163     node: ND_3
164     edge: ED_5
165     vars:
166     - {access: '{ [ND_3[i0] -> local[i1]] -> out_1ND_3[] }', type: int}
167     domain:
168       bounds: '{ [ND_3[i0] -> local[i1]] : 0 <= i0 <= 9 and -3 + i0 <= 3i1 <= -2 +
169         i0 }'
170       controls:
171       - {name: e2, expr: '{ ND_3[c0] -> [(floor((-1 + c0)/3))] }'}
172 - name: ND_4
173   function:
174     name: F3
175     in:
176     - {var: {access: '{ ND_4[i0] -> in_0ND_4[] }', type: int}, type: reference}
177     domain:
178       bounds: '{ ND_4[i0] : 0 <= i0 <= 9 }'
179   domain:
180     bounds: '{ ND_4[i0] : 0 <= i0 <= 9 }'
181   schedule: '{ ND_4[i0] -> [c0 = i0, c1 = 3] : 0 <= i0 <= 9 }'
182   input_ports:
183   - name: ND_4IP_ED_4_0_V_0
184     node: ND_4
185     edge: ED_4
186     vars:
187     - {access: '{ [[ND_4[i0] -> local[]] -> local[i1]] -> in_0ND_4[] }', type: int}
188     domain:
189       bounds: '{ [[ND_4[i0] -> local[]] -> local[i1]] : 3i1 = -1 + i0 and 0 <= i0
190         <= 9 }'
191       controls:
192       - {name: e6, expr: '{ [ND_4[c0] -> local[]] -> [(floor((-1 + c0)/3))] }'}
193   - name: ND_4IP_ED_5_0_V_0
194     node: ND_4
195     edge: ED_5
196     vars:
197     - {access: '{ [[ND_4[i0] -> local[]] -> local[i1]] -> in_0ND_4[] }', type: int}
198     domain:
199       bounds: '{ [[ND_4[i0] -> local[]] -> local[i1]] : 0 <= i0 <= 9 and i0 <= 3i1
200         <= 1 + i0 }'
201       controls:
202       - {name: e7, expr: '{ [ND_4[c0] -> local[]] -> [(floor((1 + c0)/3))] }'}
203 edges:
204 - name: ED_0
205   type: fifo
206   map: '{ lifted[[ND_1[i0] -> local[i1]] -> local[]] -> ND_0[(i0)] }'
207   from_node: ND_0
208   from_port: ND_0OP_ED_0_0_V_0
209   to_node: ND_1
210   to_port: ND_1IP_ED_0_0_V_0
211   value_size: 1
212 - name: ED_1
213   type: fifo
214   map: '{ lifted[[ND_2[i0] -> local[i1]] -> local[]] -> ND_0[(i0)] }'
215   from_node: ND_0
216   from_port: ND_0OP_ED_1_0_V_0
217   to_node: ND_2
218   to_port: ND_2IP_ED_1_0_V_0
219   value_size: 1
220 - name: ED_2
221   type: fifo
222   map: '{ lifted[[ND_3[i0] -> local[i1]] -> local[]] -> ND_0[(i0)] }'
223   from_node: ND_0
224   from_port: ND_0OP_ED_2_0_V_0
225   to_node: ND_3
226   to_port: ND_3IP_ED_2_0_V_0
227   value_size: 1
228 - name: ED_3
229   type: fifo
230   map: '{ lifted[[ND_3[i0] -> local[i1]] -> local[]] -> ND_1[(i0)] }'
231   from_node: ND_1
232   from_port: ND_1OP_ED_3_0_V_1
233   to_node: ND_3
234   to_port: ND_3IP_ED_3_0_V_0
235   value_size: 1
236 - name: ED_4
237   type: fifo
238   map: '{ lifted[ND_4[i0] -> local[]] -> ND_2[(i0)] }'
239   from_node: ND_2
240   from_port: ND_2OP_ED_4_0_V_1
241   to_node: ND_4
242   to_port: ND_4IP_ED_4_0_V_0
243   value_size: 1
244 - name: ED_5
245   type: fifo
246   map: '{ lifted[ND_4[i0] -> local[]] -> ND_3[(i0)] }'
247   from_node: ND_3
248   from_port: ND_3OP_ED_5_0_V_1
249   to_node: ND_4
250   to_port: ND_4IP_ED_5_0_V_0
251   value_size: 1