From 9601cbda5ff42dc4762e364d90093670931e1261 Mon Sep 17 00:00:00 2001 From: Eric Kunze Date: Thu, 17 Aug 2023 20:44:39 +0000 Subject: Add new signedness attributes to RESCALE Signed-off-by: Eric Kunze Change-Id: I96202b90bff833654735a2f2306eb782d202b6e6 --- include/attribute.def | 7 +++++-- include/attribute.h | 16 ++++++++++++++++ include/tosa_generated.h | 32 ++++++++++++++++++++++++++++---- 3 files changed, 49 insertions(+), 6 deletions(-) (limited to 'include') 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& 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(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& 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& 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(VT_INPUT_ZP, 0); @@ -1447,6 +1449,12 @@ struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool per_channel() const { return GetField(VT_PER_CHANNEL, 0) != 0; } + bool input_unsigned() const { + return GetField(VT_INPUT_UNSIGNED, 0) != 0; + } + bool output_unsigned() const { + return GetField(VT_OUTPUT_UNSIGNED, 0) != 0; + } bool Verify(::flatbuffers::Verifier &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_INPUT_ZP, 4) && @@ -1458,6 +1466,8 @@ struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_SCALE32, 1) && VerifyField(verifier, VT_DOUBLE_ROUND, 1) && VerifyField(verifier, VT_PER_CHANNEL, 1) && + VerifyField(verifier, VT_INPUT_UNSIGNED, 1) && + VerifyField(verifier, VT_OUTPUT_UNSIGNED, 1) && verifier.EndTable(); } }; @@ -1487,6 +1497,12 @@ struct RescaleAttributeBuilder { void add_per_channel(bool per_channel) { fbb_.AddElement(RescaleAttribute::VT_PER_CHANNEL, static_cast(per_channel), 0); } + void add_input_unsigned(bool input_unsigned) { + fbb_.AddElement(RescaleAttribute::VT_INPUT_UNSIGNED, static_cast(input_unsigned), 0); + } + void add_output_unsigned(bool output_unsigned) { + fbb_.AddElement(RescaleAttribute::VT_OUTPUT_UNSIGNED, static_cast(output_unsigned), 0); + } explicit RescaleAttributeBuilder(::flatbuffers::FlatBufferBuilder &_fbb) : fbb_(_fbb) { start_ = fbb_.StartTable(); @@ -1506,12 +1522,16 @@ inline ::flatbuffers::Offset CreateRescaleAttribute( ::flatbuffers::Offset<::flatbuffers::Vector> 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 CreateRescaleAttributeDirect( const std::vector *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(*multiplier) : 0; auto shift__ = shift ? _fbb.CreateVector(*shift) : 0; return tosa::CreateRescaleAttribute( @@ -1537,7 +1559,9 @@ inline ::flatbuffers::Offset CreateRescaleAttributeDirect( shift__, scale32, double_round, - per_channel); + per_channel, + input_unsigned, + output_unsigned); } struct MulAttribute FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { -- cgit v1.2.1