update isl for introduction of isl_stat
[pet.git] / tests / QR.scop
blob1f69a02ab66c05bf1fd9a1b84293a09a58a83b7b
1 start: 285
2 end: 840
3 indent: '    '
4 context: '[K, N] -> {  : K >= 100 and N <= 16 and N >= 8 and K <= 1000 }'
5 context_value: '[K, N] -> {  : K = 256 }'
6 schedule: '{ domain: "[N, K] -> { S_2[k, j] : k >= 0 and k <= -1 + K and j >= 0 and
7   j <= -1 + N; S_3[k, j, i] : k >= 0 and k <= -1 + K and j <= 2147483646 and j >=
8   0 and i >= 1 + j and i <= -1 + N; S_0[j, i] : j >= 0 and i >= j and i <= -1 + N;
9   S_1[k, j] : k >= 0 and k <= -1 + K and j >= 0 and j <= -1 + N; S_4[j, i] : j >=
10   0 and i >= j and i <= -1 + N }", child: { sequence: [ { filter: "[N, K] -> { S_0[j,
11   i] }", child: { schedule: "[N] -> L_0[{ S_0[j, i] -> [(j)] }]", child: { schedule:
12   "[N] -> L_1[{ S_0[j, i] -> [(i)] }]" } } }, { filter: "[N, K] -> { S_1[k, j] }",
13   child: { schedule: "[K, N] -> L_2[{ S_1[k, j] -> [(k)] }]", child: { schedule: "[K,
14   N] -> L_3[{ S_1[k, j] -> [(j)] }]" } } }, { filter: "[N, K] -> { S_2[k, j]; S_3[k,
15   j, i] }", child: { schedule: "[K, N] -> L_4[{ S_3[k, j, i] -> [(k)]; S_2[k, j] ->
16   [(k)] }]", child: { schedule: "[K, N] -> L_5[{ S_3[k, j, i] -> [(j)]; S_2[k, j]
17   -> [(j)] }]", child: { sequence: [ { filter: "[K, N] -> { S_2[k, j] }" }, { filter:
18   "[K, N] -> { S_3[k, j, i] }", child: { schedule: "[K, N] -> L_6[{ S_3[k, j, i] ->
19   [(i)] }]" } } ] } } } }, { filter: "[N, K] -> { S_4[j, i] }", child: { schedule:
20   "[N] -> L_7[{ S_4[j, i] -> [(j)] }]", child: { schedule: "[N] -> L_8[{ S_4[j, i]
21   -> [(i)] }]" } } } ] } }'
22 arrays:
23 - context: '[N] -> {  : N >= 0 }'
24   extent: '[N, K] -> { R[i0, i1] : i1 >= 0 and i1 <= -1 + N and i0 >= 0 and i0 <=
25     -1 + N }'
26   element_type: int
27   element_size: 4
28 - context: '[N, K] -> {  : K >= 0 and N >= 0 }'
29   extent: '[N, K] -> { X[i0, i1] : i0 >= 0 and i0 <= -1 + K and i1 >= 0 and i1 <=
30     -1 + N }'
31   element_type: int
32   element_size: 4
33 - context: '{  :  }'
34   extent: '[N, K] -> { t[] }'
35   element_type: int
36   element_size: 4
37 statements:
38 - line: 19
39   domain: '[N, K] -> { S_0[j, i] : i >= j and i <= -1 + N and j >= 0 }'
40   body:
41     type: expression
42     expr:
43       type: op
44       operation: =
45       arguments:
46       - type: access
47         index: '[N, K] -> { S_0[j, i] -> R[(j), (i)] }'
48         reference: __pet_ref_0
49         read: 0
50         write: 1
51       - type: call
52         name: Zero
53 - line: 23
54   domain: '[N, K] -> { S_1[k, j] : k >= 0 and k <= -1 + K and j >= 0 and j <= -1 +
55     N }'
56   body:
57     type: expression
58     expr:
59       type: op
60       operation: =
61       arguments:
62       - type: access
63         index: '[N, K] -> { S_1[k, j] -> X[(k), (j)] }'
64         reference: __pet_ref_1
65         read: 0
66         write: 1
67       - type: call
68         name: ReadMatrix
69 - line: 27
70   domain: '[N, K] -> { S_2[k, j] : k >= 0 and k <= -1 + K and j >= 0 and j <= -1 +
71     N }'
72   body:
73     type: expression
74     expr:
75       type: call
76       name: Vectorize
77       arguments:
78       - type: access
79         index: '[N, K] -> { S_2[k, j] -> R[(j), (j)] }'
80         reference: __pet_ref_2
81         read: 1
82         write: 0
83       - type: access
84         index: '[N, K] -> { S_2[k, j] -> X[(k), (j)] }'
85         reference: __pet_ref_3
86         read: 1
87         write: 0
88       - type: op
89         operation: '&'
90         arguments:
91         - type: access
92           may_read: '[N, K] -> { S_2[k, j] -> R[j, j] }'
93           may_write: '[N, K] -> { S_2[k, j] -> R[j, j] }'
94           must_write: '[N, K] -> {  }'
95           index: '[N, K] -> { S_2[k, j] -> R[(j), (j)] }'
96           reference: __pet_ref_4
97           read: 1
98           write: 1
99       - type: op
100         operation: '&'
101         arguments:
102         - type: access
103           may_read: '[N, K] -> { S_2[k, j] -> X[k, j] }'
104           may_write: '[N, K] -> { S_2[k, j] -> X[k, j] }'
105           must_write: '[N, K] -> {  }'
106           index: '[N, K] -> { S_2[k, j] -> X[(k), (j)] }'
107           reference: __pet_ref_5
108           read: 1
109           write: 1
110       - type: op
111         operation: '&'
112         arguments:
113         - type: access
114           may_read: '[N, K] -> { S_2[k, j] -> t[] }'
115           may_write: '[N, K] -> { S_2[k, j] -> t[] }'
116           must_write: '[N, K] -> {  }'
117           index: '[N, K] -> { S_2[k, j] -> t[] }'
118           reference: __pet_ref_6
119           read: 1
120           write: 1
121 - line: 29
122   domain: '[N, K] -> { S_3[k, j, i] : k <= -1 + K and i <= -1 + N and j >= 0 and i
123     >= 1 + j and k >= 0 }'
124   body:
125     type: expression
126     expr:
127       type: call
128       name: Rotate
129       arguments:
130       - type: access
131         index: '[N, K] -> { S_3[k, j, i] -> R[(j), (i)] }'
132         reference: __pet_ref_7
133         read: 1
134         write: 0
135       - type: access
136         index: '[N, K] -> { S_3[k, j, i] -> X[(k), (i)] }'
137         reference: __pet_ref_8
138         read: 1
139         write: 0
140       - type: access
141         index: '[N, K] -> { S_3[k, j, i] -> t[] }'
142         reference: __pet_ref_9
143         read: 1
144         write: 0
145       - type: op
146         operation: '&'
147         arguments:
148         - type: access
149           may_read: '[N, K] -> { S_3[k, j, i] -> R[j, i] }'
150           may_write: '[N, K] -> { S_3[k, j, i] -> R[j, i] }'
151           must_write: '[N, K] -> {  }'
152           index: '[N, K] -> { S_3[k, j, i] -> R[(j), (i)] }'
153           reference: __pet_ref_10
154           read: 1
155           write: 1
156       - type: op
157         operation: '&'
158         arguments:
159         - type: access
160           may_read: '[N, K] -> { S_3[k, j, i] -> X[k, i] }'
161           may_write: '[N, K] -> { S_3[k, j, i] -> X[k, i] }'
162           must_write: '[N, K] -> {  }'
163           index: '[N, K] -> { S_3[k, j, i] -> X[(k), (i)] }'
164           reference: __pet_ref_11
165           read: 1
166           write: 1
167       - type: op
168         operation: '&'
169         arguments:
170         - type: access
171           may_read: '[N, K] -> { S_3[k, j, i] -> t[] }'
172           may_write: '[N, K] -> { S_3[k, j, i] -> t[] }'
173           must_write: '[N, K] -> {  }'
174           index: '[N, K] -> { S_3[k, j, i] -> t[] }'
175           reference: __pet_ref_12
176           read: 1
177           write: 1
178 - line: 34
179   domain: '[N, K] -> { S_4[j, i] : i >= j and i <= -1 + N and j >= 0 }'
180   body:
181     type: expression
182     expr:
183       type: call
184       name: WriteMatrix
185       arguments:
186       - type: access
187         index: '[N, K] -> { S_4[j, i] -> R[(j), (i)] }'
188         reference: __pet_ref_13
189         read: 1
190         write: 0