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