add reference identifiers to all access expressions
[pet.git] / tests / QR.scop
blob0e4fb751f93a3713e75e4281cdf7061fccd56d86
1 start: 285
2 end: 840
3 context: '[N, K] -> {  : N >= 8 and N <= 16 and K >= 100 and K <= 1000 }'
4 context_value: '[K] -> {  : K = 256 }'
5 arrays:
6 - context: '[N] -> {  : N >= 0 }'
7   extent: '[N, K] -> { R[i0, i1] : i0 >= 0 and i0 <= -1 + N and i1 <= -1 + N and i1
8     >= 0 }'
9   element_type: int
10   element_size: 4
11 - context: '[N, K] -> {  : K >= 0 and N >= 0 }'
12   extent: '[N, K] -> { X[i0, i1] : i1 <= -1 + N and i1 >= 0 and i0 <= -1 + K and i0
13     >= 0 }'
14   element_type: int
15   element_size: 4
16 - context: '{  :  }'
17   extent: '[N, K] -> { t[] }'
18   element_type: int
19   element_size: 4
20 statements:
21 - line: 19
22   domain: '[N, K] -> { S_0[j, i] : i >= j and j >= 0 and i <= -1 + N }'
23   schedule: '[N] -> { S_0[j, i] -> [0, j, i] }'
24   body:
25     type: binary
26     operation: =
27     arguments:
28     - type: access
29       relation: '[N, K] -> { S_0[j, i] -> R[j, i] }'
30       reference: __pet_ref_0
31       read: 0
32       write: 1
33     - type: call
34       name: Zero
35 - line: 23
36   domain: '[N, K] -> { S_1[k, j] : j <= -1 + N and j >= 0 and k <= -1 + K and k >=
37     0 }'
38   schedule: '[N, K] -> { S_1[k, j] -> [1, k, j] }'
39   body:
40     type: binary
41     operation: =
42     arguments:
43     - type: access
44       relation: '[N, K] -> { S_1[k, j] -> X[k, j] }'
45       reference: __pet_ref_1
46       read: 0
47       write: 1
48     - type: call
49       name: ReadMatrix
50 - line: 27
51   domain: '[N, K] -> { S_2[k, j] : j <= -1 + N and j >= 0 and k <= -1 + K and k >=
52     0 }'
53   schedule: '[N, K] -> { S_2[k, j] -> [2, k, j, 0] }'
54   body:
55     type: call
56     name: Vectorize
57     arguments:
58     - type: access
59       relation: '[N, K] -> { S_2[k, j] -> R[j, j] }'
60       reference: __pet_ref_2
61       read: 1
62       write: 0
63     - type: access
64       relation: '[N, K] -> { S_2[k, j] -> X[k, j] }'
65       reference: __pet_ref_3
66       read: 1
67       write: 0
68     - type: unary
69       operation: '&'
70       arguments:
71       - type: access
72         relation: '[N, K] -> { S_2[k, j] -> R[j, j] }'
73         reference: __pet_ref_4
74         read: 0
75         write: 1
76     - type: unary
77       operation: '&'
78       arguments:
79       - type: access
80         relation: '[N, K] -> { S_2[k, j] -> X[k, j] }'
81         reference: __pet_ref_5
82         read: 0
83         write: 1
84     - type: unary
85       operation: '&'
86       arguments:
87       - type: access
88         relation: '[N, K] -> { S_2[k, j] -> t[] }'
89         reference: __pet_ref_6
90         read: 0
91         write: 1
92 - line: 29
93   domain: '[N, K] -> { S_3[k, j, i] : i >= 1 + j and j >= 0 and k <= -1 + K and k
94     >= 0 and i <= -1 + N }'
95   schedule: '[N, K] -> { S_3[k, j, i] -> [2, k, j, 1, i] }'
96   body:
97     type: call
98     name: Rotate
99     arguments:
100     - type: access
101       relation: '[N, K] -> { S_3[k, j, i] -> R[j, i] }'
102       reference: __pet_ref_7
103       read: 1
104       write: 0
105     - type: access
106       relation: '[N, K] -> { S_3[k, j, i] -> X[k, i] }'
107       reference: __pet_ref_8
108       read: 1
109       write: 0
110     - type: access
111       relation: '[N, K] -> { S_3[k, j, i] -> t[] }'
112       reference: __pet_ref_9
113       read: 1
114       write: 0
115     - type: unary
116       operation: '&'
117       arguments:
118       - type: access
119         relation: '[N, K] -> { S_3[k, j, i] -> R[j, i] }'
120         reference: __pet_ref_10
121         read: 0
122         write: 1
123     - type: unary
124       operation: '&'
125       arguments:
126       - type: access
127         relation: '[N, K] -> { S_3[k, j, i] -> X[k, i] }'
128         reference: __pet_ref_11
129         read: 0
130         write: 1
131     - type: unary
132       operation: '&'
133       arguments:
134       - type: access
135         relation: '[N, K] -> { S_3[k, j, i] -> t[] }'
136         reference: __pet_ref_12
137         read: 0
138         write: 1
139 - line: 34
140   domain: '[N, K] -> { S_4[j, i] : i >= j and j >= 0 and i <= -1 + N }'
141   schedule: '[N] -> { S_4[j, i] -> [3, j, i] }'
142   body:
143     type: call
144     name: WriteMatrix
145     arguments:
146     - type: access
147       relation: '[N, K] -> { S_4[j, i] -> R[j, i] }'
148       reference: __pet_ref_13
149       read: 1
150       write: 0