pet_scop_restrict: also restrict virtual array extents
[pet.git] / tests / continue5.scop
blob1dfaeec16d06d7b1e6a9bebf098b4d528ff05822
1 start: 47
2 end: 216
3 context: '{  :  }'
4 arrays:
5 - context: '{  :  }'
6   extent: '{ __pet_test_0[i] : (i <= 99 and i >= 58) or (i <= 56 and i >= 0) }'
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: 12
42   domain: '{ S_1[i] : (i <= 56 and i >= 0) or (i <= 99 and i >= 58) }'
43   schedule: '{ S_1[i] -> [0, i, 2] }'
44   body:
45     type: op
46     operation: =
47     arguments:
48     - type: access
49       relation: '{ S_1[i] -> a[i] }'
50       index: '{ S_1[i] -> a[(i)] }'
51       reference: __pet_ref_1
52       read: 0
53       write: 1
54     - type: access
55       relation: '{ S_1[i] -> [i] }'
56       index: '{ S_1[i] -> [(i)] }'
57       reference: __pet_ref_2
58       read: 1
59       write: 0
60 - line: 13
61   domain: '{ S_2[i] : (i <= 99 and i >= 58) or (i <= 56 and i >= 0) }'
62   schedule: '{ S_2[i] -> [0, i, 3] }'
63   body:
64     type: op
65     operation: =
66     arguments:
67     - type: access
68       relation: '{ S_2[i] -> j[] }'
69       index: '{ S_2[i] -> j[] }'
70       reference: __pet_ref_3
71       read: 0
72       write: 1
73     - type: call
74       name: f
75 - line: 14
76   domain: '{ S_3[i] : (i <= 99 and i >= 58) or (i <= 56 and i >= 0) }'
77   schedule: '{ S_3[i] -> [0, i, 4, 0, 0] }'
78   body:
79     type: op
80     operation: =
81     arguments:
82     - type: access
83       relation: '{ S_3[i] -> __pet_test_0[i] }'
84       index: '{ S_3[i] -> __pet_test_0[(i)] }'
85       reference: __pet_ref_4
86       read: 0
87       write: 1
88     - type: op
89       operation: ==
90       arguments:
91       - type: access
92         relation: '{ S_3[i] -> j[] }'
93         index: '{ S_3[i] -> j[] }'
94         reference: __pet_ref_5
95         read: 1
96         write: 0
97       - type: int
98         value: 0
99 - line: -1
100   domain: '{ S_4[i] : i >= 0 and i <= 99 }'
101   schedule: '{ S_4[i] -> [0, i, 4, 1] }'
102   body:
103     type: op
104     operation: =
105     arguments:
106     - type: access
107       relation: '{ S_4[i] -> __pet_test_1[i] }'
108       index: '{ S_4[i] -> __pet_test_1[(i)] }'
109       reference: __pet_ref_6
110       read: 0
111       write: 1
112     - type: op
113       operation: '?:'
114       arguments:
115       - type: access
116         relation: '{ S_4[i] -> [0] : i >= 58 or i <= 56; S_4[57] -> [1] }'
117         index: '{ S_4[i] -> [((1) : i = 57; (0) : i <= 56 or i >= 58)] }'
118         reference: __pet_ref_7
119         read: 1
120         write: 0
121       - type: access
122         relation: '{ S_4[i] -> [1] }'
123         index: '{ S_4[i] -> [(1)] }'
124         reference: __pet_ref_8
125         read: 1
126         write: 0
127       - type: access
128         relation: '{ S_4[i] -> __pet_test_0[i] : i >= 58 or i <= 56 }'
129         index: '{ S_4[i] -> __pet_test_0[(i)] }'
130         reference: __pet_ref_9
131         read: 1
132         write: 0
133 - line: 16
134   domain: '{ [S_5[i] -> [0]] : i >= 0 and i <= 99 }'
135   schedule: '{ S_5[i] -> [0, i, 5] }'
136   body:
137     type: op
138     operation: =
139     arguments:
140     - type: access
141       relation: '{ S_5[i] -> a[i] }'
142       index: '{ S_5[i] -> a[(i)] }'
143       reference: __pet_ref_11
144       read: 0
145       write: 1
146     - type: op
147       operation: +
148       arguments:
149       - type: access
150         relation: '{ S_5[i] -> a[i] }'
151         index: '{ S_5[i] -> a[(i)] }'
152         reference: __pet_ref_12
153         read: 1
154         write: 0
155       - type: int
156         value: 1
157   arguments:
158   - type: access
159     relation: '{ S_5[i] -> __pet_test_1[i] }'
160     index: '{ S_5[i] -> __pet_test_1[(i)] }'
161     reference: __pet_ref_10
162     read: 1
163     write: 0