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