10
10
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
11
11
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
12
12
// DEFINE: %{run_libs} = -shared-libs=%mlir_c_runner_utils,%mlir_runner_utils
13
- // DEFINE: %{run_opts} = -e entry -entry-point-result=void
13
+ // DEFINE: %{run_opts} = -e main -entry-point-result=void
14
14
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
15
15
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
16
16
@@ -85,34 +85,6 @@ module {
85
85
return %0 : tensor <4 x9 xf64 >
86
86
}
87
87
88
- func.func @dump_mat_4x9 (%A: tensor <4 x9 xf64 , #MAT_C_C >) {
89
- %c = sparse_tensor.convert %A : tensor <4 x9 xf64 , #MAT_C_C > to tensor <4 x9 xf64 >
90
- %cu = tensor.cast %c : tensor <4 x9 xf64 > to tensor <*xf64 >
91
- call @printMemrefF64 (%cu ) : (tensor <*xf64 >) -> ()
92
-
93
- %n = sparse_tensor.number_of_entries %A : tensor <4 x9 xf64 , #MAT_C_C >
94
- vector.print %n : index
95
-
96
- %1 = sparse_tensor.values %A : tensor <4 x9 xf64 , #MAT_C_C > to memref <?xf64 >
97
- call @printMemref1dF64 (%1 ) : (memref <?xf64 >) -> ()
98
-
99
- return
100
- }
101
-
102
- func.func @dump_mat_perm_4x9 (%A: tensor <4 x9 xf64 , #MAT_C_C_P >) {
103
- %c = sparse_tensor.convert %A : tensor <4 x9 xf64 , #MAT_C_C_P > to tensor <4 x9 xf64 >
104
- %cu = tensor.cast %c : tensor <4 x9 xf64 > to tensor <*xf64 >
105
- call @printMemrefF64 (%cu ) : (tensor <*xf64 >) -> ()
106
-
107
- %n = sparse_tensor.number_of_entries %A : tensor <4 x9 xf64 , #MAT_C_C_P >
108
- vector.print %n : index
109
-
110
- %1 = sparse_tensor.values %A : tensor <4 x9 xf64 , #MAT_C_C_P > to memref <?xf64 >
111
- call @printMemref1dF64 (%1 ) : (memref <?xf64 >) -> ()
112
-
113
- return
114
- }
115
-
116
88
func.func @dump_mat_dense_4x9 (%A: tensor <4 x9 xf64 >) {
117
89
%1 = tensor.cast %A : tensor <4 x9 xf64 > to tensor <*xf64 >
118
90
call @printMemrefF64 (%1 ) : (tensor <*xf64 >) -> ()
@@ -121,7 +93,7 @@ module {
121
93
}
122
94
123
95
// Driver method to call and verify kernels.
124
- func.func @entry () {
96
+ func.func @main () {
125
97
%m42 = arith.constant dense <
126
98
[ [ 1.0 , 0.0 ],
127
99
[ 3.1 , 0.0 ],
@@ -153,15 +125,21 @@ module {
153
125
%sm43cdp = sparse_tensor.convert %m43 : tensor <4 x3 xf64 > to tensor <4 x3 xf64 , #MAT_C_D_P >
154
126
%sm44dcp = sparse_tensor.convert %m44 : tensor <4 x4 xf64 > to tensor <4 x4 xf64 , #MAT_D_C_P >
155
127
156
- // CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
157
- // CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
158
- // CHECK-NEXT: [0, 2, 0, 0, 1, 1, 5, 2, 0],
159
- // CHECK-NEXT: [0, 0, 5, 2, 0, 1, 0.5, 0, 0]]
160
- // CHECK-NEXT: 18
161
- // CHECK: [1, 3.1, 2, 1, 1, 5, 2, 1, 0.5, 1, 1, 1, 3.5, 5, 0.5, 1.5, 2, 1
128
+ //
129
+ // CHECK: ---- Sparse Tensor ----
130
+ // CHECK-NEXT: nse = 18
131
+ // CHECK-NEXT: dim = ( 4, 9 )
132
+ // CHECK-NEXT: lvl = ( 9, 4 )
133
+ // CHECK-NEXT: pos[0] : ( 0, 9
134
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3, 4, 5, 6, 7, 8
135
+ // CHECK-NEXT: pos[1] : ( 0, 2, 3, 6, 7, 10, 12, 15, 17, 18
136
+ // CHECK-NEXT: crd[1] : ( 0, 1, 2, 0, 1, 3, 3, 0, 1, 2, 2, 3, 1, 2, 3, 0, 2, 0
137
+ // CHECK-NEXT: values : ( 1, 3.1, 2, 1, 1, 5, 2, 1, 0.5, 1, 1, 1, 3.5, 5, 0.5, 1.5, 2, 1
138
+ // CHECK-NEXT: ----
139
+ //
162
140
%12 = call @concat_sparse_sparse_perm_dim1 (%sm42ccp , %sm43cd , %sm44dc )
163
141
: (tensor <4 x2 xf64 , #MAT_C_C_P >, tensor <4 x3 xf64 , #MAT_C_D >, tensor <4 x4 xf64 , #MAT_D_C >) -> tensor <4 x9 xf64 , #MAT_C_C_P >
164
- call @dump_mat_perm_4x9 ( %12 ) : ( tensor <4 x9 xf64 , #MAT_C_C_P >) -> ()
142
+ sparse_tensor.print %12 : tensor <4 x9 xf64 , #MAT_C_C_P >
165
143
166
144
// CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
167
145
// CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
@@ -171,15 +149,21 @@ module {
171
149
: (tensor <4 x2 xf64 , #MAT_C_C_P >, tensor <4 x3 xf64 , #MAT_C_D_P >, tensor <4 x4 xf64 , #MAT_D_C >) -> tensor <4 x9 xf64 >
172
150
call @dump_mat_dense_4x9 (%13 ) : (tensor <4 x9 xf64 >) -> ()
173
151
174
- // CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
175
- // CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
176
- // CHECK-NEXT: [0, 2, 0, 0, 1, 1, 5, 2, 0],
177
- // CHECK-NEXT: [0, 0, 5, 2, 0, 1, 0.5, 0, 0]]
178
- // CHECK-NEXT: 18
179
- // CHECK: [1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
152
+ //
153
+ // CHECK: ---- Sparse Tensor ----
154
+ // CHECK-NEXT: nse = 18
155
+ // CHECK-NEXT: dim = ( 4, 9 )
156
+ // CHECK-NEXT: lvl = ( 4, 9 )
157
+ // CHECK-NEXT: pos[0] : ( 0, 4
158
+ // CHECK-NEXT: crd[0] : ( 0, 1, 2, 3
159
+ // CHECK-NEXT: pos[1] : ( 0, 5, 9, 14, 18
160
+ // CHECK-NEXT: crd[1] : ( 0, 2, 4, 7, 8, 0, 2, 4, 6, 1, 4, 5, 6, 7, 2, 3, 5, 6
161
+ // CHECK-NEXT: values : ( 1, 1, 1, 1.5, 1, 3.1, 1, 0.5, 3.5, 2, 1, 1, 5, 2, 5, 2, 1, 0.5
162
+ // CHECK-NEXT: ----
163
+ //
180
164
%14 = call @concat_mix_sparse_perm_dim1 (%m42 , %sm43cdp , %sm44dc )
181
165
: (tensor <4 x2 xf64 >, tensor <4 x3 xf64 , #MAT_C_D_P >, tensor <4 x4 xf64 , #MAT_D_C >) -> tensor <4 x9 xf64 , #MAT_C_C >
182
- call @dump_mat_4x9 ( %14 ) : ( tensor <4 x9 xf64 , #MAT_C_C >) -> ()
166
+ sparse_tensor.print %14 : tensor <4 x9 xf64 , #MAT_C_C >
183
167
184
168
// CHECK: {{\[}}[1, 0, 1, 0, 1, 0, 0, 1.5, 1],
185
169
// CHECK-NEXT: [3.1, 0, 1, 0, 0.5, 0, 3.5, 0, 0],
0 commit comments