diff options
author | TatWai Chong <tatwai.chong@arm.com> | 2023-01-27 16:36:01 -0800 |
---|---|---|
committer | TatWai Chong <tatwai.chong@arm.com> | 2023-01-27 17:50:36 -0800 |
commit | e1dcee57d8f89cd192411bbec9e8a97b26833bb7 (patch) | |
tree | 18c88e8b243135547aa30b05b223f8675f6dcc27 /src | |
parent | 82322b9d07c28d9fd052074dba3a292f544d6d07 (diff) | |
download | tosa_mlir_translator-e1dcee57d8f89cd192411bbec9e8a97b26833bb7.tar.gz |
Align the type of padding and pad_const with the spec
switch padding and pad_const to attribute type.
Signed-off-by: TatWai Chong <tatwai.chong@arm.com>
Change-Id: Ic179034d290cca3b3d857a84744da96c485098ba
Diffstat (limited to 'src')
-rw-r--r-- | src/TosaSerialize.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/TosaSerialize.cpp b/src/TosaSerialize.cpp index ea0c32f..51923ea 100644 --- a/src/TosaSerialize.cpp +++ b/src/TosaSerialize.cpp @@ -944,19 +944,15 @@ TosaSerializationOperatorBuilder::build<mlir::tosa::PadOp>( std::string input_name = GetTensorName(op.getOperand(0)); std::string output_name = GetTensorName(op.getResult(0)); - // Match padding tensor as compile-time constant attribute - // TODO: fix when MLIR dialect changes - mlir::ElementsAttr paddings_elems; - if (!matchPattern(op.getOperand(1), m_Constant(&paddings_elems))) - return nullptr; + auto padding = + op.getAttr("padding").dyn_cast<mlir::DenseI32ArrayAttr>().asArrayRef(); + auto pad_const = + op.getAttr("pad_const").dyn_cast<mlir::DenseIntOrFPElementsAttr>(); - std::vector<int> paddings; - for (int32_t val : paddings_elems.getValues<int32_t>()) { - paddings.push_back(val); - } + assert(pad_const.getNumElements() == 1); - TosaPadAttribute attribute(paddings, 0 /* pad_const_int */, - 0.0f /* pad_const_fp */); + TosaPadAttribute attribute(padding, *pad_const.value_begin<int32_t>(), + *pad_const.value_begin<float>()); TosaSerializationOperator *tyop = new TosaSerializationOperator( Op_PAD, Attribute_PadAttribute, &attribute, |