scop.c: expr_embed: use pet_expr_foreach_access_expr
[pet.git] / tests / for_while.scop
blob03dbc2a22ea184fa6f3062519377532056a5d2b2
1 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
2 arrays:
3 - context: '{  :  }'
4   extent: '[n] -> { __pet_test_0[x1, x2] : x1 >= 0 and x1 <= -1 + n and x2 >= 0 }'
5   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
6   element_type: int
7   element_size: 4
8   uniquely_defined: 1
9 - context: '{  :  }'
10   extent: '[n] -> { s[] }'
11   element_type: int
12   element_size: 4
13 statements:
14 - line: 12
15   domain: '[n] -> { S1[x1] : x1 >= 0 and x1 <= -1 + n }'
16   schedule: '[n] -> { S1[x1] -> [0, x1, 0] }'
17   body:
18     type: binary
19     operation: =
20     arguments:
21     - type: access
22       relation: '[n] -> { S1[x1] -> s[] }'
23       read: 0
24       write: 1
25     - type: call
26       name: f
27 - line: 13
28   domain: '[n] -> { [S_1[x1, x2] -> [1]] : x1 >= 0 and x1 <= -1 + n and x2 >= 0 }'
29   schedule: '[n] -> { S_1[x1, x2] -> [0, x1, 1, x2, 0] }'
30   body:
31     type: binary
32     operation: =
33     arguments:
34     - type: access
35       relation: '[n] -> { S_1[x1, x2] -> __pet_test_0[x1, x2] }'
36       read: 0
37       write: 1
38     - type: call
39       name: P
40       arguments:
41       - type: access
42         relation: '[n] -> { S_1[x1, x2] -> [x1] }'
43         read: 1
44         write: 0
45       - type: access
46         relation: '[n] -> { S_1[x1, x2] -> [x2] }'
47         read: 1
48         write: 0
49   arguments:
50   - type: access
51     relation: '[n] -> { S_1[x1, x2] -> __pet_test_0[x1, o1] : o1 >= 0 and o1 <= -1
52       + x2 }'
53     read: 1
54     write: 0
55 - line: 14
56   domain: '[n] -> { [S2[x1, x2] -> [1]] : x1 >= 0 and x1 <= -1 + n and x2 >= 0 }'
57   schedule: '[n] -> { S2[x1, x2] -> [0, x1, 1, x2, 1, 0] }'
58   body:
59     type: binary
60     operation: =
61     arguments:
62     - type: access
63       relation: '[n] -> { S2[x1, x2] -> s[] }'
64       read: 0
65       write: 1
66     - type: call
67       name: g
68       arguments:
69       - type: access
70         relation: '[n] -> { S2[x1, x2] -> s[] }'
71         read: 1
72         write: 0
73   arguments:
74   - type: access
75     relation: '[n] -> { S2[x1, x2] -> __pet_test_0[x1, o1] : o1 >= 0 and o1 <= x2
76       }'
77     read: 1
78     write: 0
79 - line: 16
80   domain: '[n] -> { R[x1] : x1 >= 0 and x1 <= -1 + n }'
81   schedule: '[n] -> { R[x1] -> [0, x1, 2] }'
82   body:
83     type: call
84     name: h
85     arguments:
86     - type: access
87       relation: '[n] -> { R[x1] -> s[] }'
88       read: 1
89       write: 0