scop.c: extract out expr_collect_access
[pet.git] / tests / for_while_dec.scop
blob6f20e843871b9df48302675fc7ec21138062138e
1 start: 83
2 end: 234
3 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
4 arrays:
5 - context: '{  :  }'
6   extent: '[n] -> { __pet_test_0[x1, x2] : exists (e0 = floor((x2)/3): 3e0 = x2 and
7     x1 <= -1 + n and x1 >= 0 and x2 <= 9) }'
8   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
9   element_type: int
10   element_size: 4
11   uniquely_defined: 1
12 - context: '{  :  }'
13   extent: '[n] -> { s[] }'
14   element_type: int
15   element_size: 4
16 statements:
17 - line: 12
18   domain: '[n] -> { S1[x1] : x1 <= -1 + n and x1 >= 0 }'
19   schedule: '[n] -> { S1[x1] -> [0, x1, 0] }'
20   body:
21     type: binary
22     operation: =
23     arguments:
24     - type: access
25       relation: '[n] -> { S1[x1] -> s[] }'
26       index: '[n] -> { S1[x1] -> s[] }'
27       reference: __pet_ref_0
28       read: 0
29       write: 1
30     - type: call
31       name: f
32 - line: 13
33   domain: '[n] -> { [S_1[x1, x2] -> [1]] : exists (e0 = floor((x2)/3): 3e0 = x2 and
34     x1 <= -1 + n and x1 >= 0 and x2 <= 9) }'
35   schedule: '[n] -> { S_1[x1, x2] -> [0, x1, 1, -x2, 0] }'
36   body:
37     type: binary
38     operation: =
39     arguments:
40     - type: access
41       relation: '[n] -> { S_1[x1, x2] -> __pet_test_0[x1, x2] }'
42       index: '[n] -> { S_1[x1, x2] -> __pet_test_0[(x1), (x2)] }'
43       reference: __pet_ref_2
44       read: 0
45       write: 1
46     - type: call
47       name: P
48       arguments:
49       - type: access
50         relation: '[n] -> { S_1[x1, x2] -> [x1] }'
51         index: '[n] -> { S_1[x1, x2] -> [(x1)] }'
52         reference: __pet_ref_3
53         read: 1
54         write: 0
55       - type: access
56         relation: '[n] -> { S_1[x1, x2] -> [x2] }'
57         index: '[n] -> { S_1[x1, x2] -> [(x2)] }'
58         reference: __pet_ref_4
59         read: 1
60         write: 0
61   arguments:
62   - type: access
63     relation: '[n] -> { S_1[x1, x2] -> __pet_test_0[x1, 3 + x2] : x2 <= 6 }'
64     index: '[n] -> { S_1[x1, x2] -> __pet_test_0[(x1), ((3 + x2) : x2 <= 6)] }'
65     reference: __pet_ref_1
66     read: 1
67     write: 0
68 - line: 14
69   domain: '[n] -> { [S2[x1, x2] -> [1]] : exists (e0 = floor((x2)/3): 3e0 = x2 and
70     x1 <= -1 + n and x1 >= 0 and x2 <= 9) }'
71   schedule: '[n] -> { S2[x1, x2] -> [0, x1, 1, -x2, 1, 0] }'
72   body:
73     type: binary
74     operation: =
75     arguments:
76     - type: access
77       relation: '[n] -> { S2[x1, x2] -> s[] }'
78       index: '[n] -> { S2[x1, x2] -> s[] }'
79       reference: __pet_ref_6
80       read: 0
81       write: 1
82     - type: call
83       name: g
84       arguments:
85       - type: access
86         relation: '[n] -> { S2[x1, x2] -> s[] }'
87         index: '[n] -> { S2[x1, x2] -> s[] }'
88         reference: __pet_ref_7
89         read: 1
90         write: 0
91   arguments:
92   - type: access
93     relation: '[n] -> { S2[x1, x2] -> __pet_test_0[x1, x2] }'
94     index: '[n] -> { S2[x1, x2] -> __pet_test_0[(x1), (x2)] }'
95     reference: __pet_ref_5
96     read: 1
97     write: 0
98 - line: 16
99   domain: '[n] -> { R[x1] : x1 <= -1 + n and x1 >= 0 }'
100   schedule: '[n] -> { R[x1] -> [0, x1, 2] }'
101   body:
102     type: call
103     name: h
104     arguments:
105     - type: access
106       relation: '[n] -> { R[x1] -> s[] }'
107       index: '[n] -> { R[x1] -> s[] }'
108       reference: __pet_ref_8
109       read: 1
110       write: 0
111 implications:
112 - satisfied: 1
113   extension: '[n] -> { __pet_test_0[x1, x2] -> __pet_test_0[x1, x2''] : exists (e0
114     = floor((x2'')/3): 3e0 = x2'' and x1 >= 0 and x1 <= -1 + n and x2'' >= x2 and
115     x2'' <= 9) }'