Changeset View
Changeset View
Standalone View
Standalone View
mlir/test/Dialect/SparseTensor/conversion_sparse2dense.mlir
Show All 13 Lines | |||||
}> | }> | ||||
// CHECK-LABEL: func @sparse_convert_1d( | // CHECK-LABEL: func @sparse_convert_1d( | ||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<13xi32> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<13xi32> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[I13:.*]] = arith.constant 13 : index | // CHECK-DAG: %[[I13:.*]] = arith.constant 13 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<1xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<1xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<1xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<1xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<1xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<1xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<1xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<1xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<1xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<1xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I13]], %[[SizesS]][%[[I0]]] : memref<1xindex> | // CHECK-DAG: memref.store %[[I13]], %[[SizesS]][%[[I0]]] : memref<1xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<1xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<1xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<1xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<1xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<1xindex> | // CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<1xindex> | ||||
// CHECK-DAG: %[[zeroI32:.*]] = arith.constant 0 : i32 | // CHECK-DAG: %[[zeroI32:.*]] = arith.constant 0 : i32 | ||||
// CHECK-DAG: %[[ElemTpActionToIter:.*]] = arith.constant 6 : i32 | // CHECK-DAG: %[[ElemTpActionToIter:.*]] = arith.constant 6 : i32 | ||||
Show All 19 Lines | func.func @sparse_convert_1d(%arg0: tensor<13xi32, #SparseVector>) -> tensor<13xi32> { | ||||
return %0 : tensor<13xi32> | return %0 : tensor<13xi32> | ||||
} | } | ||||
// CHECK-LABEL: func @sparse_convert_1d_dyn( | // CHECK-LABEL: func @sparse_convert_1d_dyn( | ||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<?xi32> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<?xi32> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<1xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<1xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<1xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<1xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<1xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<1xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<1xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<1xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<1xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<1xindex> to memref<?xindex> | ||||
// CHECK-DAG: %[[SizeI0:.*]] = call @sparseDimSize(%[[Arg]], %[[I0]]) : (!llvm.ptr<i8>, index) -> index | // CHECK-DAG: %[[SizeI0:.*]] = call @sparseDimSize(%[[Arg]], %[[I0]]) : (!llvm.ptr<i8>, index) -> index | ||||
// CHECK-DAG: memref.store %[[SizeI0]], %[[SizesS]][%[[I0]]] : memref<1xindex> | // CHECK-DAG: memref.store %[[SizeI0]], %[[SizesS]][%[[I0]]] : memref<1xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<1xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<1xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<1xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<1xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<1xindex> | // CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<1xindex> | ||||
// CHECK-DAG: %[[zeroI32:.*]] = arith.constant 0 : i32 | // CHECK-DAG: %[[zeroI32:.*]] = arith.constant 0 : i32 | ||||
Show All 23 Lines | |||||
// CHECK-LABEL: func @sparse_convert_2d( | // CHECK-LABEL: func @sparse_convert_2d( | ||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<2x4xf64> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<2x4xf64> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | // CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | ||||
// CHECK-DAG: %[[I2:.*]] = arith.constant 2 : index | // CHECK-DAG: %[[I2:.*]] = arith.constant 2 : index | ||||
// CHECK-DAG: %[[I4:.*]] = arith.constant 4 : index | // CHECK-DAG: %[[I4:.*]] = arith.constant 4 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I2]], %[[SizesS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I2]], %[[SizesS]][%[[I0]]] : memref<2xindex> | ||||
// CHECK-DAG: memref.store %[[I4]], %[[SizesS]][%[[I1]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I4]], %[[SizesS]][%[[I1]]] : memref<2xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<2xindex> | ||||
// CHECK-DAG: memref.store %[[I1]], %[[PermS]][%[[I1]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I1]], %[[PermS]][%[[I1]]] : memref<2xindex> | ||||
Show All 24 Lines | |||||
// CHECK-LABEL: func @sparse_convert_2d_dyn0( | // CHECK-LABEL: func @sparse_convert_2d_dyn0( | ||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<?x4xf64> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<?x4xf64> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | // CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | ||||
// CHECK-DAG: %[[I4:.*]] = arith.constant 4 : index | // CHECK-DAG: %[[I4:.*]] = arith.constant 4 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: %[[SizeI0:.*]] = call @sparseDimSize(%[[Arg]], %[[I0]]) : (!llvm.ptr<i8>, index) -> index | // CHECK-DAG: %[[SizeI0:.*]] = call @sparseDimSize(%[[Arg]], %[[I0]]) : (!llvm.ptr<i8>, index) -> index | ||||
// CHECK-DAG: memref.store %[[SizeI0]], %[[SizesS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[SizeI0]], %[[SizesS]][%[[I0]]] : memref<2xindex> | ||||
// CHECK-DAG: memref.store %[[I4]], %[[SizesS]][%[[I1]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I4]], %[[SizesS]][%[[I1]]] : memref<2xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<2xindex> | ||||
Show All 25 Lines | |||||
// CHECK-LABEL: func @sparse_convert_2d_dyn1( | // CHECK-LABEL: func @sparse_convert_2d_dyn1( | ||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<2x?xf64> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<2x?xf64> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | // CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | ||||
// CHECK-DAG: %[[I2:.*]] = arith.constant 2 : index | // CHECK-DAG: %[[I2:.*]] = arith.constant 2 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: %[[SizeI1:.*]] = call @sparseDimSize(%[[Arg]], %[[I1]]) : (!llvm.ptr<i8>, index) -> index | // CHECK-DAG: %[[SizeI1:.*]] = call @sparseDimSize(%[[Arg]], %[[I1]]) : (!llvm.ptr<i8>, index) -> index | ||||
// CHECK-DAG: memref.store %[[I2]], %[[SizesS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I2]], %[[SizesS]][%[[I0]]] : memref<2xindex> | ||||
// CHECK-DAG: memref.store %[[SizeI1]], %[[SizesS]][%[[I1]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[SizeI1]], %[[SizesS]][%[[I1]]] : memref<2xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<2xindex> | ||||
Show All 24 Lines | |||||
} | } | ||||
// CHECK-LABEL: func @sparse_convert_2d_dyn2( | // CHECK-LABEL: func @sparse_convert_2d_dyn2( | ||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<?x?xf64> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<?x?xf64> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | // CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<2xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<2xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<2xi8> | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I1]]] : memref<2xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<2xindex> to memref<?xindex> | ||||
// CHECK-DAG: %[[SizeI0:.*]] = call @sparseDimSize(%[[Arg]], %[[I0]]) : (!llvm.ptr<i8>, index) -> index | // CHECK-DAG: %[[SizeI0:.*]] = call @sparseDimSize(%[[Arg]], %[[I0]]) : (!llvm.ptr<i8>, index) -> index | ||||
// CHECK-DAG: %[[SizeI1:.*]] = call @sparseDimSize(%[[Arg]], %[[I1]]) : (!llvm.ptr<i8>, index) -> index | // CHECK-DAG: %[[SizeI1:.*]] = call @sparseDimSize(%[[Arg]], %[[I1]]) : (!llvm.ptr<i8>, index) -> index | ||||
// CHECK-DAG: memref.store %[[SizeI0]], %[[SizesS]][%[[I0]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[SizeI0]], %[[SizesS]][%[[I0]]] : memref<2xindex> | ||||
// CHECK-DAG: memref.store %[[SizeI1]], %[[SizesS]][%[[I1]]] : memref<2xindex> | // CHECK-DAG: memref.store %[[SizeI1]], %[[SizesS]][%[[I1]]] : memref<2xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<2xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<2xindex> to memref<?xindex> | ||||
Show All 28 Lines | |||||
// CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<2x3x4xf64> | // CHECK-SAME: %[[Arg:.*]]: !llvm.ptr<i8>) -> tensor<2x3x4xf64> | ||||
// CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | // CHECK-DAG: %[[I0:.*]] = arith.constant 0 : index | ||||
// CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | // CHECK-DAG: %[[I1:.*]] = arith.constant 1 : index | ||||
// CHECK-DAG: %[[I2:.*]] = arith.constant 2 : index | // CHECK-DAG: %[[I2:.*]] = arith.constant 2 : index | ||||
// CHECK-DAG: %[[I3:.*]] = arith.constant 3 : index | // CHECK-DAG: %[[I3:.*]] = arith.constant 3 : index | ||||
// CHECK-DAG: %[[I4:.*]] = arith.constant 4 : index | // CHECK-DAG: %[[I4:.*]] = arith.constant 4 : index | ||||
// CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<3xi8> | // CHECK-DAG: %[[AttrsS:.*]] = memref.alloca() : memref<3xi8> | ||||
// CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<3xi8> to memref<?xi8> | // CHECK-DAG: %[[AttrsD:.*]] = memref.cast %[[AttrsS]] : memref<3xi8> to memref<?xi8> | ||||
// CHECK-DAG: %[[Attr0:.*]] = arith.constant 0 : i8 | // CHECK-DAG: %[[DenseDLT:.*]] = arith.constant 4 : i8 | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I0]]] : memref<3xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I0]]] : memref<3xi8> | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I1]]] : memref<3xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I1]]] : memref<3xi8> | ||||
// CHECK-DAG: memref.store %[[Attr0]], %[[AttrsS]][%[[I2]]] : memref<3xi8> | // CHECK-DAG: memref.store %[[DenseDLT]], %[[AttrsS]][%[[I2]]] : memref<3xi8> | ||||
// CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<3xindex> | // CHECK-DAG: %[[SizesS:.*]] = memref.alloca() : memref<3xindex> | ||||
// CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<3xindex> to memref<?xindex> | // CHECK-DAG: %[[SizesD:.*]] = memref.cast %[[SizesS]] : memref<3xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I2]], %[[SizesS]][%[[I0]]] : memref<3xindex> | // CHECK-DAG: memref.store %[[I2]], %[[SizesS]][%[[I0]]] : memref<3xindex> | ||||
// CHECK-DAG: memref.store %[[I3]], %[[SizesS]][%[[I1]]] : memref<3xindex> | // CHECK-DAG: memref.store %[[I3]], %[[SizesS]][%[[I1]]] : memref<3xindex> | ||||
// CHECK-DAG: memref.store %[[I4]], %[[SizesS]][%[[I2]]] : memref<3xindex> | // CHECK-DAG: memref.store %[[I4]], %[[SizesS]][%[[I2]]] : memref<3xindex> | ||||
// CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<3xindex> | // CHECK-DAG: %[[PermS:.*]] = memref.alloca() : memref<3xindex> | ||||
// CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<3xindex> to memref<?xindex> | // CHECK-DAG: %[[PermD:.*]] = memref.cast %[[PermS]] : memref<3xindex> to memref<?xindex> | ||||
// CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<3xindex> | // CHECK-DAG: memref.store %[[I0]], %[[PermS]][%[[I0]]] : memref<3xindex> | ||||
Show All 27 Lines |