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