PetScan::extract_argument: extract out extract_addr_of_arg
[pet.git] / tests / quasi_affine.scop
blob117fa5509b2c2f9c8f940a984f783e957af6cafc
1 start: 88
2 end: 222
3 indent: "\t"
4 context: '[N, in] -> {  : N <= 2147483646 and N >= -1 and in <= 2147483647 and in
5   >= -2147483648 }'
6 schedule: '{ domain: "[N, in] -> { S_2[] : N >= 0; S_1[i] : i >= 1 and i <= N; S_0[]
7   : N >= 0 }", child: { sequence: [ { filter: "[N] -> { S_0[] }" }, { filter: "[N]
8   -> { S_1[i] }", child: { schedule: "[N] -> L_0[{ S_1[i] -> [(i)] }]" } }, { filter:
9   "[N] -> { S_2[] }" } ] } }'
10 arrays:
11 - context: '[N] -> {  : N <= 2147483646 and N >= -1 }'
12   extent: '[N, in] -> { A[i0] : i0 <= N and i0 >= 0 }'
13   element_type: int
14   element_size: 4
15 - context: '{  :  }'
16   extent: '[N, in] -> { out[] }'
17   element_type: int
18   element_size: 4
19 statements:
20 - line: 14
21   domain: '[N, in] -> { S_0[] : N >= 0 }'
22   body:
23     type: expression
24     expr:
25       type: op
26       operation: =
27       arguments:
28       - type: access
29         index: '[N, in] -> { S_0[] -> A[(0)] }'
30         reference: __pet_ref_0
31         read: 0
32         write: 1
33       - type: access
34         index: '[N, in] -> { S_0[] -> [(in)] }'
35         reference: __pet_ref_1
36         read: 1
37         write: 0
38 - line: 16
39   domain: '[N, in] -> { S_1[i] : i >= 1 and i <= N }'
40   body:
41     type: expression
42     expr:
43       type: op
44       operation: =
45       arguments:
46       - type: access
47         index: '[N, in] -> { S_1[i] -> A[(i)] }'
48         reference: __pet_ref_2
49         read: 0
50         write: 1
51       - type: call
52         name: f
53         arguments:
54         - type: call
55           name: g
56           arguments:
57           - type: access
58             index: '[N, in] -> { S_1[i] -> A[(floor((i)/2))] }'
59             reference: __pet_ref_3
60             read: 1
61             write: 0
62 - line: 18
63   domain: '[N, in] -> { S_2[] : N >= 0 }'
64   body:
65     type: expression
66     expr:
67       type: op
68       operation: =
69       arguments:
70       - type: access
71         index: '[N, in] -> { S_2[] -> out[] }'
72         reference: __pet_ref_4
73         read: 0
74         write: 1
75       - type: call
76         name: g
77         arguments:
78         - type: access
79           index: '[N, in] -> { S_2[] -> A[(N)] }'
80           reference: __pet_ref_5
81           read: 1
82           write: 0