push affine conditions into index expressions
[pet.git] / tests / inline5.scop
blob2008f8d8c29de6f21c2628b73d33a8ff59ef1fbb
1 start: 113
2 end: 193
3 indent: "\t"
4 context: '[m, n] -> {  : 0 <= m <= 2147483647 and -2147483648 <= n <= 2147483647 }'
5 schedule: '{ domain: "[m, n] -> { S_4[i] : 0 <= i < n; S_2[i] : 0 <= i < n; S_9[i,
6   i''] : 0 <= i < n and 0 <= i'' <= -3 + m; S_7[i] : 0 <= i < n; S_6[i] : 0 <= i <
7   n; S_0[i] : 0 <= i < n; S_3[i] : 0 <= i < n; S_1[i] : 0 <= i < n; S_8[i] : 0 <=
8   i < n; S_5[i] : 0 <= i < n }", child: { schedule: "[n, m] -> L_0[{ S_3[i] -> [(i)];
9   S_9[i, i''] -> [(i)]; S_1[i] -> [(i)]; S_5[i] -> [(i)]; S_4[i] -> [(i)]; S_2[i]
10   -> [(i)]; S_8[i] -> [(i)]; S_6[i] -> [(i)]; S_7[i] -> [(i)]; S_0[i] -> [(i)] }]",
11   child: { sequence: [ { filter: "[n, m] -> { S_0[i] }" }, { filter: "[n, m] -> {
12   S_1[i] }" }, { filter: "[n, m] -> { S_3[i] }" }, { filter: "[n, m] -> { S_4[i] }"
13   }, { filter: "[n, m] -> { S_6[i] }" }, { filter: "[n, m] -> { S_7[i] }" }, { filter:
14   "[n, m] -> { S_9[i, i''] }", child: { schedule: "[n, m] -> L_1[{ S_9[i, i''] ->
15   [(i'')] }]" } }, { filter: "[n, m] -> { S_5[i]; S_2[i]; S_8[i] }", child: { set:
16   [ { filter: "[n] -> { S_2[i] }" }, { filter: "[n] -> { S_5[i] }" }, { filter: "[n]
17   -> { S_8[i] }" } ] } } ] } } }'
18 arrays:
19 - context: '{  :  }'
20   extent: '[m, n] -> { n_0[] }'
21   element_type: int
22   element_size: 4
23   declared: 1
24 - context: '{  :  }'
25   extent: '[m, n] -> { __pet_arg_0[] }'
26   element_type: int
27   element_size: 4
28   declared: 1
29 - context: '{  :  }'
30   extent: '[m, n] -> { __pet_arg_1[] }'
31   element_type: int
32   element_size: 4
33   declared: 1
34 - context: '[m] -> {  : m >= 0 }'
35   extent: '[m, n] -> { a[i0, i1] : i0 >= 0 and 0 <= i1 < m }'
36   element_type: int
37   element_size: 4
38 statements:
39 - line: -1
40   domain: '[m, n] -> { S_0[i] : 0 <= i < n }'
41   body:
42     type: expression
43     expr:
44       type: op
45       operation: kill
46       arguments:
47       - type: access
48         killed: '[m, n] -> { S_0[i] -> n_0[] }'
49         index: '[m, n] -> { S_0[i] -> n_0[] }'
50         reference: __pet_ref_0
51         kill: 1
52 - line: -1
53   domain: '[m, n] -> { S_1[i] : 0 <= i < n }'
54   body:
55     type: expression
56     expr:
57       type: op
58       operation: =
59       arguments:
60       - type: access
61         index: '[m, n] -> { S_1[i] -> n_0[] }'
62         reference: __pet_ref_1
63         read: 0
64         write: 1
65       - type: access
66         index: '[m, n] -> { S_1[i] -> [(-2 + m)] }'
67         reference: __pet_ref_2
68         read: 1
69         write: 0
70 - line: -1
71   domain: '[m, n] -> { S_3[i] : 0 <= i < n }'
72   body:
73     type: expression
74     expr:
75       type: op
76       operation: kill
77       arguments:
78       - type: access
79         killed: '[m, n] -> { S_3[i] -> __pet_arg_0[] }'
80         index: '[m, n] -> { S_3[i] -> __pet_arg_0[] }'
81         reference: __pet_ref_3
82         kill: 1
83 - line: -1
84   domain: '[m, n] -> { S_4[i] : 0 <= i < n }'
85   body:
86     type: expression
87     expr:
88       type: op
89       operation: =
90       arguments:
91       - type: access
92         index: '[m, n] -> { S_4[i] -> __pet_arg_0[] }'
93         reference: __pet_ref_4
94         read: 0
95         write: 1
96       - type: access
97         index: '[m, n] -> { S_4[i] -> [(i)] }'
98         reference: __pet_ref_5
99         read: 1
100         write: 0
101 - line: -1
102   domain: '[m, n] -> { S_6[i] : 0 <= i < n }'
103   body:
104     type: expression
105     expr:
106       type: op
107       operation: kill
108       arguments:
109       - type: access
110         killed: '[m, n] -> { S_6[i] -> __pet_arg_1[] }'
111         index: '[m, n] -> { S_6[i] -> __pet_arg_1[] }'
112         reference: __pet_ref_6
113         kill: 1
114 - line: -1
115   domain: '[m, n] -> { S_7[i] : 0 <= i < n }'
116   body:
117     type: expression
118     expr:
119       type: op
120       operation: =
121       arguments:
122       - type: access
123         index: '[m, n] -> { S_7[i] -> __pet_arg_1[] }'
124         reference: __pet_ref_7
125         read: 0
126         write: 1
127       - type: int
128         value: 1
129 - line: 4
130   domain: '[m, n] -> { S_9[i, i''] : 0 <= i < n and 0 <= i'' <= -3 + m }'
131   body:
132     type: expression
133     expr:
134       type: op
135       operation: =
136       arguments:
137       - type: access
138         index: '[m, n] -> { S_9[i, i''] -> a[(i), (1 + i'')] }'
139         reference: __pet_ref_8
140         read: 0
141         write: 1
142       - type: int
143         value: 0
144 - line: -1
145   domain: '[m, n] -> { S_2[i] : 0 <= i < n }'
146   body:
147     type: expression
148     expr:
149       type: op
150       operation: kill
151       arguments:
152       - type: access
153         killed: '[m, n] -> { S_2[i] -> n_0[] }'
154         index: '[m, n] -> { S_2[i] -> n_0[] }'
155         reference: __pet_ref_9
156         kill: 1
157 - line: -1
158   domain: '[m, n] -> { S_5[i] : 0 <= i < n }'
159   body:
160     type: expression
161     expr:
162       type: op
163       operation: kill
164       arguments:
165       - type: access
166         killed: '[m, n] -> { S_5[i] -> __pet_arg_0[] }'
167         index: '[m, n] -> { S_5[i] -> __pet_arg_0[] }'
168         reference: __pet_ref_10
169         kill: 1
170 - line: -1
171   domain: '[m, n] -> { S_8[i] : 0 <= i < n }'
172   body:
173     type: expression
174     expr:
175       type: op
176       operation: kill
177       arguments:
178       - type: access
179         killed: '[m, n] -> { S_8[i] -> __pet_arg_1[] }'
180         index: '[m, n] -> { S_8[i] -> __pet_arg_1[] }'
181         reference: __pet_ref_11
182         kill: 1