scop.c: extract out expr_collect_access
[pet.git] / tests / dynamic_bound.scop
blobcf7bb7995e52eb7994cc78ca8f4bc9367f40ee54
1 start: 143
2 end: 351
3 context: '{  :  }'
4 arrays:
5 - context: '{  :  }'
6   extent: '{ N[] }'
7   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 100 }'
8   element_type: int
9   element_size: 4
10 - context: '{  :  }'
11   extent: '{ M[] }'
12   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 100 }'
13   element_type: int
14   element_size: 4
15 - context: '{  :  }'
16   extent: '{ a[i0, i1] : i0 >= 0 and i1 >= 0 and i0 <= 99 and i1 <= 99 }'
17   element_type: int
18   element_size: 4
19 statements:
20 - line: 13
21   domain: '{ S_0[] }'
22   schedule: '{ S_0[] -> [0] }'
23   body:
24     type: binary
25     operation: =
26     arguments:
27     - type: access
28       relation: '{ S_0[] -> N[] }'
29       index: '{ S_0[] -> N[] }'
30       reference: __pet_ref_0
31       read: 0
32       write: 1
33     - type: call
34       name: f
35 - line: 14
36   domain: '{ S_1[] }'
37   schedule: '{ S_1[] -> [1] }'
38   body:
39     type: binary
40     operation: =
41     arguments:
42     - type: access
43       relation: '{ S_1[] -> M[] }'
44       index: '{ S_1[] -> M[] }'
45       reference: __pet_ref_1
46       read: 0
47       write: 1
48     - type: call
49       name: g
50 - line: 17
51   domain: '{ [S_4[i, j] -> [N, M]] : i >= 0 and j >= 0 and N >= 1 + i and M >= 1 +
52     j }'
53   schedule: '{ S_4[i, j] -> [2, i, j] }'
54   body:
55     type: binary
56     operation: =
57     arguments:
58     - type: access
59       relation: '{ S_4[i, j] -> a[i, j] }'
60       index: '{ S_4[i, j] -> a[(i), (j)] }'
61       reference: __pet_ref_4
62       read: 0
63       write: 1
64     - type: binary
65       operation: +
66       arguments:
67       - type: access
68         relation: '{ S_4[i, j] -> [i] }'
69         index: '{ S_4[i, j] -> [(i)] }'
70         reference: __pet_ref_5
71         read: 1
72         write: 0
73       - type: access
74         relation: '{ S_4[i, j] -> [j] }'
75         index: '{ S_4[i, j] -> [(j)] }'
76         reference: __pet_ref_6
77         read: 1
78         write: 0
79   arguments:
80   - type: access
81     relation: '{ S_4[i, j] -> N[] }'
82     index: '{ S_4[i, j] -> N[] }'
83     reference: __pet_ref_2
84     read: 1
85     write: 0
86   - type: access
87     relation: '{ S_4[i, j] -> M[] }'
88     index: '{ S_4[i, j] -> M[] }'
89     reference: __pet_ref_3
90     read: 1
91     write: 0
92 - line: 20
93   domain: '{ [S_7[i, j] -> [N, M]] : i >= 0 and j >= 0 and N >= 1 + i and M >= 1 +
94     j }'
95   schedule: '{ S_7[i, j] -> [3, i, j] }'
96   body:
97     type: call
98     name: h
99     arguments:
100     - type: access
101       relation: '{ S_7[i, j] -> [i] }'
102       index: '{ S_7[i, j] -> [(i)] }'
103       reference: __pet_ref_9
104       read: 1
105       write: 0
106     - type: access
107       relation: '{ S_7[i, j] -> [j] }'
108       index: '{ S_7[i, j] -> [(j)] }'
109       reference: __pet_ref_10
110       read: 1
111       write: 0
112     - type: access
113       relation: '{ S_7[i, j] -> a[i, j] }'
114       index: '{ S_7[i, j] -> a[(i), (j)] }'
115       reference: __pet_ref_11
116       read: 1
117       write: 0
118   arguments:
119   - type: access
120     relation: '{ S_7[i, j] -> N[] }'
121     index: '{ S_7[i, j] -> N[] }'
122     reference: __pet_ref_7
123     read: 1
124     write: 0
125   - type: access
126     relation: '{ S_7[i, j] -> M[] }'
127     index: '{ S_7[i, j] -> M[] }'
128     reference: __pet_ref_8
129     read: 1
130     write: 0