aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorEric Kunze <eric.kunze@arm.com>2023-08-17 20:44:39 +0000
committerEric Kunze <eric.kunze@arm.com>2023-09-07 00:16:49 +0000
commit9601cbda5ff42dc4762e364d90093670931e1261 (patch)
treeca64fc446f49e6dedb53cc3ceb879eb88f74aa2f /include
parentc4733b015781b044041955997f79c4667eb841a0 (diff)
downloadserialization_lib-9601cbda5ff42dc4762e364d90093670931e1261.tar.gz
Add new signedness attributes to RESCALE
Signed-off-by: Eric Kunze <eric.kunze@arm.com> Change-Id: I96202b90bff833654735a2f2306eb782d202b6e6
Diffstat (limited to 'include')
-rw-r--r--include/attribute.def7
-rw-r--r--include/attribute.h16
-rw-r--r--include/tosa_generated.h32
3 files changed, 49 insertions, 6 deletions
diff --git a/include/attribute.def b/include/attribute.def
index 9e4c461..b72f65a 100644
--- a/include/attribute.def
+++ b/include/attribute.def
@@ -78,14 +78,16 @@ DEF_ATTRIBUTE(Clamp, 4,
float, S, min_fp,
float, S, max_fp)
-DEF_ATTRIBUTE(Rescale, 7,
+DEF_ATTRIBUTE(Rescale, 9,
int32_t, S, input_zp,
int32_t, S, output_zp,
int32_t, V, multiplier,
int32_t, V, shift,
bool, S, scale32,
bool, S, double_round,
- bool, S, per_channel)
+ bool, S, per_channel,
+ bool, S, input_unsigned,
+ bool, S, output_unsigned)
DEF_ATTRIBUTE(Mul, 1,
int32_t, S, shift)
@@ -126,3 +128,4 @@ DEF_ATTRIBUTE(Custom, 3,
DEF_ATTRIBUTE(FFT, 1,
bool, S, inverse)
+
diff --git a/include/attribute.h b/include/attribute.h
index 1a19f62..d6c96a4 100644
--- a/include/attribute.h
+++ b/include/attribute.h
@@ -130,6 +130,18 @@ inline int convertFlatbuffersU8toF32(const flatbuffers::Vector<uint8_t>& in, uin
DEF_ARGS_##VER(FALSE, T3, F3, V3) DEF_ARGS_##VER(FALSE, T4, F4, V4) DEF_ARGS_##VER(FALSE, T5, F5, V5) \
DEF_ARGS_##VER(FALSE, T6, F6, V6)
+#define DEF_ARGS_8(VER, T0, F0, V0, T1, F1, V1, T2, F2, V2, T3, F3, V3, T4, F4, V4, T5, F5, V5, T6, F6, V6, T7, F7, \
+ V7) \
+ DEF_ARGS_##VER(TRUE, T0, F0, V0) DEF_ARGS_##VER(FALSE, T1, F1, V1) DEF_ARGS_##VER(FALSE, T2, F2, V2) \
+ DEF_ARGS_##VER(FALSE, T3, F3, V3) DEF_ARGS_##VER(FALSE, T4, F4, V4) DEF_ARGS_##VER(FALSE, T5, F5, V5) \
+ DEF_ARGS_##VER(FALSE, T6, F6, V6) DEF_ARGS_##VER(FALSE, T7, F7, V7)
+
+#define DEF_ARGS_9(VER, T0, F0, V0, T1, F1, V1, T2, F2, V2, T3, F3, V3, T4, F4, V4, T5, F5, V5, T6, F6, V6, T7, F7, \
+ V7, T8, F8, V8) \
+ DEF_ARGS_##VER(TRUE, T0, F0, V0) DEF_ARGS_##VER(FALSE, T1, F1, V1) DEF_ARGS_##VER(FALSE, T2, F2, V2) \
+ DEF_ARGS_##VER(FALSE, T3, F3, V3) DEF_ARGS_##VER(FALSE, T4, F4, V4) DEF_ARGS_##VER(FALSE, T5, F5, V5) \
+ DEF_ARGS_##VER(FALSE, T6, F6, V6) DEF_ARGS_##VER(FALSE, T7, F7, V7) DEF_ARGS_##VER(FALSE, T8, F8, V8)
+
#define DEF_VER0_VAR_DECL_PTR(NAME) const NAME* p = static_cast<const NAME*>(options);
#define DEF_VER0_VAR_0(NAME)
#define DEF_VER0_VAR_1(NAME) DEF_VER0_VAR_DECL_PTR(NAME)
@@ -139,6 +151,8 @@ inline int convertFlatbuffersU8toF32(const flatbuffers::Vector<uint8_t>& in, uin
#define DEF_VER0_VAR_5(NAME) DEF_VER0_VAR_DECL_PTR(NAME)
#define DEF_VER0_VAR_6(NAME) DEF_VER0_VAR_DECL_PTR(NAME)
#define DEF_VER0_VAR_7(NAME) DEF_VER0_VAR_DECL_PTR(NAME)
+#define DEF_VER0_VAR_8(NAME) DEF_VER0_VAR_DECL_PTR(NAME)
+#define DEF_VER0_VAR_9(NAME) DEF_VER0_VAR_DECL_PTR(NAME)
#define DEF_ATTRIBUTE(NAME, NUM_ARGS, ...) \
class Tosa##NAME##Attribute : public TosaAttributeBase \
@@ -174,6 +188,8 @@ inline int convertFlatbuffersU8toF32(const flatbuffers::Vector<uint8_t>& in, uin
#undef DEF_ARGS_5
#undef DEF_ARGS_6
#undef DEF_ARGS_7
+#undef DEF_ARGS_8
+#undef DEF_ARGS_9
#undef DEF_ARGS_VER0
#undef DEF_ARGS_VER1
#undef DEF_ARGS_VER2
diff --git a/include/tosa_generated.h b/include/tosa_generated.h
index 2995c3a..b07fa8f 100644
--- a/include/tosa_generated.h
+++ b/include/tosa_generated.h
@@ -1424,7 +1424,9 @@ struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
VT_SHIFT = 10,
VT_SCALE32 = 12,
VT_DOUBLE_ROUND = 14,
- VT_PER_CHANNEL = 16
+ VT_PER_CHANNEL = 16,
+ VT_INPUT_UNSIGNED = 18,
+ VT_OUTPUT_UNSIGNED = 20
};
int32_t input_zp() const {
return GetField<int32_t>(VT_INPUT_ZP, 0);
@@ -1447,6 +1449,12 @@ struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
bool per_channel() const {
return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
}
+ bool input_unsigned() const {
+ return GetField<uint8_t>(VT_INPUT_UNSIGNED, 0) != 0;
+ }
+ bool output_unsigned() const {
+ return GetField<uint8_t>(VT_OUTPUT_UNSIGNED, 0) != 0;
+ }
bool Verify(::flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
@@ -1458,6 +1466,8 @@ struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {
VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
+ VerifyField<uint8_t>(verifier, VT_INPUT_UNSIGNED, 1) &&
+ VerifyField<uint8_t>(verifier, VT_OUTPUT_UNSIGNED, 1) &&
verifier.EndTable();
}
};
@@ -1487,6 +1497,12 @@ struct RescaleAttributeBuilder {
void add_per_channel(bool per_channel) {
fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
}
+ void add_input_unsigned(bool input_unsigned) {
+ fbb_.AddElement<uint8_t>(RescaleAttribute::VT_INPUT_UNSIGNED, static_cast<uint8_t>(input_unsigned), 0);
+ }
+ void add_output_unsigned(bool output_unsigned) {
+ fbb_.AddElement<uint8_t>(RescaleAttribute::VT_OUTPUT_UNSIGNED, static_cast<uint8_t>(output_unsigned), 0);
+ }
explicit RescaleAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
@@ -1506,12 +1522,16 @@ inline ::flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
::flatbuffers::Offset<::flatbuffers::Vector<int32_t>> shift = 0,
bool scale32 = false,
bool double_round = false,
- bool per_channel = false) {
+ bool per_channel = false,
+ bool input_unsigned = false,
+ bool output_unsigned = false) {
RescaleAttributeBuilder builder_(_fbb);
builder_.add_shift(shift);
builder_.add_multiplier(multiplier);
builder_.add_output_zp(output_zp);
builder_.add_input_zp(input_zp);
+ builder_.add_output_unsigned(output_unsigned);
+ builder_.add_input_unsigned(input_unsigned);
builder_.add_per_channel(per_channel);
builder_.add_double_round(double_round);
builder_.add_scale32(scale32);
@@ -1526,7 +1546,9 @@ inline ::flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
const std::vector<int32_t> *shift = nullptr,
bool scale32 = false,
bool double_round = false,
- bool per_channel = false) {
+ bool per_channel = false,
+ bool input_unsigned = false,
+ bool output_unsigned = false) {
auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
return tosa::CreateRescaleAttribute(
@@ -1537,7 +1559,9 @@ inline ::flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
shift__,
scale32,
double_round,
- per_channel);
+ per_channel,
+ input_unsigned,
+ output_unsigned);
}
struct MulAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table {