aboutsummaryrefslogtreecommitdiff
path: root/src/TosaSerialize.cpp
diff options
context:
space:
mode:
authorTatWai Chong <tatwai.chong@arm.com>2023-01-27 16:36:01 -0800
committerTatWai Chong <tatwai.chong@arm.com>2023-01-27 17:50:36 -0800
commite1dcee57d8f89cd192411bbec9e8a97b26833bb7 (patch)
tree18c88e8b243135547aa30b05b223f8675f6dcc27 /src/TosaSerialize.cpp
parent82322b9d07c28d9fd052074dba3a292f544d6d07 (diff)
downloadtosa_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/TosaSerialize.cpp')
-rw-r--r--src/TosaSerialize.cpp18
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,