102
102
//
103
103
module {
104
104
105
- // CHECK: ( 0, 1, 2 )
106
- // CHECK-NEXT: ( 0, 2 )
107
- // CHECK-NEXT: ( 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 )
105
+
106
+ //
107
+ // CHECK: ---- Sparse Tensor ----
108
+ // CHECK-NEXT: nse = 24
109
+ // CHECK-NEXT: pos[1] : ( 0, 1, 2,
110
+ // CHECK-NEXT: crd[1] : ( 0, 2,
111
+ // CHECK-NEXT: values : ( 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7,
112
+ // CHECK-NEXT: ----
113
+ //
108
114
func.func @foo1 () {
109
115
// Build.
110
116
%c0 = arith.constant 0 : index
@@ -115,23 +121,20 @@ module {
115
121
> : tensor <6 x16 xf64 >
116
122
%s1 = sparse_tensor.convert %m : tensor <6 x16 xf64 > to tensor <?x?xf64 , #BSR_row_rowmajor >
117
123
// Test.
118
- %pos1 = sparse_tensor.positions %s1 {level = 1 : index } : tensor <?x?xf64 , #BSR_row_rowmajor > to memref <?xindex >
119
- %vecp1 = vector.transfer_read %pos1 [%c0 ], %c0 : memref <?xindex >, vector <3 xindex >
120
- vector.print %vecp1 : vector <3 xindex >
121
- %crd1 = sparse_tensor.coordinates %s1 {level = 1 : index } : tensor <?x?xf64 , #BSR_row_rowmajor > to memref <?xindex >
122
- %vecc1 = vector.transfer_read %crd1 [%c0 ], %c0 : memref <?xindex >, vector <2 xindex >
123
- vector.print %vecc1 : vector <2 xindex >
124
- %val1 = sparse_tensor.values %s1 : tensor <?x?xf64 , #BSR_row_rowmajor > to memref <?xf64 >
125
- %vecv1 = vector.transfer_read %val1 [%c0 ], %f0 : memref <?xf64 >, vector <24 xf64 >
126
- vector.print %vecv1 : vector <24 xf64 >
124
+ sparse_tensor.print %s1 : tensor <?x?xf64 , #BSR_row_rowmajor >
127
125
// Release.
128
126
bufferization.dealloc_tensor %s1: tensor <?x?xf64 , #BSR_row_rowmajor >
129
127
return
130
128
}
131
129
132
- // CHECK-NEXT: ( 0, 1, 2 )
133
- // CHECK-NEXT: ( 0, 2 )
134
- // CHECK-NEXT: ( 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 7 )
130
+ //
131
+ // CHECK-NEXT: ---- Sparse Tensor ----
132
+ // CHECK-NEXT: nse = 24
133
+ // CHECK-NEXT: pos[1] : ( 0, 1, 2,
134
+ // CHECK-NEXT: crd[1] : ( 0, 2,
135
+ // CHECK-NEXT: values : ( 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 7,
136
+ // CHECK-NEXT: ----
137
+ //
135
138
func.func @foo2 () {
136
139
// Build.
137
140
%c0 = arith.constant 0 : index
@@ -142,23 +145,20 @@ module {
142
145
> : tensor <6 x16 xf64 >
143
146
%s2 = sparse_tensor.convert %m : tensor <6 x16 xf64 > to tensor <?x?xf64 , #BSR_row_colmajor >
144
147
// Test.
145
- %pos2 = sparse_tensor.positions %s2 {level = 1 : index } : tensor <?x?xf64 , #BSR_row_colmajor > to memref <?xindex >
146
- %vecp2 = vector.transfer_read %pos2 [%c0 ], %c0 : memref <?xindex >, vector <3 xindex >
147
- vector.print %vecp2 : vector <3 xindex >
148
- %crd2 = sparse_tensor.coordinates %s2 {level = 1 : index } : tensor <?x?xf64 , #BSR_row_colmajor > to memref <?xindex >
149
- %vecc2 = vector.transfer_read %crd2 [%c0 ], %c0 : memref <?xindex >, vector <2 xindex >
150
- vector.print %vecc2 : vector <2 xindex >
151
- %val2 = sparse_tensor.values %s2 : tensor <?x?xf64 , #BSR_row_colmajor > to memref <?xf64 >
152
- %vecv2 = vector.transfer_read %val2 [%c0 ], %f0 : memref <?xf64 >, vector <24 xf64 >
153
- vector.print %vecv2 : vector <24 xf64 >
148
+ sparse_tensor.print %s2 : tensor <?x?xf64 , #BSR_row_colmajor >
154
149
// Release.
155
150
bufferization.dealloc_tensor %s2: tensor <?x?xf64 , #BSR_row_colmajor >
156
151
return
157
152
}
158
153
159
- // CHECK-NEXT: ( 0, 1, 1, 2, 2 )
160
- // CHECK-NEXT: ( 0, 1 )
161
- // CHECK-NEXT: ( 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7 )
154
+ //
155
+ // CHECK-NEXT: ---- Sparse Tensor ----
156
+ // CHECK-NEXT: nse = 24
157
+ // CHECK-NEXT: pos[1] : ( 0, 1, 1, 2, 2,
158
+ // CHECK-NEXT: crd[1] : ( 0, 1,
159
+ // CHECK-NEXT: values : ( 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7,
160
+ // CHECK-NEXT: ----
161
+ //
162
162
func.func @foo3 () {
163
163
// Build.
164
164
%c0 = arith.constant 0 : index
@@ -169,23 +169,20 @@ module {
169
169
> : tensor <6 x16 xf64 >
170
170
%s3 = sparse_tensor.convert %m : tensor <6 x16 xf64 > to tensor <?x?xf64 , #BSR_col_rowmajor >
171
171
// Test.
172
- %pos3 = sparse_tensor.positions %s3 {level = 1 : index } : tensor <?x?xf64 , #BSR_col_rowmajor > to memref <?xindex >
173
- %vecp3 = vector.transfer_read %pos3 [%c0 ], %c0 : memref <?xindex >, vector <5 xindex >
174
- vector.print %vecp3 : vector <5 xindex >
175
- %crd3 = sparse_tensor.coordinates %s3 {level = 1 : index } : tensor <?x?xf64 , #BSR_col_rowmajor > to memref <?xindex >
176
- %vecc3 = vector.transfer_read %crd3 [%c0 ], %c0 : memref <?xindex >, vector <2 xindex >
177
- vector.print %vecc3 : vector <2 xindex >
178
- %val3 = sparse_tensor.values %s3 : tensor <?x?xf64 , #BSR_col_rowmajor > to memref <?xf64 >
179
- %vecv3 = vector.transfer_read %val3 [%c0 ], %f0 : memref <?xf64 >, vector <24 xf64 >
180
- vector.print %vecv3 : vector <24 xf64 >
172
+ sparse_tensor.print %s3 : tensor <?x?xf64 , #BSR_col_rowmajor >
181
173
// Release.
182
174
bufferization.dealloc_tensor %s3: tensor <?x?xf64 , #BSR_col_rowmajor >
183
175
return
184
176
}
185
177
186
- // CHECK-NEXT: ( 0, 1, 1, 2, 2 )
187
- // CHECK-NEXT: ( 0, 1 )
188
- // CHECK-NEXT: ( 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 7 )
178
+ //
179
+ // CHECK-NEXT: ---- Sparse Tensor ----
180
+ // CHECK-NEXT: nse = 24
181
+ // CHECK-NEXT: pos[1] : ( 0, 1, 1, 2, 2,
182
+ // CHECK-NEXT: crd[1] : ( 0, 1,
183
+ // CHECK-NEXT: values : ( 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 5, 0, 0, 0, 0, 6, 0, 0, 7,
184
+ // CHECK-NEXT: ----
185
+ //
189
186
func.func @foo4 () {
190
187
// Build.
191
188
%c0 = arith.constant 0 : index
@@ -196,15 +193,7 @@ module {
196
193
> : tensor <6 x16 xf64 >
197
194
%s4 = sparse_tensor.convert %m : tensor <6 x16 xf64 > to tensor <?x?xf64 , #BSR_col_colmajor >
198
195
// Test.
199
- %pos4 = sparse_tensor.positions %s4 {level = 1 : index } : tensor <?x?xf64 , #BSR_col_colmajor > to memref <?xindex >
200
- %vecp4 = vector.transfer_read %pos4 [%c0 ], %c0 : memref <?xindex >, vector <5 xindex >
201
- vector.print %vecp4 : vector <5 xindex >
202
- %crd4 = sparse_tensor.coordinates %s4 {level = 1 : index } : tensor <?x?xf64 , #BSR_col_colmajor > to memref <?xindex >
203
- %vecc4 = vector.transfer_read %crd4 [%c0 ], %c0 : memref <?xindex >, vector <2 xindex >
204
- vector.print %vecc4 : vector <2 xindex >
205
- %val4 = sparse_tensor.values %s4 : tensor <?x?xf64 , #BSR_col_colmajor > to memref <?xf64 >
206
- %vecv4 = vector.transfer_read %val4 [%c0 ], %f0 : memref <?xf64 >, vector <24 xf64 >
207
- vector.print %vecv4 : vector <24 xf64 >
196
+ sparse_tensor.print %s4 : tensor <?x?xf64 , #BSR_col_colmajor >
208
197
// Release.
209
198
bufferization.dealloc_tensor %s4: tensor <?x?xf64 , #BSR_col_colmajor >
210
199
return
0 commit comments