export pet_expr_extract_affine
[pet.git] / tests / loop7.scop
blob04b2f1cba1e58a1542ca91a90fe47fbb64a0154c
1 start: 40
2 end: 114
3 context: '{  :  }'
4 arrays:
5 - context: '{  :  }'
6   extent: '{ __pet_test_0[t] : t >= 0 }'
7   value_bounds: '{ [i0] : i0 >= 0 and i0 <= 1 }'
8   element_type: int
9   element_size: 4
10   uniquely_defined: 1
11 - context: '{  :  }'
12   extent: '{ a[] }'
13   element_type: int
14   element_size: 4
15 - context: '{  :  }'
16   extent: '{ i[] }'
17   element_type: int
18   element_size: 4
19 statements:
20 - line: 9
21   domain: '{ S_0[] }'
22   schedule: '{ S_0[] -> [0] }'
23   body:
24     type: op
25     operation: =
26     arguments:
27     - type: access
28       relation: '{ S_0[] -> i[] }'
29       index: '{ S_0[] -> i[] }'
30       reference: __pet_ref_0
31       read: 0
32       write: 1
33     - type: call
34       name: f
35 - line: 10
36   domain: '{ S_1[] }'
37   schedule: '{ S_1[] -> [1, 0] }'
38   body:
39     type: op
40     operation: =
41     arguments:
42     - type: access
43       relation: '{ S_1[] -> i[] }'
44       index: '{ S_1[] -> i[] }'
45       reference: __pet_ref_1
46       read: 0
47       write: 1
48     - type: access
49       relation: '{ S_1[] -> i[] }'
50       index: '{ S_1[] -> i[] }'
51       reference: __pet_ref_2
52       read: 1
53       write: 0
54 - line: 10
55   domain: '{ [S_2[t] -> [1]] : t >= 0 }'
56   schedule: '{ S_2[t] -> [1, 1, t, 0] }'
57   body:
58     type: op
59     operation: =
60     arguments:
61     - type: access
62       relation: '{ S_2[t] -> __pet_test_0[t] }'
63       index: '{ S_2[t] -> __pet_test_0[(t)] }'
64       reference: __pet_ref_4
65       read: 0
66       write: 1
67     - type: op
68       operation: <
69       arguments:
70       - type: access
71         relation: '{ S_2[t] -> i[] }'
72         index: '{ S_2[t] -> i[] }'
73         reference: __pet_ref_5
74         read: 1
75         write: 0
76       - type: int
77         value: 10
78   arguments:
79   - type: access
80     relation: '{ S_2[t] -> __pet_test_0[-1 + t] : t >= 1 }'
81     index: '{ S_2[t] -> __pet_test_0[((-1 + t) : t >= 1)] }'
82     reference: __pet_ref_3
83     read: 1
84     write: 0
85 - line: 11
86   domain: '{ [S_3[t] -> [1]] : t >= 0 }'
87   schedule: '{ S_3[t] -> [1, 1, t, 1] }'
88   body:
89     type: op
90     operation: =
91     arguments:
92     - type: access
93       relation: '{ S_3[t] -> a[] }'
94       index: '{ S_3[t] -> a[] }'
95       reference: __pet_ref_7
96       read: 0
97       write: 1
98     - type: int
99       value: 5
100   arguments:
101   - type: access
102     relation: '{ S_3[t] -> __pet_test_0[t] }'
103     index: '{ S_3[t] -> __pet_test_0[(t)] }'
104     reference: __pet_ref_6
105     read: 1
106     write: 0
107 - line: 10
108   domain: '{ [S_4[t] -> [1]] : t >= 0 }'
109   schedule: '{ S_4[t] -> [1, 1, t, 2] }'
110   body:
111     type: op
112     operation: +=
113     arguments:
114     - type: access
115       relation: '{ S_4[t] -> i[] }'
116       index: '{ S_4[t] -> i[] }'
117       reference: __pet_ref_9
118       read: 0
119       write: 1
120     - type: int
121       value: 1
122   arguments:
123   - type: access
124     relation: '{ S_4[t] -> __pet_test_0[t] }'
125     index: '{ S_4[t] -> __pet_test_0[(t)] }'
126     reference: __pet_ref_8
127     read: 1
128     write: 0
129 implications:
130 - satisfied: 1
131   extension: '{ __pet_test_0[t] -> __pet_test_0[t''] : t'' <= t and t'' >= 0 }'