aboutsummaryrefslogtreecommitdiff
path: root/src/TosaSerialize.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/TosaSerialize.cpp')
-rw-r--r--src/TosaSerialize.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/TosaSerialize.cpp b/src/TosaSerialize.cpp
index a3e21f9..fec9f17 100644
--- a/src/TosaSerialize.cpp
+++ b/src/TosaSerialize.cpp
@@ -470,8 +470,8 @@ TosaSerializationOperatorBuilder::build<mlir::tosa::ConstOp>(
op.getAttr(llvm::StringRef("value")).dyn_cast<mlir::FloatAttr>();
if (dense_attr) {
- for (auto val : dense_attr.getValues<float>()) {
- data.push_back(val);
+ for (auto val : dense_attr.getValues<mlir::APFloat>()) {
+ data.push_back(val.convertToFloat());
}
} else if (val_attr) {
data.push_back((float)val_attr.getValueAsDouble());
@@ -931,9 +931,7 @@ TosaSerializationOperatorBuilder::build<mlir::tosa::PadOp>(
paddings.push_back(val);
}
- auto quant_info = pad_op.getQuantizationInfoAttr();
- // pad_const includes the zero point if the tensor uses a zero point.
- int32_t pad_const_int = quant_info ? quant_info.getInputZp() : 0;
+ int32_t pad_const_int = 0;
float pad_const_fp = 0.f;
if (auto tensor = pad_op.getPadConst()) {
@@ -946,10 +944,12 @@ TosaSerializationOperatorBuilder::build<mlir::tosa::PadOp>(
auto elementTy = attr.getElementType();
if (elementTy.isa<mlir::IntegerType>()) {
- pad_const_int = quant_info ? *attr.value_begin<int8_t>()
- : *attr.value_begin<int32_t>();
+ pad_const_int = (attr.getValues<mlir::APInt>()[0]).getSExtValue();
} else if (elementTy.isa<mlir::FloatType>()) {
- pad_const_fp = *attr.value_begin<float>();
+ pad_const_fp = (attr.getValues<mlir::APFloat>()[0]).convertToFloat();
+ } else {
+ op.emitOpError("Unknown const attribute");
+ return nullptr;
}
}