Skip to content

Commit 6e692e7

Browse files
[mlir][sparse] Migrate to sparse_tensor.print (#83946)
Continuous efforts following #83506.
1 parent c103d57 commit 6e692e7

20 files changed

+249
-190
lines changed

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -88,7 +88,7 @@ module {
8888
//
8989
// Main driver that reads matrix from file and calls the sparse kernel.
9090
//
91-
func.func @entry() {
91+
func.func @main() {
9292
%i0 = arith.constant 0 : i32
9393
%c0 = arith.constant 0 : index
9494
%c1 = arith.constant 1 : index

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -84,7 +84,7 @@ module {
8484
//
8585
// Main driver that reads matrix from file and calls the sparse kernel.
8686
//
87-
func.func @entry() {
87+
func.func @main() {
8888
%f0 = arith.constant 0.0 : f64
8989
%cst0 = arith.constant 0 : index
9090
%cst1 = arith.constant 1 : index

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_mult_elt.mlir

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -60,7 +60,7 @@ module {
6060
}
6161

6262
// Driver method to call and verify kernel.
63-
func.func @entry() {
63+
func.func @main() {
6464
%c0 = arith.constant 0 : index
6565
%f0 = arith.constant 0.0 : f32
6666

@@ -84,11 +84,18 @@ module {
8484
//
8585
// Verify results. Only two entries stored in result!
8686
//
87-
// CHECK: ( 14, 20, 0, 0 )
87+
// CHECK: ---- Sparse Tensor ----
88+
// CHECK-NEXT: nse = 2
89+
// CHECK-NEXT: dim = ( 32, 16 )
90+
// CHECK-NEXT: lvl = ( 32, 16 )
91+
// CHECK-NEXT: pos[0] : ( 0, 2
92+
// CHECK-NEXT: crd[0] : ( 2, 31
93+
// CHECK-NEXT: pos[1] : ( 0, 1, 2
94+
// CHECK-NEXT: crd[1] : ( 2, 0
95+
// CHECK-NEXT: values : ( 14, 20
96+
// CHECK-NEXT: ----
8897
//
89-
%val = sparse_tensor.values %0 : tensor<32x16xf32, #DCSR> to memref<?xf32>
90-
%vv = vector.transfer_read %val[%c0], %f0: memref<?xf32>, vector<4xf32>
91-
vector.print %vv : vector<4xf32>
98+
sparse_tensor.print %0 : tensor<32x16xf32, #DCSR>
9299

93100
// Release the resources.
94101
bufferization.dealloc_tensor %sta : tensor<32x16xf32, #DCSR>

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_reduction.mlir

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -70,10 +70,7 @@ module {
7070
}
7171

7272
// Driver method to call and verify tensor kernel.
73-
func.func @entry() {
74-
%c0 = arith.constant 0 : index
75-
%i0 = arith.constant 0 : i32
76-
73+
func.func @main() {
7774
// Setup very sparse 3-d tensors.
7875
%t1 = arith.constant sparse<
7976
[ [1,1,3], [2,0,0], [2,2,1], [2,2,2], [2,2,3] ], [ 1, 2, 3, 4, 5 ]
@@ -94,23 +91,23 @@ module {
9491
//
9592
// Verify results. Only two entries stored in result. Correct structure.
9693
//
97-
// CHECK: ( 7, 69, 0, 0 )
98-
// CHECK-NEXT: ( ( 0, 0, 0 ), ( 0, 7, 0 ), ( 0, 0, 69 ) )
94+
// CHECK: ---- Sparse Tensor ----
95+
// CHECK-NEXT: nse = 2
96+
// CHECK-NEXT: dim = ( 3, 3 )
97+
// CHECK-NEXT: lvl = ( 3, 3 )
98+
// CHECK-NEXT: pos[0] : ( 0, 2
99+
// CHECK-NEXT: crd[0] : ( 1, 2
100+
// CHECK-NEXT: pos[1] : ( 0, 1, 2
101+
// CHECK-NEXT: crd[1] : ( 1, 2
102+
// CHECK-NEXT: values : ( 7, 69
103+
// CHECK-NEXT: ----
99104
//
100-
%val = sparse_tensor.values %0
101-
: tensor<?x?xi32, #SparseMatrix> to memref<?xi32>
102-
%vv = vector.transfer_read %val[%c0], %i0: memref<?xi32>, vector<4xi32>
103-
vector.print %vv : vector<4xi32>
104-
%dm = sparse_tensor.convert %0
105-
: tensor<?x?xi32, #SparseMatrix> to tensor<?x?xi32>
106-
%vm = vector.transfer_read %dm[%c0, %c0], %i0: tensor<?x?xi32>, vector<3x3xi32>
107-
vector.print %vm : vector<3x3xi32>
105+
sparse_tensor.print %0 : tensor<?x?xi32, #SparseMatrix>
108106

109107
// Release the resources.
110108
bufferization.dealloc_tensor %st1 : tensor<?x?x?xi32, #SparseTensor>
111109
bufferization.dealloc_tensor %st2 : tensor<?x?x?xi32, #SparseTensor>
112110
bufferization.dealloc_tensor %0 : tensor<?x?xi32, #SparseMatrix>
113-
bufferization.dealloc_tensor %dm : tensor<?x?xi32>
114111

115112
return
116113
}

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -70,7 +70,7 @@ module {
7070
//
7171
// Main driver that reads matrix from file and calls the sparse kernel.
7272
//
73-
func.func @entry() {
73+
func.func @main() {
7474
%d0 = arith.constant 0.0 : f64
7575
%c0 = arith.constant 0 : index
7676

@@ -83,11 +83,18 @@ module {
8383

8484
// Print the result for verification.
8585
//
86-
// CHECK: ( 1, 1.96, 4, 6.25, 9, 16.81, 16, 27.04, 25 )
86+
// CHECK: ---- Sparse Tensor ----
87+
// CHECK-NEXT: nse = 9
88+
// CHECK-NEXT: dim = ( 5, 5 )
89+
// CHECK-NEXT: lvl = ( 5, 5 )
90+
// CHECK-NEXT: pos[0] : ( 0, 5
91+
// CHECK-NEXT: crd[0] : ( 0, 1, 2, 3, 4
92+
// CHECK-NEXT: pos[1] : ( 0, 2, 4, 5, 7, 9
93+
// CHECK-NEXT: crd[1] : ( 0, 3, 1, 4, 2, 0, 3, 1, 4
94+
// CHECK-NEXT: values : ( 1, 1.96, 4, 6.25, 9, 16.81, 16, 27.04, 25
95+
// CHECK-NEXT: ----
8796
//
88-
%m = sparse_tensor.values %0 : tensor<?x?xf64, #DCSR> to memref<?xf64>
89-
%v = vector.transfer_read %m[%c0], %d0: memref<?xf64>, vector<9xf64>
90-
vector.print %v : vector<9xf64>
97+
sparse_tensor.print %0 : tensor<?x?xf64, #DCSR>
9198

9299
// Release the resources.
93100
bufferization.dealloc_tensor %x : tensor<?x?xf64, #DCSR>

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -54,7 +54,7 @@ module {
5454
//
5555
// Main driver.
5656
//
57-
func.func @entry() {
57+
func.func @main() {
5858
%c0 = arith.constant 0 : index
5959
%f0 = arith.constant 0.0 : f64
6060
%i0 = arith.constant 0 : i32

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pack_d.mlir

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -48,7 +48,7 @@ module {
4848
//
4949
// Main driver.
5050
//
51-
func.func @entry() {
51+
func.func @main() {
5252
%c0 = arith.constant 0 : index
5353
%f0 = arith.constant 0.0 : f32
5454

@@ -107,26 +107,39 @@ module {
107107
//
108108
// Verify.
109109
//
110-
// CHECK: ( ( ( 1, 2 ), ( 3, 4 ), ( 0, 0 ) ), ( ( 0, 0 ), ( 0, 0 ), ( 0, 0 ) ), ( ( 0, 0 ), ( 5, 0 ), ( 6, 7 ) ), ( ( 0, 0 ), ( 8, 0 ), ( 0, 0 ) ) )
111-
// CHECK: ( ( ( 1, 2 ), ( 0, 3 ), ( 4, 0 ) ), ( ( 5, 6 ), ( 0, 0 ), ( 0, 7 ) ), ( ( 8, 9 ), ( 10, 11 ), ( 12, 13 ) ), ( ( 14, 0 ), ( 0, 15 ), ( 0, 16 ) ) )
112-
// CHECK: ( ( ( 1, 2 ), ( 0, 3 ), ( 4, 0 ) ), ( ( 5, 6 ), ( 0, 0 ), ( 0, 7 ) ), ( ( 8, 9 ), ( 10, 11 ), ( 12, 13 ) ), ( ( 14, 0 ), ( 0, 15 ), ( 0, 16 ) ) )
110+
// CHECK: ---- Sparse Tensor ----
111+
// CHECK-NEXT: nse = 8
112+
// CHECK-NEXT: dim = ( 4, 3, 2 )
113+
// CHECK-NEXT: lvl = ( 4, 3, 2 )
114+
// CHECK-NEXT: pos[0] : ( 0, 3
115+
// CHECK-NEXT: crd[0] : ( 0, 2, 3
116+
// CHECK-NEXT: pos[1] : ( 0, 2, 4, 5
117+
// CHECK-NEXT: crd[1] : ( 0, 1, 1, 2, 1
118+
// CHECK-NEXT: pos[2] : ( 0, 2, 4, 5, 7, 8
119+
// CHECK-NEXT: crd[2] : ( 0, 1, 0, 1, 0, 0, 1, 0
120+
// CHECK-NEXT: values : ( 1, 2, 3, 4, 5, 6, 7, 8
121+
// CHECK-NEXT: ----
122+
// CHECK: ---- Sparse Tensor ----
123+
// CHECK-NEXT: nse = 16
124+
// CHECK-NEXT: dim = ( 4, 3, 2 )
125+
// CHECK-NEXT: lvl = ( 4, 3, 2 )
126+
// CHECK-NEXT: pos[2] : ( 0, 2, 3, 4, 6, 6, 7, 9, 11, 13, 14, 15, 16
127+
// CHECK-NEXT: crd[2] : ( 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1
128+
// CHECK-NEXT: values : ( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
129+
// CHECK-NEXT: ----
130+
// CHECK: ---- Sparse Tensor ----
131+
// CHECK-NEXT: nse = 22
132+
// CHECK-NEXT: dim = ( 4, 3, 2 )
133+
// CHECK-NEXT: lvl = ( 4, 3, 2 )
134+
// CHECK-NEXT: pos[1] : ( 0, 3, 5, 8, 11
135+
// CHECK-NEXT: crd[1] : ( 0, 1, 2, 0, 2, 0, 1, 2, 0, 1, 2
136+
// CHECK-NEXT: values : ( 1, 2, 0, 3, 4, 0, 5, 6, 0, 7, 8, 9, 10, 11, 12, 13, 14, 0, 0, 15, 0, 16
137+
// CHECK-NEXT: ----
113138
//
139+
sparse_tensor.print %s0 : tensor<4x3x2xf32, #CCC>
140+
sparse_tensor.print %s1 : tensor<4x3x2xf32, #BatchedCSR>
141+
sparse_tensor.print %s2 : tensor<4x3x2xf32, #CSRDense>
114142

115-
%d0 = sparse_tensor.convert %s0 : tensor<4x3x2xf32, #CCC> to tensor<4x3x2xf32>
116-
%v0 = vector.transfer_read %d0[%c0, %c0, %c0], %f0 : tensor<4x3x2xf32>, vector<4x3x2xf32>
117-
vector.print %v0 : vector<4x3x2xf32>
118-
119-
%d1 = sparse_tensor.convert %s1 : tensor<4x3x2xf32, #BatchedCSR> to tensor<4x3x2xf32>
120-
%v1 = vector.transfer_read %d1[%c0, %c0, %c0], %f0 : tensor<4x3x2xf32>, vector<4x3x2xf32>
121-
vector.print %v1 : vector<4x3x2xf32>
122-
123-
%d2 = sparse_tensor.convert %s2 : tensor<4x3x2xf32, #CSRDense> to tensor<4x3x2xf32>
124-
%v2 = vector.transfer_read %d1[%c0, %c0, %c0], %f0 : tensor<4x3x2xf32>, vector<4x3x2xf32>
125-
vector.print %v2 : vector<4x3x2xf32>
126-
127-
bufferization.dealloc_tensor %d0 : tensor<4x3x2xf32>
128-
bufferization.dealloc_tensor %d1 : tensor<4x3x2xf32>
129-
bufferization.dealloc_tensor %d2 : tensor<4x3x2xf32>
130143
// FIXME: doing this explicitly crashes runtime
131144
// bufferization.dealloc_tensor %s0 : tensor<4x3x2xf32, #CCC>
132145
// bufferization.dealloc_tensor %s1 : tensor<4x3x2xf32, #BatchedCSR>

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_pooling_nhwc.mlir

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -47,7 +47,7 @@ func.func @pooling_nhwc_sum(%input: tensor<1x4x4x1xf32>, %filter: tensor<2x2xf32
4747
}
4848

4949

50-
func.func @entry() {
50+
func.func @main() {
5151
%c0 = arith.constant 0 : index
5252
%zero = arith.constant 0.00000e+00 : f32
5353

@@ -76,17 +76,26 @@ func.func @entry() {
7676
//
7777
// Sparse pooling should have the same output.
7878
//
79-
80-
// CHECK-NEXT: ( ( ( ( 6 ), ( 6 ), ( 6 ) ), ( ( 6 ), ( 6 ), ( 6 ) ), ( ( 6 ), ( 6 ), ( 6 ) ) ) )
81-
%s1 = sparse_tensor.convert %CCCC_ret : tensor<1x3x3x1xf32, #CCCC> to tensor<1x3x3x1xf32>
82-
%v1 = vector.transfer_read %s1[%c0, %c0, %c0, %c0], %zero
83-
: tensor<1x3x3x1xf32>, vector<1x3x3x1xf32>
84-
vector.print %v1 : vector<1x3x3x1xf32>
79+
// CHECK: ---- Sparse Tensor ----
80+
// CHECK-NEXT: nse = 9
81+
// CHECK-NEXT: dim = ( 1, 3, 3, 1 )
82+
// CHECK-NEXT: lvl = ( 1, 3, 3, 1 )
83+
// CHECK-NEXT: pos[0] : ( 0, 1
84+
// CHECK-NEXT: crd[0] : ( 0
85+
// CHECK-NEXT: pos[1] : ( 0, 3
86+
// CHECK-NEXT: crd[1] : ( 0, 1, 2
87+
// CHECK-NEXT: pos[2] : ( 0, 3, 6, 9
88+
// CHECK-NEXT: crd[2] : ( 0, 1, 2, 0, 1, 2, 0, 1, 2
89+
// CHECK-NEXT: pos[3] : ( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
90+
// CHECK-NEXT: crd[3] : ( 0, 0, 0, 0, 0, 0, 0, 0, 0
91+
// CHECK-NEXT: values : ( 6, 6, 6, 6, 6, 6, 6, 6, 6
92+
// CHECK-NEXT: ----
93+
//
94+
sparse_tensor.print %CCCC_ret : tensor<1x3x3x1xf32, #CCCC>
8595

8696
// Releases resources.
8797
bufferization.dealloc_tensor %in_CCCC : tensor<1x4x4x1xf32, #CCCC>
8898
bufferization.dealloc_tensor %CCCC_ret : tensor<1x3x3x1xf32, #CCCC>
8999
bufferization.dealloc_tensor %dense_ret : tensor<1x3x3x1xf32>
90-
bufferization.dealloc_tensor %s1 : tensor<1x3x3x1xf32>
91100
return
92101
}

mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_quantized_matmul.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// DEFINE: %{compile} = mlir-opt %s --sparsifier="%{sparsifier_opts}"
1111
// DEFINE: %{compile_sve} = mlir-opt %s --sparsifier="%{sparsifier_opts_sve}"
1212
// 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
1414
// DEFINE: %{run} = mlir-cpu-runner %{run_opts} %{run_libs}
1515
// DEFINE: %{run_sve} = %mcr_aarch64_cmd --march=aarch64 --mattr="+sve" %{run_opts} %{run_libs}
1616
//
@@ -49,7 +49,7 @@ module {
4949
return %0: tensor<5x6xi32>
5050
}
5151

52-
func.func @entry() {
52+
func.func @main() {
5353
%c0 = arith.constant 0 : index
5454
%i0 = arith.constant 0 : i32
5555

0 commit comments

Comments
 (0)