handle pencil independent pragmas
[pet.git] / tests / while.scop
blob672c52eaf473977bc129a8ef6ec1b5547e1d9994
1 start: 83
2 end: 210
3 indent: "\t"
4 context: '[n] -> {  : n <= 2147483647 and n >= -2147483648 }'
5 arrays:
6 - context: '{  :  }'
7   extent: '[n] -> { __pet_test_0[x, t] : x <= -1 + n and x >= 0 and t >= 0 }'
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[x] : x <= -1 + n and x >= 0 }'
19   schedule: '[n] -> { S1[x] -> [0, x, 0] }'
20   body:
21     type: expression
22     expr:
23       type: op
24       operation: =
25       arguments:
26       - type: access
27         relation: '[n] -> { S1[x] -> s[] }'
28         index: '[n] -> { S1[x] -> s[] }'
29         reference: __pet_ref_0
30         read: 0
31         write: 1
32       - type: call
33         name: f
34 - line: 13
35   domain: '[n] -> { [S_1[x, t] -> [1]] : x <= -1 + n and x >= 0 and t >= 0 }'
36   schedule: '[n] -> { S_1[x, t] -> [0, x, 1, t, 0] }'
37   body:
38     type: expression
39     expr:
40       type: op
41       operation: =
42       arguments:
43       - type: access
44         relation: '[n] -> { S_1[x, t] -> __pet_test_0[x, t] }'
45         index: '[n] -> { S_1[x, t] -> __pet_test_0[(x), (t)] }'
46         reference: __pet_ref_2
47         read: 0
48         write: 1
49       - type: call
50         name: P
51         arguments:
52         - type: access
53           relation: '[n] -> { S_1[x, t] -> [x] }'
54           index: '[n] -> { S_1[x, t] -> [(x)] }'
55           reference: __pet_ref_3
56           read: 1
57           write: 0
58         - type: access
59           relation: '[n] -> { S_1[x, t] -> s[] }'
60           index: '[n] -> { S_1[x, t] -> s[] }'
61           reference: __pet_ref_4
62           read: 1
63           write: 0
64   arguments:
65   - type: access
66     relation: '[n] -> { S_1[x, t] -> __pet_test_0[x, -1 + t] : t >= 1 }'
67     index: '[n] -> { S_1[x, t] -> __pet_test_0[(x), ((-1 + t) : t >= 1)] }'
68     reference: __pet_ref_1
69     read: 1
70     write: 0
71 - line: 14
72   domain: '[n] -> { [S2[x, t] -> [1]] : x <= -1 + n and x >= 0 and t >= 0 }'
73   schedule: '[n] -> { S2[x, t] -> [0, x, 1, t, 1, 0] }'
74   body:
75     type: expression
76     expr:
77       type: op
78       operation: =
79       arguments:
80       - type: access
81         relation: '[n] -> { S2[x, t] -> s[] }'
82         index: '[n] -> { S2[x, t] -> s[] }'
83         reference: __pet_ref_6
84         read: 0
85         write: 1
86       - type: call
87         name: g
88         arguments:
89         - type: access
90           relation: '[n] -> { S2[x, t] -> s[] }'
91           index: '[n] -> { S2[x, t] -> s[] }'
92           reference: __pet_ref_7
93           read: 1
94           write: 0
95   arguments:
96   - type: access
97     relation: '[n] -> { S2[x, t] -> __pet_test_0[x, t] }'
98     index: '[n] -> { S2[x, t] -> __pet_test_0[(x), (t)] }'
99     reference: __pet_ref_5
100     read: 1
101     write: 0
102 - line: 16
103   domain: '[n] -> { R[x] : x <= -1 + n and x >= 0 }'
104   schedule: '[n] -> { R[x] -> [0, x, 2] }'
105   body:
106     type: expression
107     expr:
108       type: call
109       name: h
110       arguments:
111       - type: access
112         relation: '[n] -> { R[x] -> s[] }'
113         index: '[n] -> { R[x] -> s[] }'
114         reference: __pet_ref_8
115         read: 1
116         write: 0
117 implications:
118 - satisfied: 1
119   extension: '[n] -> { __pet_test_0[x, t] -> __pet_test_0[x, t''] : t'' <= t and x
120     >= 0 and x <= -1 + n and t'' >= 0 }'