blob: 422ae18124d7015918ccc2111e61617db2ae61a9 [file] [log] [blame]
Eric Kunze2364dcd2021-04-26 11:06:57 -07001// automatically generated by the FlatBuffers compiler, do not modify
2
3
4#ifndef FLATBUFFERS_GENERATED_TOSA_TOSA_H_
5#define FLATBUFFERS_GENERATED_TOSA_TOSA_H_
6
7#include "flatbuffers/flatbuffers.h"
8
9namespace tosa {
10
Kevin Cheng79a41992021-08-31 16:04:40 -070011struct PoolAttribute;
12struct PoolAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070013
Kevin Cheng79a41992021-08-31 16:04:40 -070014struct ConvAttribute;
15struct ConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070016
Kevin Cheng79a41992021-08-31 16:04:40 -070017struct TransposeConvAttribute;
18struct TransposeConvAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070019
Kevin Cheng38d214c2021-10-15 15:49:19 -070020struct PadAttribute;
21struct PadAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070022
23struct AxisAttribute;
24struct AxisAttributeBuilder;
25
26struct ReshapeAttribute;
27struct ReshapeAttributeBuilder;
28
29struct SliceAttribute;
30struct SliceAttributeBuilder;
31
32struct TileAttribute;
33struct TileAttributeBuilder;
34
35struct ResizeAttribute;
36struct ResizeAttributeBuilder;
37
38struct ClampAttribute;
39struct ClampAttributeBuilder;
40
41struct RescaleAttribute;
42struct RescaleAttributeBuilder;
43
44struct MulAttribute;
45struct MulAttributeBuilder;
46
47struct ArithmeticRightShiftAttribute;
48struct ArithmeticRightShiftAttributeBuilder;
49
50struct CondIfAttribute;
51struct CondIfAttributeBuilder;
52
53struct WhileLoopAttribute;
54struct WhileLoopAttributeBuilder;
55
Kevin Cheng38d214c2021-10-15 15:49:19 -070056struct TransposeAttribute;
57struct TransposeAttributeBuilder;
58
59struct TableAttribute;
60struct TableAttributeBuilder;
61
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000062struct MatMulAttribute;
63struct MatMulAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070064
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000065struct FullyConnectedAttribute;
66struct FullyConnectedAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070067
Eric Kunzebdcc3fe2022-06-07 05:17:37 +000068struct NegateAttribute;
69struct NegateAttributeBuilder;
Eric Kunze2364dcd2021-04-26 11:06:57 -070070
Eric Kunze497ab5d2022-10-21 16:39:01 -070071struct CustomAttribute;
72struct CustomAttributeBuilder;
73
Luke Hutton5e268092023-01-12 22:20:53 +000074struct FFTAttribute;
75struct FFTAttributeBuilder;
76
Eric Kunze2364dcd2021-04-26 11:06:57 -070077struct Version;
78struct VersionBuilder;
79
80struct TosaTensor;
81struct TosaTensorBuilder;
82
83struct TosaOperator;
84struct TosaOperatorBuilder;
85
86struct TosaBasicBlock;
87struct TosaBasicBlockBuilder;
88
Jerry Ge13c78a62022-10-04 20:32:39 -070089struct TosaRegion;
90struct TosaRegionBuilder;
91
Eric Kunze2364dcd2021-04-26 11:06:57 -070092struct TosaGraph;
93struct TosaGraphBuilder;
94
Eric Kunze4381b3d2022-08-22 18:15:41 +000095enum DType : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -070096 DType_UNKNOWN = 0,
97 DType_BOOL = 1,
98 DType_UINT8 = 2,
99 DType_INT4 = 3,
100 DType_INT8 = 4,
101 DType_INT16 = 5,
102 DType_INT32 = 6,
103 DType_INT48 = 7,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100104 DType_FP32 = 8,
Jeremy Johnson41027732022-05-25 17:52:29 +0100105 DType_UINT16 = 9,
James Ward485a11d2022-08-05 13:48:37 +0100106 DType_FP16 = 10,
James Ward34a62792022-10-18 17:27:40 +0100107 DType_BF16 = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700108 DType_MIN = DType_UNKNOWN,
James Ward34a62792022-10-18 17:27:40 +0100109 DType_MAX = DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700110};
111
James Ward34a62792022-10-18 17:27:40 +0100112inline const DType (&EnumValuesDType())[12] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700113 static const DType values[] = {
114 DType_UNKNOWN,
115 DType_BOOL,
116 DType_UINT8,
117 DType_INT4,
118 DType_INT8,
119 DType_INT16,
120 DType_INT32,
121 DType_INT48,
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100122 DType_FP32,
James Ward485a11d2022-08-05 13:48:37 +0100123 DType_UINT16,
James Ward34a62792022-10-18 17:27:40 +0100124 DType_FP16,
125 DType_BF16
Eric Kunze2364dcd2021-04-26 11:06:57 -0700126 };
127 return values;
128}
129
130inline const char * const *EnumNamesDType() {
James Ward34a62792022-10-18 17:27:40 +0100131 static const char * const names[13] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700132 "UNKNOWN",
133 "BOOL",
134 "UINT8",
135 "INT4",
136 "INT8",
137 "INT16",
138 "INT32",
139 "INT48",
Jeremy Johnsone1072a92022-09-27 12:44:11 +0100140 "FP32",
Jeremy Johnson41027732022-05-25 17:52:29 +0100141 "UINT16",
James Ward485a11d2022-08-05 13:48:37 +0100142 "FP16",
James Ward34a62792022-10-18 17:27:40 +0100143 "BF16",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700144 nullptr
145 };
146 return names;
147}
148
149inline const char *EnumNameDType(DType e) {
James Ward34a62792022-10-18 17:27:40 +0100150 if (flatbuffers::IsOutRange(e, DType_UNKNOWN, DType_BF16)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700151 const size_t index = static_cast<size_t>(e);
152 return EnumNamesDType()[index];
153}
154
Eric Kunze4381b3d2022-08-22 18:15:41 +0000155enum ResizeMode : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700156 ResizeMode_UNKNOWN = 0,
157 ResizeMode_NEAREST = 1,
158 ResizeMode_BILINEAR = 2,
159 ResizeMode_MIN = ResizeMode_UNKNOWN,
160 ResizeMode_MAX = ResizeMode_BILINEAR
161};
162
163inline const ResizeMode (&EnumValuesResizeMode())[3] {
164 static const ResizeMode values[] = {
165 ResizeMode_UNKNOWN,
166 ResizeMode_NEAREST,
167 ResizeMode_BILINEAR
168 };
169 return values;
170}
171
172inline const char * const *EnumNamesResizeMode() {
173 static const char * const names[4] = {
174 "UNKNOWN",
175 "NEAREST",
176 "BILINEAR",
177 nullptr
178 };
179 return names;
180}
181
182inline const char *EnumNameResizeMode(ResizeMode e) {
183 if (flatbuffers::IsOutRange(e, ResizeMode_UNKNOWN, ResizeMode_BILINEAR)) return "";
184 const size_t index = static_cast<size_t>(e);
185 return EnumNamesResizeMode()[index];
186}
187
Eric Kunze4381b3d2022-08-22 18:15:41 +0000188enum Op : uint32_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700189 Op_UNKNOWN = 0,
190 Op_ARGMAX = 1,
191 Op_AVG_POOL2D = 2,
192 Op_CONV2D = 3,
193 Op_CONV3D = 4,
194 Op_DEPTHWISE_CONV2D = 5,
195 Op_FULLY_CONNECTED = 6,
196 Op_MATMUL = 7,
197 Op_MAX_POOL2D = 8,
198 Op_TRANSPOSE_CONV2D = 9,
199 Op_CLAMP = 10,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700200 Op_RESERVED = 11,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700201 Op_SIGMOID = 12,
202 Op_TANH = 13,
203 Op_ADD = 14,
204 Op_ARITHMETIC_RIGHT_SHIFT = 15,
205 Op_BITWISE_AND = 16,
206 Op_BITWISE_OR = 17,
207 Op_BITWISE_XOR = 18,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100208 Op_INTDIV = 19,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700209 Op_LOGICAL_AND = 20,
210 Op_LOGICAL_LEFT_SHIFT = 21,
211 Op_LOGICAL_RIGHT_SHIFT = 22,
212 Op_LOGICAL_OR = 23,
213 Op_LOGICAL_XOR = 24,
214 Op_MAXIMUM = 25,
215 Op_MINIMUM = 26,
216 Op_MUL = 27,
217 Op_POW = 28,
218 Op_SUB = 29,
219 Op_TABLE = 30,
220 Op_ABS = 31,
221 Op_BITWISE_NOT = 32,
222 Op_CEIL = 33,
223 Op_CLZ = 34,
224 Op_EXP = 35,
225 Op_FLOOR = 36,
226 Op_LOG = 37,
227 Op_LOGICAL_NOT = 38,
228 Op_NEGATE = 39,
229 Op_RECIPROCAL = 40,
230 Op_RSQRT = 41,
231 Op_SELECT = 42,
232 Op_EQUAL = 43,
233 Op_GREATER = 44,
234 Op_GREATER_EQUAL = 45,
235 Op_REDUCE_ANY = 46,
236 Op_REDUCE_ALL = 47,
237 Op_REDUCE_MAX = 48,
238 Op_REDUCE_MIN = 49,
239 Op_REDUCE_PRODUCT = 50,
240 Op_REDUCE_SUM = 51,
241 Op_CONCAT = 52,
242 Op_PAD = 53,
243 Op_RESHAPE = 54,
244 Op_REVERSE = 55,
245 Op_SLICE = 56,
246 Op_TILE = 57,
247 Op_TRANSPOSE = 58,
248 Op_GATHER = 59,
249 Op_SCATTER = 60,
250 Op_RESIZE = 61,
251 Op_CAST = 62,
252 Op_RESCALE = 63,
253 Op_CONST = 64,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700254 Op_IDENTITY = 65,
Kevin Chenga8b4eaf2021-05-10 13:14:00 -0700255 Op_CUSTOM = 66,
256 Op_COND_IF = 67,
257 Op_WHILE_LOOP = 68,
Luke Hutton5e268092023-01-12 22:20:53 +0000258 Op_FFT2D = 69,
259 Op_RFFT2D = 70,
Won Jeon3acb1cb2023-06-07 23:26:32 +0000260 Op_ERF = 71,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700261 Op_MIN = Op_UNKNOWN,
Won Jeon3acb1cb2023-06-07 23:26:32 +0000262 Op_MAX = Op_ERF
Eric Kunze2364dcd2021-04-26 11:06:57 -0700263};
264
Won Jeon3acb1cb2023-06-07 23:26:32 +0000265inline const Op (&EnumValuesOp())[72] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700266 static const Op values[] = {
267 Op_UNKNOWN,
268 Op_ARGMAX,
269 Op_AVG_POOL2D,
270 Op_CONV2D,
271 Op_CONV3D,
272 Op_DEPTHWISE_CONV2D,
273 Op_FULLY_CONNECTED,
274 Op_MATMUL,
275 Op_MAX_POOL2D,
276 Op_TRANSPOSE_CONV2D,
277 Op_CLAMP,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700278 Op_RESERVED,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700279 Op_SIGMOID,
280 Op_TANH,
281 Op_ADD,
282 Op_ARITHMETIC_RIGHT_SHIFT,
283 Op_BITWISE_AND,
284 Op_BITWISE_OR,
285 Op_BITWISE_XOR,
Matthew Haddonab905ec2021-08-23 16:40:57 +0100286 Op_INTDIV,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700287 Op_LOGICAL_AND,
288 Op_LOGICAL_LEFT_SHIFT,
289 Op_LOGICAL_RIGHT_SHIFT,
290 Op_LOGICAL_OR,
291 Op_LOGICAL_XOR,
292 Op_MAXIMUM,
293 Op_MINIMUM,
294 Op_MUL,
295 Op_POW,
296 Op_SUB,
297 Op_TABLE,
298 Op_ABS,
299 Op_BITWISE_NOT,
300 Op_CEIL,
301 Op_CLZ,
302 Op_EXP,
303 Op_FLOOR,
304 Op_LOG,
305 Op_LOGICAL_NOT,
306 Op_NEGATE,
307 Op_RECIPROCAL,
308 Op_RSQRT,
309 Op_SELECT,
310 Op_EQUAL,
311 Op_GREATER,
312 Op_GREATER_EQUAL,
313 Op_REDUCE_ANY,
314 Op_REDUCE_ALL,
315 Op_REDUCE_MAX,
316 Op_REDUCE_MIN,
317 Op_REDUCE_PRODUCT,
318 Op_REDUCE_SUM,
319 Op_CONCAT,
320 Op_PAD,
321 Op_RESHAPE,
322 Op_REVERSE,
323 Op_SLICE,
324 Op_TILE,
325 Op_TRANSPOSE,
326 Op_GATHER,
327 Op_SCATTER,
328 Op_RESIZE,
329 Op_CAST,
330 Op_RESCALE,
331 Op_CONST,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700332 Op_IDENTITY,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700333 Op_CUSTOM,
334 Op_COND_IF,
Luke Hutton5e268092023-01-12 22:20:53 +0000335 Op_WHILE_LOOP,
336 Op_FFT2D,
Won Jeon3acb1cb2023-06-07 23:26:32 +0000337 Op_RFFT2D,
338 Op_ERF
Eric Kunze2364dcd2021-04-26 11:06:57 -0700339 };
340 return values;
341}
342
343inline const char * const *EnumNamesOp() {
Won Jeon3acb1cb2023-06-07 23:26:32 +0000344 static const char * const names[73] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700345 "UNKNOWN",
346 "ARGMAX",
347 "AVG_POOL2D",
348 "CONV2D",
349 "CONV3D",
350 "DEPTHWISE_CONV2D",
351 "FULLY_CONNECTED",
352 "MATMUL",
353 "MAX_POOL2D",
354 "TRANSPOSE_CONV2D",
355 "CLAMP",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700356 "RESERVED",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700357 "SIGMOID",
358 "TANH",
359 "ADD",
360 "ARITHMETIC_RIGHT_SHIFT",
361 "BITWISE_AND",
362 "BITWISE_OR",
363 "BITWISE_XOR",
Matthew Haddonab905ec2021-08-23 16:40:57 +0100364 "INTDIV",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700365 "LOGICAL_AND",
366 "LOGICAL_LEFT_SHIFT",
367 "LOGICAL_RIGHT_SHIFT",
368 "LOGICAL_OR",
369 "LOGICAL_XOR",
370 "MAXIMUM",
371 "MINIMUM",
372 "MUL",
373 "POW",
374 "SUB",
375 "TABLE",
376 "ABS",
377 "BITWISE_NOT",
378 "CEIL",
379 "CLZ",
380 "EXP",
381 "FLOOR",
382 "LOG",
383 "LOGICAL_NOT",
384 "NEGATE",
385 "RECIPROCAL",
386 "RSQRT",
387 "SELECT",
388 "EQUAL",
389 "GREATER",
390 "GREATER_EQUAL",
391 "REDUCE_ANY",
392 "REDUCE_ALL",
393 "REDUCE_MAX",
394 "REDUCE_MIN",
395 "REDUCE_PRODUCT",
396 "REDUCE_SUM",
397 "CONCAT",
398 "PAD",
399 "RESHAPE",
400 "REVERSE",
401 "SLICE",
402 "TILE",
403 "TRANSPOSE",
404 "GATHER",
405 "SCATTER",
406 "RESIZE",
407 "CAST",
408 "RESCALE",
409 "CONST",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700410 "IDENTITY",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700411 "CUSTOM",
412 "COND_IF",
413 "WHILE_LOOP",
Luke Hutton5e268092023-01-12 22:20:53 +0000414 "FFT2D",
415 "RFFT2D",
Won Jeon3acb1cb2023-06-07 23:26:32 +0000416 "ERF",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700417 nullptr
418 };
419 return names;
420}
421
422inline const char *EnumNameOp(Op e) {
Won Jeon3acb1cb2023-06-07 23:26:32 +0000423 if (flatbuffers::IsOutRange(e, Op_UNKNOWN, Op_ERF)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700424 const size_t index = static_cast<size_t>(e);
425 return EnumNamesOp()[index];
426}
427
Eric Kunze4381b3d2022-08-22 18:15:41 +0000428enum Attribute : uint8_t {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700429 Attribute_NONE = 0,
Kevin Cheng79a41992021-08-31 16:04:40 -0700430 Attribute_PoolAttribute = 1,
431 Attribute_ConvAttribute = 2,
432 Attribute_TransposeConvAttribute = 3,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700433 Attribute_PadAttribute = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700434 Attribute_AxisAttribute = 5,
435 Attribute_ReshapeAttribute = 6,
436 Attribute_SliceAttribute = 7,
437 Attribute_TileAttribute = 8,
438 Attribute_ResizeAttribute = 9,
439 Attribute_ClampAttribute = 10,
440 Attribute_RescaleAttribute = 11,
441 Attribute_MulAttribute = 12,
442 Attribute_ArithmeticRightShiftAttribute = 13,
443 Attribute_CondIfAttribute = 14,
444 Attribute_WhileLoopAttribute = 15,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700445 Attribute_TransposeAttribute = 16,
446 Attribute_TableAttribute = 17,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000447 Attribute_MatMulAttribute = 18,
448 Attribute_FullyConnectedAttribute = 19,
449 Attribute_NegateAttribute = 20,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700450 Attribute_CustomAttribute = 21,
Luke Hutton5e268092023-01-12 22:20:53 +0000451 Attribute_FFTAttribute = 22,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700452 Attribute_MIN = Attribute_NONE,
Luke Hutton5e268092023-01-12 22:20:53 +0000453 Attribute_MAX = Attribute_FFTAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700454};
455
Luke Hutton5e268092023-01-12 22:20:53 +0000456inline const Attribute (&EnumValuesAttribute())[23] {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700457 static const Attribute values[] = {
458 Attribute_NONE,
Kevin Cheng79a41992021-08-31 16:04:40 -0700459 Attribute_PoolAttribute,
460 Attribute_ConvAttribute,
461 Attribute_TransposeConvAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700462 Attribute_PadAttribute,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700463 Attribute_AxisAttribute,
464 Attribute_ReshapeAttribute,
465 Attribute_SliceAttribute,
466 Attribute_TileAttribute,
467 Attribute_ResizeAttribute,
468 Attribute_ClampAttribute,
469 Attribute_RescaleAttribute,
470 Attribute_MulAttribute,
471 Attribute_ArithmeticRightShiftAttribute,
472 Attribute_CondIfAttribute,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700473 Attribute_WhileLoopAttribute,
474 Attribute_TransposeAttribute,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000475 Attribute_TableAttribute,
476 Attribute_MatMulAttribute,
477 Attribute_FullyConnectedAttribute,
Eric Kunze497ab5d2022-10-21 16:39:01 -0700478 Attribute_NegateAttribute,
Luke Hutton5e268092023-01-12 22:20:53 +0000479 Attribute_CustomAttribute,
480 Attribute_FFTAttribute
Eric Kunze2364dcd2021-04-26 11:06:57 -0700481 };
482 return values;
483}
484
485inline const char * const *EnumNamesAttribute() {
Luke Hutton5e268092023-01-12 22:20:53 +0000486 static const char * const names[24] = {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700487 "NONE",
Kevin Cheng79a41992021-08-31 16:04:40 -0700488 "PoolAttribute",
489 "ConvAttribute",
490 "TransposeConvAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700491 "PadAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700492 "AxisAttribute",
493 "ReshapeAttribute",
494 "SliceAttribute",
495 "TileAttribute",
496 "ResizeAttribute",
497 "ClampAttribute",
498 "RescaleAttribute",
499 "MulAttribute",
500 "ArithmeticRightShiftAttribute",
501 "CondIfAttribute",
502 "WhileLoopAttribute",
Kevin Cheng38d214c2021-10-15 15:49:19 -0700503 "TransposeAttribute",
504 "TableAttribute",
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000505 "MatMulAttribute",
506 "FullyConnectedAttribute",
507 "NegateAttribute",
Eric Kunze497ab5d2022-10-21 16:39:01 -0700508 "CustomAttribute",
Luke Hutton5e268092023-01-12 22:20:53 +0000509 "FFTAttribute",
Eric Kunze2364dcd2021-04-26 11:06:57 -0700510 nullptr
511 };
512 return names;
513}
514
515inline const char *EnumNameAttribute(Attribute e) {
Luke Hutton5e268092023-01-12 22:20:53 +0000516 if (flatbuffers::IsOutRange(e, Attribute_NONE, Attribute_FFTAttribute)) return "";
Eric Kunze2364dcd2021-04-26 11:06:57 -0700517 const size_t index = static_cast<size_t>(e);
518 return EnumNamesAttribute()[index];
519}
520
521template<typename T> struct AttributeTraits {
522 static const Attribute enum_value = Attribute_NONE;
523};
524
Kevin Cheng79a41992021-08-31 16:04:40 -0700525template<> struct AttributeTraits<tosa::PoolAttribute> {
526 static const Attribute enum_value = Attribute_PoolAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700527};
528
Kevin Cheng79a41992021-08-31 16:04:40 -0700529template<> struct AttributeTraits<tosa::ConvAttribute> {
530 static const Attribute enum_value = Attribute_ConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700531};
532
Kevin Cheng79a41992021-08-31 16:04:40 -0700533template<> struct AttributeTraits<tosa::TransposeConvAttribute> {
534 static const Attribute enum_value = Attribute_TransposeConvAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700535};
536
Kevin Cheng38d214c2021-10-15 15:49:19 -0700537template<> struct AttributeTraits<tosa::PadAttribute> {
538 static const Attribute enum_value = Attribute_PadAttribute;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700539};
540
541template<> struct AttributeTraits<tosa::AxisAttribute> {
542 static const Attribute enum_value = Attribute_AxisAttribute;
543};
544
545template<> struct AttributeTraits<tosa::ReshapeAttribute> {
546 static const Attribute enum_value = Attribute_ReshapeAttribute;
547};
548
549template<> struct AttributeTraits<tosa::SliceAttribute> {
550 static const Attribute enum_value = Attribute_SliceAttribute;
551};
552
553template<> struct AttributeTraits<tosa::TileAttribute> {
554 static const Attribute enum_value = Attribute_TileAttribute;
555};
556
557template<> struct AttributeTraits<tosa::ResizeAttribute> {
558 static const Attribute enum_value = Attribute_ResizeAttribute;
559};
560
561template<> struct AttributeTraits<tosa::ClampAttribute> {
562 static const Attribute enum_value = Attribute_ClampAttribute;
563};
564
565template<> struct AttributeTraits<tosa::RescaleAttribute> {
566 static const Attribute enum_value = Attribute_RescaleAttribute;
567};
568
569template<> struct AttributeTraits<tosa::MulAttribute> {
570 static const Attribute enum_value = Attribute_MulAttribute;
571};
572
573template<> struct AttributeTraits<tosa::ArithmeticRightShiftAttribute> {
574 static const Attribute enum_value = Attribute_ArithmeticRightShiftAttribute;
575};
576
577template<> struct AttributeTraits<tosa::CondIfAttribute> {
578 static const Attribute enum_value = Attribute_CondIfAttribute;
579};
580
581template<> struct AttributeTraits<tosa::WhileLoopAttribute> {
582 static const Attribute enum_value = Attribute_WhileLoopAttribute;
583};
584
Kevin Cheng38d214c2021-10-15 15:49:19 -0700585template<> struct AttributeTraits<tosa::TransposeAttribute> {
586 static const Attribute enum_value = Attribute_TransposeAttribute;
587};
588
589template<> struct AttributeTraits<tosa::TableAttribute> {
590 static const Attribute enum_value = Attribute_TableAttribute;
591};
592
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000593template<> struct AttributeTraits<tosa::MatMulAttribute> {
594 static const Attribute enum_value = Attribute_MatMulAttribute;
595};
596
597template<> struct AttributeTraits<tosa::FullyConnectedAttribute> {
598 static const Attribute enum_value = Attribute_FullyConnectedAttribute;
599};
600
601template<> struct AttributeTraits<tosa::NegateAttribute> {
602 static const Attribute enum_value = Attribute_NegateAttribute;
603};
604
Eric Kunze497ab5d2022-10-21 16:39:01 -0700605template<> struct AttributeTraits<tosa::CustomAttribute> {
606 static const Attribute enum_value = Attribute_CustomAttribute;
607};
608
Luke Hutton5e268092023-01-12 22:20:53 +0000609template<> struct AttributeTraits<tosa::FFTAttribute> {
610 static const Attribute enum_value = Attribute_FFTAttribute;
611};
612
Eric Kunze2364dcd2021-04-26 11:06:57 -0700613bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type);
614bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types);
615
Kevin Cheng79a41992021-08-31 16:04:40 -0700616struct PoolAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
617 typedef PoolAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700618 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700619 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700620 VT_KERNEL = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000621 VT_STRIDE = 8,
622 VT_INPUT_ZP = 10,
James Ward485a11d2022-08-05 13:48:37 +0100623 VT_OUTPUT_ZP = 12,
624 VT_ACCUM_DTYPE = 14
Eric Kunze2364dcd2021-04-26 11:06:57 -0700625 };
TatWai Chong7be71652022-05-10 17:26:20 -0700626 const flatbuffers::Vector<int32_t> *pad() const {
627 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700628 }
629 const flatbuffers::Vector<int32_t> *kernel() const {
630 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_KERNEL);
631 }
632 const flatbuffers::Vector<int32_t> *stride() const {
633 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
634 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000635 int32_t input_zp() const {
636 return GetField<int32_t>(VT_INPUT_ZP, 0);
637 }
638 int32_t output_zp() const {
639 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
640 }
James Ward485a11d2022-08-05 13:48:37 +0100641 tosa::DType accum_dtype() const {
642 return static_cast<tosa::DType>(GetField<uint32_t>(VT_ACCUM_DTYPE, 0));
643 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700644 bool Verify(flatbuffers::Verifier &verifier) const {
645 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700646 VerifyOffset(verifier, VT_PAD) &&
647 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700648 VerifyOffset(verifier, VT_KERNEL) &&
649 verifier.VerifyVector(kernel()) &&
650 VerifyOffset(verifier, VT_STRIDE) &&
651 verifier.VerifyVector(stride()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000652 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
653 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
James Ward485a11d2022-08-05 13:48:37 +0100654 VerifyField<uint32_t>(verifier, VT_ACCUM_DTYPE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700655 verifier.EndTable();
656 }
657};
658
Kevin Cheng79a41992021-08-31 16:04:40 -0700659struct PoolAttributeBuilder {
660 typedef PoolAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700661 flatbuffers::FlatBufferBuilder &fbb_;
662 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700663 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
664 fbb_.AddOffset(PoolAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700665 }
666 void add_kernel(flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700667 fbb_.AddOffset(PoolAttribute::VT_KERNEL, kernel);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700668 }
669 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700670 fbb_.AddOffset(PoolAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700671 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000672 void add_input_zp(int32_t input_zp) {
673 fbb_.AddElement<int32_t>(PoolAttribute::VT_INPUT_ZP, input_zp, 0);
674 }
675 void add_output_zp(int32_t output_zp) {
676 fbb_.AddElement<int32_t>(PoolAttribute::VT_OUTPUT_ZP, output_zp, 0);
677 }
James Ward485a11d2022-08-05 13:48:37 +0100678 void add_accum_dtype(tosa::DType accum_dtype) {
679 fbb_.AddElement<uint32_t>(PoolAttribute::VT_ACCUM_DTYPE, static_cast<uint32_t>(accum_dtype), 0);
680 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700681 explicit PoolAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700682 : fbb_(_fbb) {
683 start_ = fbb_.StartTable();
684 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700685 flatbuffers::Offset<PoolAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700686 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700687 auto o = flatbuffers::Offset<PoolAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700688 return o;
689 }
690};
691
Kevin Cheng79a41992021-08-31 16:04:40 -0700692inline flatbuffers::Offset<PoolAttribute> CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700693 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700694 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700695 flatbuffers::Offset<flatbuffers::Vector<int32_t>> kernel = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000696 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
697 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100698 int32_t output_zp = 0,
699 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700700 PoolAttributeBuilder builder_(_fbb);
James Ward485a11d2022-08-05 13:48:37 +0100701 builder_.add_accum_dtype(accum_dtype);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000702 builder_.add_output_zp(output_zp);
703 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700704 builder_.add_stride(stride);
705 builder_.add_kernel(kernel);
TatWai Chong7be71652022-05-10 17:26:20 -0700706 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700707 return builder_.Finish();
708}
709
Kevin Cheng79a41992021-08-31 16:04:40 -0700710inline flatbuffers::Offset<PoolAttribute> CreatePoolAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700711 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700712 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700713 const std::vector<int32_t> *kernel = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000714 const std::vector<int32_t> *stride = nullptr,
715 int32_t input_zp = 0,
James Ward485a11d2022-08-05 13:48:37 +0100716 int32_t output_zp = 0,
717 tosa::DType accum_dtype = tosa::DType_UNKNOWN) {
TatWai Chong7be71652022-05-10 17:26:20 -0700718 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700719 auto kernel__ = kernel ? _fbb.CreateVector<int32_t>(*kernel) : 0;
720 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700721 return tosa::CreatePoolAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700722 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700723 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700724 kernel__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000725 stride__,
726 input_zp,
James Ward485a11d2022-08-05 13:48:37 +0100727 output_zp,
728 accum_dtype);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700729}
730
Kevin Cheng79a41992021-08-31 16:04:40 -0700731struct ConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
732 typedef ConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700733 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -0700734 VT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700735 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000736 VT_DILATION = 8,
737 VT_INPUT_ZP = 10,
James Wardea00fd02023-01-20 16:03:50 +0000738 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700739 };
TatWai Chong7be71652022-05-10 17:26:20 -0700740 const flatbuffers::Vector<int32_t> *pad() const {
741 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700742 }
743 const flatbuffers::Vector<int32_t> *stride() const {
744 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
745 }
746 const flatbuffers::Vector<int32_t> *dilation() const {
747 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DILATION);
748 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000749 int32_t input_zp() const {
750 return GetField<int32_t>(VT_INPUT_ZP, 0);
751 }
752 int32_t weight_zp() const {
753 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
754 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700755 bool Verify(flatbuffers::Verifier &verifier) const {
756 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -0700757 VerifyOffset(verifier, VT_PAD) &&
758 verifier.VerifyVector(pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700759 VerifyOffset(verifier, VT_STRIDE) &&
760 verifier.VerifyVector(stride()) &&
761 VerifyOffset(verifier, VT_DILATION) &&
762 verifier.VerifyVector(dilation()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000763 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
764 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700765 verifier.EndTable();
766 }
767};
768
Kevin Cheng79a41992021-08-31 16:04:40 -0700769struct ConvAttributeBuilder {
770 typedef ConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700771 flatbuffers::FlatBufferBuilder &fbb_;
772 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -0700773 void add_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad) {
774 fbb_.AddOffset(ConvAttribute::VT_PAD, pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700775 }
776 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700777 fbb_.AddOffset(ConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700778 }
779 void add_dilation(flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700780 fbb_.AddOffset(ConvAttribute::VT_DILATION, dilation);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700781 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000782 void add_input_zp(int32_t input_zp) {
783 fbb_.AddElement<int32_t>(ConvAttribute::VT_INPUT_ZP, input_zp, 0);
784 }
785 void add_weight_zp(int32_t weight_zp) {
786 fbb_.AddElement<int32_t>(ConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
787 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700788 explicit ConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700789 : fbb_(_fbb) {
790 start_ = fbb_.StartTable();
791 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700792 flatbuffers::Offset<ConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700793 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700794 auto o = flatbuffers::Offset<ConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700795 return o;
796 }
797};
798
Kevin Cheng79a41992021-08-31 16:04:40 -0700799inline flatbuffers::Offset<ConvAttribute> CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700800 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700801 flatbuffers::Offset<flatbuffers::Vector<int32_t>> pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700802 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000803 flatbuffers::Offset<flatbuffers::Vector<int32_t>> dilation = 0,
804 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000805 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700806 ConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000807 builder_.add_weight_zp(weight_zp);
808 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700809 builder_.add_dilation(dilation);
810 builder_.add_stride(stride);
TatWai Chong7be71652022-05-10 17:26:20 -0700811 builder_.add_pad(pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700812 return builder_.Finish();
813}
814
Kevin Cheng79a41992021-08-31 16:04:40 -0700815inline flatbuffers::Offset<ConvAttribute> CreateConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700816 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700817 const std::vector<int32_t> *pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700818 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000819 const std::vector<int32_t> *dilation = nullptr,
820 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000821 int32_t weight_zp = 0) {
TatWai Chong7be71652022-05-10 17:26:20 -0700822 auto pad__ = pad ? _fbb.CreateVector<int32_t>(*pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700823 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
824 auto dilation__ = dilation ? _fbb.CreateVector<int32_t>(*dilation) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700825 return tosa::CreateConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700826 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -0700827 pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700828 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000829 dilation__,
830 input_zp,
James Wardea00fd02023-01-20 16:03:50 +0000831 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700832}
833
Kevin Cheng79a41992021-08-31 16:04:40 -0700834struct TransposeConvAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
835 typedef TransposeConvAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700836 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700837 VT_OUT_PAD = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700838 VT_STRIDE = 6,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000839 VT_OUTPUT_SHAPE = 8,
840 VT_INPUT_ZP = 10,
James Wardea00fd02023-01-20 16:03:50 +0000841 VT_WEIGHT_ZP = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -0700842 };
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700843 const flatbuffers::Vector<int32_t> *out_pad() const {
844 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUT_PAD);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700845 }
846 const flatbuffers::Vector<int32_t> *stride() const {
847 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_STRIDE);
848 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700849 const flatbuffers::Vector<int32_t> *output_shape() const {
850 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_OUTPUT_SHAPE);
851 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000852 int32_t input_zp() const {
853 return GetField<int32_t>(VT_INPUT_ZP, 0);
854 }
855 int32_t weight_zp() const {
856 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
857 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700858 bool Verify(flatbuffers::Verifier &verifier) const {
859 return VerifyTableStart(verifier) &&
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700860 VerifyOffset(verifier, VT_OUT_PAD) &&
861 verifier.VerifyVector(out_pad()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700862 VerifyOffset(verifier, VT_STRIDE) &&
863 verifier.VerifyVector(stride()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700864 VerifyOffset(verifier, VT_OUTPUT_SHAPE) &&
865 verifier.VerifyVector(output_shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000866 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
867 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700868 verifier.EndTable();
869 }
870};
871
Kevin Cheng79a41992021-08-31 16:04:40 -0700872struct TransposeConvAttributeBuilder {
873 typedef TransposeConvAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700874 flatbuffers::FlatBufferBuilder &fbb_;
875 flatbuffers::uoffset_t start_;
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700876 void add_out_pad(flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad) {
877 fbb_.AddOffset(TransposeConvAttribute::VT_OUT_PAD, out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700878 }
879 void add_stride(flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700880 fbb_.AddOffset(TransposeConvAttribute::VT_STRIDE, stride);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700881 }
Eric Kunze2364dcd2021-04-26 11:06:57 -0700882 void add_output_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700883 fbb_.AddOffset(TransposeConvAttribute::VT_OUTPUT_SHAPE, output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700884 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000885 void add_input_zp(int32_t input_zp) {
886 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_INPUT_ZP, input_zp, 0);
887 }
888 void add_weight_zp(int32_t weight_zp) {
889 fbb_.AddElement<int32_t>(TransposeConvAttribute::VT_WEIGHT_ZP, weight_zp, 0);
890 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700891 explicit TransposeConvAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700892 : fbb_(_fbb) {
893 start_ = fbb_.StartTable();
894 }
Kevin Cheng79a41992021-08-31 16:04:40 -0700895 flatbuffers::Offset<TransposeConvAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700896 const auto end = fbb_.EndTable(start_);
Kevin Cheng79a41992021-08-31 16:04:40 -0700897 auto o = flatbuffers::Offset<TransposeConvAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700898 return o;
899 }
900};
901
Kevin Cheng79a41992021-08-31 16:04:40 -0700902inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700903 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700904 flatbuffers::Offset<flatbuffers::Vector<int32_t>> out_pad = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700905 flatbuffers::Offset<flatbuffers::Vector<int32_t>> stride = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000906 flatbuffers::Offset<flatbuffers::Vector<int32_t>> output_shape = 0,
907 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000908 int32_t weight_zp = 0) {
Kevin Cheng79a41992021-08-31 16:04:40 -0700909 TransposeConvAttributeBuilder builder_(_fbb);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000910 builder_.add_weight_zp(weight_zp);
911 builder_.add_input_zp(input_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700912 builder_.add_output_shape(output_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700913 builder_.add_stride(stride);
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700914 builder_.add_out_pad(out_pad);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700915 return builder_.Finish();
916}
917
Kevin Cheng79a41992021-08-31 16:04:40 -0700918inline flatbuffers::Offset<TransposeConvAttribute> CreateTransposeConvAttributeDirect(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700919 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700920 const std::vector<int32_t> *out_pad = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700921 const std::vector<int32_t> *stride = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000922 const std::vector<int32_t> *output_shape = nullptr,
923 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +0000924 int32_t weight_zp = 0) {
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700925 auto out_pad__ = out_pad ? _fbb.CreateVector<int32_t>(*out_pad) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700926 auto stride__ = stride ? _fbb.CreateVector<int32_t>(*stride) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700927 auto output_shape__ = output_shape ? _fbb.CreateVector<int32_t>(*output_shape) : 0;
Kevin Cheng79a41992021-08-31 16:04:40 -0700928 return tosa::CreateTransposeConvAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700929 _fbb,
Eric Kunze7ffa1ff2022-06-01 17:26:48 -0700930 out_pad__,
Eric Kunze2364dcd2021-04-26 11:06:57 -0700931 stride__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +0000932 output_shape__,
933 input_zp,
James Wardea00fd02023-01-20 16:03:50 +0000934 weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700935}
936
Kevin Cheng38d214c2021-10-15 15:49:19 -0700937struct PadAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
938 typedef PadAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700939 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700940 VT_PADDING = 4,
941 VT_PAD_CONST_INT = 6,
942 VT_PAD_CONST_FP = 8
Eric Kunze2364dcd2021-04-26 11:06:57 -0700943 };
Kevin Cheng38d214c2021-10-15 15:49:19 -0700944 const flatbuffers::Vector<int32_t> *padding() const {
945 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PADDING);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700946 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700947 int32_t pad_const_int() const {
948 return GetField<int32_t>(VT_PAD_CONST_INT, 0);
949 }
James Wardc15f7d52022-12-07 15:38:01 +0000950 const flatbuffers::Vector<uint8_t> *pad_const_fp() const {
951 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_PAD_CONST_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700952 }
953 bool Verify(flatbuffers::Verifier &verifier) const {
954 return VerifyTableStart(verifier) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -0700955 VerifyOffset(verifier, VT_PADDING) &&
956 verifier.VerifyVector(padding()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +0000957 VerifyField<int32_t>(verifier, VT_PAD_CONST_INT, 4) &&
James Wardc15f7d52022-12-07 15:38:01 +0000958 VerifyOffset(verifier, VT_PAD_CONST_FP) &&
959 verifier.VerifyVector(pad_const_fp()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -0700960 verifier.EndTable();
961 }
962};
963
Kevin Cheng38d214c2021-10-15 15:49:19 -0700964struct PadAttributeBuilder {
965 typedef PadAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -0700966 flatbuffers::FlatBufferBuilder &fbb_;
967 flatbuffers::uoffset_t start_;
Kevin Cheng38d214c2021-10-15 15:49:19 -0700968 void add_padding(flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding) {
969 fbb_.AddOffset(PadAttribute::VT_PADDING, padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700970 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700971 void add_pad_const_int(int32_t pad_const_int) {
972 fbb_.AddElement<int32_t>(PadAttribute::VT_PAD_CONST_INT, pad_const_int, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700973 }
James Wardc15f7d52022-12-07 15:38:01 +0000974 void add_pad_const_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> pad_const_fp) {
975 fbb_.AddOffset(PadAttribute::VT_PAD_CONST_FP, pad_const_fp);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700976 }
977 explicit PadAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -0700978 : fbb_(_fbb) {
979 start_ = fbb_.StartTable();
980 }
Kevin Cheng38d214c2021-10-15 15:49:19 -0700981 flatbuffers::Offset<PadAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -0700982 const auto end = fbb_.EndTable(start_);
Kevin Cheng38d214c2021-10-15 15:49:19 -0700983 auto o = flatbuffers::Offset<PadAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700984 return o;
985 }
986};
987
Kevin Cheng38d214c2021-10-15 15:49:19 -0700988inline flatbuffers::Offset<PadAttribute> CreatePadAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -0700989 flatbuffers::FlatBufferBuilder &_fbb,
Kevin Cheng38d214c2021-10-15 15:49:19 -0700990 flatbuffers::Offset<flatbuffers::Vector<int32_t>> padding = 0,
991 int32_t pad_const_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +0000992 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> pad_const_fp = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -0700993 PadAttributeBuilder builder_(_fbb);
994 builder_.add_pad_const_fp(pad_const_fp);
995 builder_.add_pad_const_int(pad_const_int);
996 builder_.add_padding(padding);
Eric Kunze2364dcd2021-04-26 11:06:57 -0700997 return builder_.Finish();
998}
999
Kevin Cheng38d214c2021-10-15 15:49:19 -07001000inline flatbuffers::Offset<PadAttribute> CreatePadAttributeDirect(
1001 flatbuffers::FlatBufferBuilder &_fbb,
1002 const std::vector<int32_t> *padding = nullptr,
1003 int32_t pad_const_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001004 const std::vector<uint8_t> *pad_const_fp = nullptr) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001005 auto padding__ = padding ? _fbb.CreateVector<int32_t>(*padding) : 0;
James Wardc15f7d52022-12-07 15:38:01 +00001006 if (pad_const_fp) { _fbb.ForceVectorAlignment(pad_const_fp->size(), sizeof(uint8_t), 8); }
1007 auto pad_const_fp__ = pad_const_fp ? _fbb.CreateVector<uint8_t>(*pad_const_fp) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001008 return tosa::CreatePadAttribute(
1009 _fbb,
1010 padding__,
1011 pad_const_int,
James Wardc15f7d52022-12-07 15:38:01 +00001012 pad_const_fp__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001013}
1014
Eric Kunze2364dcd2021-04-26 11:06:57 -07001015struct AxisAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1016 typedef AxisAttributeBuilder Builder;
1017 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1018 VT_AXIS = 4
1019 };
1020 int32_t axis() const {
1021 return GetField<int32_t>(VT_AXIS, 0);
1022 }
1023 bool Verify(flatbuffers::Verifier &verifier) const {
1024 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001025 VerifyField<int32_t>(verifier, VT_AXIS, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001026 verifier.EndTable();
1027 }
1028};
1029
1030struct AxisAttributeBuilder {
1031 typedef AxisAttribute Table;
1032 flatbuffers::FlatBufferBuilder &fbb_;
1033 flatbuffers::uoffset_t start_;
1034 void add_axis(int32_t axis) {
1035 fbb_.AddElement<int32_t>(AxisAttribute::VT_AXIS, axis, 0);
1036 }
1037 explicit AxisAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1038 : fbb_(_fbb) {
1039 start_ = fbb_.StartTable();
1040 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001041 flatbuffers::Offset<AxisAttribute> Finish() {
1042 const auto end = fbb_.EndTable(start_);
1043 auto o = flatbuffers::Offset<AxisAttribute>(end);
1044 return o;
1045 }
1046};
1047
1048inline flatbuffers::Offset<AxisAttribute> CreateAxisAttribute(
1049 flatbuffers::FlatBufferBuilder &_fbb,
1050 int32_t axis = 0) {
1051 AxisAttributeBuilder builder_(_fbb);
1052 builder_.add_axis(axis);
1053 return builder_.Finish();
1054}
1055
1056struct ReshapeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1057 typedef ReshapeAttributeBuilder Builder;
1058 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001059 VT_NEW_SHAPE = 4
Eric Kunze2364dcd2021-04-26 11:06:57 -07001060 };
TatWai Chong7be71652022-05-10 17:26:20 -07001061 const flatbuffers::Vector<int32_t> *new_shape() const {
1062 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_NEW_SHAPE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001063 }
1064 bool Verify(flatbuffers::Verifier &verifier) const {
1065 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001066 VerifyOffset(verifier, VT_NEW_SHAPE) &&
1067 verifier.VerifyVector(new_shape()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001068 verifier.EndTable();
1069 }
1070};
1071
1072struct ReshapeAttributeBuilder {
1073 typedef ReshapeAttribute Table;
1074 flatbuffers::FlatBufferBuilder &fbb_;
1075 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001076 void add_new_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape) {
1077 fbb_.AddOffset(ReshapeAttribute::VT_NEW_SHAPE, new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001078 }
1079 explicit ReshapeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1080 : fbb_(_fbb) {
1081 start_ = fbb_.StartTable();
1082 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001083 flatbuffers::Offset<ReshapeAttribute> Finish() {
1084 const auto end = fbb_.EndTable(start_);
1085 auto o = flatbuffers::Offset<ReshapeAttribute>(end);
1086 return o;
1087 }
1088};
1089
1090inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttribute(
1091 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001092 flatbuffers::Offset<flatbuffers::Vector<int32_t>> new_shape = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001093 ReshapeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001094 builder_.add_new_shape(new_shape);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001095 return builder_.Finish();
1096}
1097
1098inline flatbuffers::Offset<ReshapeAttribute> CreateReshapeAttributeDirect(
1099 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001100 const std::vector<int32_t> *new_shape = nullptr) {
1101 auto new_shape__ = new_shape ? _fbb.CreateVector<int32_t>(*new_shape) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001102 return tosa::CreateReshapeAttribute(
1103 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001104 new_shape__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001105}
1106
1107struct SliceAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1108 typedef SliceAttributeBuilder Builder;
1109 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001110 VT_START = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001111 VT_SIZE = 6
1112 };
TatWai Chong7be71652022-05-10 17:26:20 -07001113 const flatbuffers::Vector<int32_t> *start() const {
1114 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_START);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001115 }
1116 const flatbuffers::Vector<int32_t> *size() const {
1117 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SIZE);
1118 }
1119 bool Verify(flatbuffers::Verifier &verifier) const {
1120 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001121 VerifyOffset(verifier, VT_START) &&
1122 verifier.VerifyVector(start()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001123 VerifyOffset(verifier, VT_SIZE) &&
1124 verifier.VerifyVector(size()) &&
1125 verifier.EndTable();
1126 }
1127};
1128
1129struct SliceAttributeBuilder {
1130 typedef SliceAttribute Table;
1131 flatbuffers::FlatBufferBuilder &fbb_;
1132 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001133 void add_start(flatbuffers::Offset<flatbuffers::Vector<int32_t>> start) {
1134 fbb_.AddOffset(SliceAttribute::VT_START, start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001135 }
1136 void add_size(flatbuffers::Offset<flatbuffers::Vector<int32_t>> size) {
1137 fbb_.AddOffset(SliceAttribute::VT_SIZE, size);
1138 }
1139 explicit SliceAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1140 : fbb_(_fbb) {
1141 start_ = fbb_.StartTable();
1142 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001143 flatbuffers::Offset<SliceAttribute> Finish() {
1144 const auto end = fbb_.EndTable(start_);
1145 auto o = flatbuffers::Offset<SliceAttribute>(end);
1146 return o;
1147 }
1148};
1149
1150inline flatbuffers::Offset<SliceAttribute> CreateSliceAttribute(
1151 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001152 flatbuffers::Offset<flatbuffers::Vector<int32_t>> start = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001153 flatbuffers::Offset<flatbuffers::Vector<int32_t>> size = 0) {
1154 SliceAttributeBuilder builder_(_fbb);
1155 builder_.add_size(size);
TatWai Chong7be71652022-05-10 17:26:20 -07001156 builder_.add_start(start);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001157 return builder_.Finish();
1158}
1159
1160inline flatbuffers::Offset<SliceAttribute> CreateSliceAttributeDirect(
1161 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001162 const std::vector<int32_t> *start = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001163 const std::vector<int32_t> *size = nullptr) {
TatWai Chong7be71652022-05-10 17:26:20 -07001164 auto start__ = start ? _fbb.CreateVector<int32_t>(*start) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001165 auto size__ = size ? _fbb.CreateVector<int32_t>(*size) : 0;
1166 return tosa::CreateSliceAttribute(
1167 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001168 start__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001169 size__);
1170}
1171
1172struct TileAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1173 typedef TileAttributeBuilder Builder;
1174 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1175 VT_MULTIPLES = 4
1176 };
1177 const flatbuffers::Vector<int32_t> *multiples() const {
1178 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLES);
1179 }
1180 bool Verify(flatbuffers::Verifier &verifier) const {
1181 return VerifyTableStart(verifier) &&
1182 VerifyOffset(verifier, VT_MULTIPLES) &&
1183 verifier.VerifyVector(multiples()) &&
1184 verifier.EndTable();
1185 }
1186};
1187
1188struct TileAttributeBuilder {
1189 typedef TileAttribute Table;
1190 flatbuffers::FlatBufferBuilder &fbb_;
1191 flatbuffers::uoffset_t start_;
1192 void add_multiples(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples) {
1193 fbb_.AddOffset(TileAttribute::VT_MULTIPLES, multiples);
1194 }
1195 explicit TileAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1196 : fbb_(_fbb) {
1197 start_ = fbb_.StartTable();
1198 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001199 flatbuffers::Offset<TileAttribute> Finish() {
1200 const auto end = fbb_.EndTable(start_);
1201 auto o = flatbuffers::Offset<TileAttribute>(end);
1202 return o;
1203 }
1204};
1205
1206inline flatbuffers::Offset<TileAttribute> CreateTileAttribute(
1207 flatbuffers::FlatBufferBuilder &_fbb,
1208 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiples = 0) {
1209 TileAttributeBuilder builder_(_fbb);
1210 builder_.add_multiples(multiples);
1211 return builder_.Finish();
1212}
1213
1214inline flatbuffers::Offset<TileAttribute> CreateTileAttributeDirect(
1215 flatbuffers::FlatBufferBuilder &_fbb,
1216 const std::vector<int32_t> *multiples = nullptr) {
1217 auto multiples__ = multiples ? _fbb.CreateVector<int32_t>(*multiples) : 0;
1218 return tosa::CreateTileAttribute(
1219 _fbb,
1220 multiples__);
1221}
1222
1223struct ResizeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1224 typedef ResizeAttributeBuilder Builder;
1225 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001226 VT_SCALE = 4,
1227 VT_OFFSET = 6,
1228 VT_BORDER = 8,
1229 VT_MODE = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07001230 };
TatWai Chong49b1ca62022-06-10 01:49:13 -07001231 const flatbuffers::Vector<int16_t> *scale() const {
1232 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_SCALE);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001233 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001234 const flatbuffers::Vector<int16_t> *offset() const {
1235 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_OFFSET);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001236 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001237 const flatbuffers::Vector<int16_t> *border() const {
1238 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_BORDER);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001239 }
1240 tosa::ResizeMode mode() const {
1241 return static_cast<tosa::ResizeMode>(GetField<uint32_t>(VT_MODE, 0));
1242 }
1243 bool Verify(flatbuffers::Verifier &verifier) const {
1244 return VerifyTableStart(verifier) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001245 VerifyOffset(verifier, VT_SCALE) &&
1246 verifier.VerifyVector(scale()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001247 VerifyOffset(verifier, VT_OFFSET) &&
1248 verifier.VerifyVector(offset()) &&
TatWai Chong49b1ca62022-06-10 01:49:13 -07001249 VerifyOffset(verifier, VT_BORDER) &&
1250 verifier.VerifyVector(border()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001251 VerifyField<uint32_t>(verifier, VT_MODE, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001252 verifier.EndTable();
1253 }
1254};
1255
1256struct ResizeAttributeBuilder {
1257 typedef ResizeAttribute Table;
1258 flatbuffers::FlatBufferBuilder &fbb_;
1259 flatbuffers::uoffset_t start_;
TatWai Chong49b1ca62022-06-10 01:49:13 -07001260 void add_scale(flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale) {
1261 fbb_.AddOffset(ResizeAttribute::VT_SCALE, scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001262 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001263 void add_offset(flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001264 fbb_.AddOffset(ResizeAttribute::VT_OFFSET, offset);
1265 }
TatWai Chong49b1ca62022-06-10 01:49:13 -07001266 void add_border(flatbuffers::Offset<flatbuffers::Vector<int16_t>> border) {
1267 fbb_.AddOffset(ResizeAttribute::VT_BORDER, border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001268 }
1269 void add_mode(tosa::ResizeMode mode) {
1270 fbb_.AddElement<uint32_t>(ResizeAttribute::VT_MODE, static_cast<uint32_t>(mode), 0);
1271 }
1272 explicit ResizeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1273 : fbb_(_fbb) {
1274 start_ = fbb_.StartTable();
1275 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001276 flatbuffers::Offset<ResizeAttribute> Finish() {
1277 const auto end = fbb_.EndTable(start_);
1278 auto o = flatbuffers::Offset<ResizeAttribute>(end);
1279 return o;
1280 }
1281};
1282
1283inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttribute(
1284 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001285 flatbuffers::Offset<flatbuffers::Vector<int16_t>> scale = 0,
1286 flatbuffers::Offset<flatbuffers::Vector<int16_t>> offset = 0,
1287 flatbuffers::Offset<flatbuffers::Vector<int16_t>> border = 0,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001288 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
1289 ResizeAttributeBuilder builder_(_fbb);
1290 builder_.add_mode(mode);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001291 builder_.add_border(border);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001292 builder_.add_offset(offset);
TatWai Chong49b1ca62022-06-10 01:49:13 -07001293 builder_.add_scale(scale);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001294 return builder_.Finish();
1295}
1296
1297inline flatbuffers::Offset<ResizeAttribute> CreateResizeAttributeDirect(
1298 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001299 const std::vector<int16_t> *scale = nullptr,
1300 const std::vector<int16_t> *offset = nullptr,
1301 const std::vector<int16_t> *border = nullptr,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001302 tosa::ResizeMode mode = tosa::ResizeMode_UNKNOWN) {
TatWai Chong49b1ca62022-06-10 01:49:13 -07001303 auto scale__ = scale ? _fbb.CreateVector<int16_t>(*scale) : 0;
1304 auto offset__ = offset ? _fbb.CreateVector<int16_t>(*offset) : 0;
1305 auto border__ = border ? _fbb.CreateVector<int16_t>(*border) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001306 return tosa::CreateResizeAttribute(
1307 _fbb,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001308 scale__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001309 offset__,
TatWai Chong49b1ca62022-06-10 01:49:13 -07001310 border__,
Eric Kunze2364dcd2021-04-26 11:06:57 -07001311 mode);
1312}
1313
1314struct ClampAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1315 typedef ClampAttributeBuilder Builder;
1316 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1317 VT_MIN_INT = 4,
1318 VT_MAX_INT = 6,
1319 VT_MIN_FP = 8,
1320 VT_MAX_FP = 10
1321 };
1322 int32_t min_int() const {
1323 return GetField<int32_t>(VT_MIN_INT, 0);
1324 }
1325 int32_t max_int() const {
1326 return GetField<int32_t>(VT_MAX_INT, 0);
1327 }
James Wardc15f7d52022-12-07 15:38:01 +00001328 const flatbuffers::Vector<uint8_t> *min_fp() const {
1329 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MIN_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001330 }
James Wardc15f7d52022-12-07 15:38:01 +00001331 const flatbuffers::Vector<uint8_t> *max_fp() const {
1332 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MAX_FP);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001333 }
1334 bool Verify(flatbuffers::Verifier &verifier) const {
1335 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001336 VerifyField<int32_t>(verifier, VT_MIN_INT, 4) &&
1337 VerifyField<int32_t>(verifier, VT_MAX_INT, 4) &&
James Wardc15f7d52022-12-07 15:38:01 +00001338 VerifyOffset(verifier, VT_MIN_FP) &&
1339 verifier.VerifyVector(min_fp()) &&
1340 VerifyOffset(verifier, VT_MAX_FP) &&
1341 verifier.VerifyVector(max_fp()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001342 verifier.EndTable();
1343 }
1344};
1345
1346struct ClampAttributeBuilder {
1347 typedef ClampAttribute Table;
1348 flatbuffers::FlatBufferBuilder &fbb_;
1349 flatbuffers::uoffset_t start_;
1350 void add_min_int(int32_t min_int) {
1351 fbb_.AddElement<int32_t>(ClampAttribute::VT_MIN_INT, min_int, 0);
1352 }
1353 void add_max_int(int32_t max_int) {
1354 fbb_.AddElement<int32_t>(ClampAttribute::VT_MAX_INT, max_int, 0);
1355 }
James Wardc15f7d52022-12-07 15:38:01 +00001356 void add_min_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> min_fp) {
1357 fbb_.AddOffset(ClampAttribute::VT_MIN_FP, min_fp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001358 }
James Wardc15f7d52022-12-07 15:38:01 +00001359 void add_max_fp(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> max_fp) {
1360 fbb_.AddOffset(ClampAttribute::VT_MAX_FP, max_fp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001361 }
1362 explicit ClampAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1363 : fbb_(_fbb) {
1364 start_ = fbb_.StartTable();
1365 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001366 flatbuffers::Offset<ClampAttribute> Finish() {
1367 const auto end = fbb_.EndTable(start_);
1368 auto o = flatbuffers::Offset<ClampAttribute>(end);
1369 return o;
1370 }
1371};
1372
1373inline flatbuffers::Offset<ClampAttribute> CreateClampAttribute(
1374 flatbuffers::FlatBufferBuilder &_fbb,
1375 int32_t min_int = 0,
1376 int32_t max_int = 0,
James Wardc15f7d52022-12-07 15:38:01 +00001377 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> min_fp = 0,
1378 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> max_fp = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001379 ClampAttributeBuilder builder_(_fbb);
1380 builder_.add_max_fp(max_fp);
1381 builder_.add_min_fp(min_fp);
1382 builder_.add_max_int(max_int);
1383 builder_.add_min_int(min_int);
1384 return builder_.Finish();
1385}
1386
James Wardc15f7d52022-12-07 15:38:01 +00001387inline flatbuffers::Offset<ClampAttribute> CreateClampAttributeDirect(
1388 flatbuffers::FlatBufferBuilder &_fbb,
1389 int32_t min_int = 0,
1390 int32_t max_int = 0,
1391 const std::vector<uint8_t> *min_fp = nullptr,
1392 const std::vector<uint8_t> *max_fp = nullptr) {
1393 if (min_fp) { _fbb.ForceVectorAlignment(min_fp->size(), sizeof(uint8_t), 8); }
1394 auto min_fp__ = min_fp ? _fbb.CreateVector<uint8_t>(*min_fp) : 0;
1395 if (max_fp) { _fbb.ForceVectorAlignment(max_fp->size(), sizeof(uint8_t), 8); }
1396 auto max_fp__ = max_fp ? _fbb.CreateVector<uint8_t>(*max_fp) : 0;
1397 return tosa::CreateClampAttribute(
1398 _fbb,
1399 min_int,
1400 max_int,
1401 min_fp__,
1402 max_fp__);
1403}
1404
Eric Kunze2364dcd2021-04-26 11:06:57 -07001405struct RescaleAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1406 typedef RescaleAttributeBuilder Builder;
1407 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1408 VT_INPUT_ZP = 4,
1409 VT_OUTPUT_ZP = 6,
1410 VT_MULTIPLIER = 8,
1411 VT_SHIFT = 10,
1412 VT_SCALE32 = 12,
1413 VT_DOUBLE_ROUND = 14,
1414 VT_PER_CHANNEL = 16
1415 };
1416 int32_t input_zp() const {
1417 return GetField<int32_t>(VT_INPUT_ZP, 0);
1418 }
1419 int32_t output_zp() const {
1420 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1421 }
1422 const flatbuffers::Vector<int32_t> *multiplier() const {
1423 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_MULTIPLIER);
1424 }
1425 const flatbuffers::Vector<int32_t> *shift() const {
1426 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHIFT);
1427 }
1428 bool scale32() const {
1429 return GetField<uint8_t>(VT_SCALE32, 0) != 0;
1430 }
1431 bool double_round() const {
1432 return GetField<uint8_t>(VT_DOUBLE_ROUND, 0) != 0;
1433 }
1434 bool per_channel() const {
1435 return GetField<uint8_t>(VT_PER_CHANNEL, 0) != 0;
1436 }
1437 bool Verify(flatbuffers::Verifier &verifier) const {
1438 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001439 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1440 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001441 VerifyOffset(verifier, VT_MULTIPLIER) &&
1442 verifier.VerifyVector(multiplier()) &&
1443 VerifyOffset(verifier, VT_SHIFT) &&
1444 verifier.VerifyVector(shift()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001445 VerifyField<uint8_t>(verifier, VT_SCALE32, 1) &&
1446 VerifyField<uint8_t>(verifier, VT_DOUBLE_ROUND, 1) &&
1447 VerifyField<uint8_t>(verifier, VT_PER_CHANNEL, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001448 verifier.EndTable();
1449 }
1450};
1451
1452struct RescaleAttributeBuilder {
1453 typedef RescaleAttribute Table;
1454 flatbuffers::FlatBufferBuilder &fbb_;
1455 flatbuffers::uoffset_t start_;
1456 void add_input_zp(int32_t input_zp) {
1457 fbb_.AddElement<int32_t>(RescaleAttribute::VT_INPUT_ZP, input_zp, 0);
1458 }
1459 void add_output_zp(int32_t output_zp) {
1460 fbb_.AddElement<int32_t>(RescaleAttribute::VT_OUTPUT_ZP, output_zp, 0);
1461 }
1462 void add_multiplier(flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier) {
1463 fbb_.AddOffset(RescaleAttribute::VT_MULTIPLIER, multiplier);
1464 }
1465 void add_shift(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift) {
1466 fbb_.AddOffset(RescaleAttribute::VT_SHIFT, shift);
1467 }
1468 void add_scale32(bool scale32) {
1469 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_SCALE32, static_cast<uint8_t>(scale32), 0);
1470 }
1471 void add_double_round(bool double_round) {
1472 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_DOUBLE_ROUND, static_cast<uint8_t>(double_round), 0);
1473 }
1474 void add_per_channel(bool per_channel) {
1475 fbb_.AddElement<uint8_t>(RescaleAttribute::VT_PER_CHANNEL, static_cast<uint8_t>(per_channel), 0);
1476 }
1477 explicit RescaleAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1478 : fbb_(_fbb) {
1479 start_ = fbb_.StartTable();
1480 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001481 flatbuffers::Offset<RescaleAttribute> Finish() {
1482 const auto end = fbb_.EndTable(start_);
1483 auto o = flatbuffers::Offset<RescaleAttribute>(end);
1484 return o;
1485 }
1486};
1487
1488inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttribute(
1489 flatbuffers::FlatBufferBuilder &_fbb,
1490 int32_t input_zp = 0,
1491 int32_t output_zp = 0,
1492 flatbuffers::Offset<flatbuffers::Vector<int32_t>> multiplier = 0,
1493 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shift = 0,
1494 bool scale32 = false,
1495 bool double_round = false,
1496 bool per_channel = false) {
1497 RescaleAttributeBuilder builder_(_fbb);
1498 builder_.add_shift(shift);
1499 builder_.add_multiplier(multiplier);
1500 builder_.add_output_zp(output_zp);
1501 builder_.add_input_zp(input_zp);
1502 builder_.add_per_channel(per_channel);
1503 builder_.add_double_round(double_round);
1504 builder_.add_scale32(scale32);
1505 return builder_.Finish();
1506}
1507
1508inline flatbuffers::Offset<RescaleAttribute> CreateRescaleAttributeDirect(
1509 flatbuffers::FlatBufferBuilder &_fbb,
1510 int32_t input_zp = 0,
1511 int32_t output_zp = 0,
1512 const std::vector<int32_t> *multiplier = nullptr,
1513 const std::vector<int32_t> *shift = nullptr,
1514 bool scale32 = false,
1515 bool double_round = false,
1516 bool per_channel = false) {
1517 auto multiplier__ = multiplier ? _fbb.CreateVector<int32_t>(*multiplier) : 0;
1518 auto shift__ = shift ? _fbb.CreateVector<int32_t>(*shift) : 0;
1519 return tosa::CreateRescaleAttribute(
1520 _fbb,
1521 input_zp,
1522 output_zp,
1523 multiplier__,
1524 shift__,
1525 scale32,
1526 double_round,
1527 per_channel);
1528}
1529
1530struct MulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1531 typedef MulAttributeBuilder Builder;
1532 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1533 VT_SHIFT = 4
1534 };
1535 int32_t shift() const {
1536 return GetField<int32_t>(VT_SHIFT, 0);
1537 }
1538 bool Verify(flatbuffers::Verifier &verifier) const {
1539 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001540 VerifyField<int32_t>(verifier, VT_SHIFT, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001541 verifier.EndTable();
1542 }
1543};
1544
1545struct MulAttributeBuilder {
1546 typedef MulAttribute Table;
1547 flatbuffers::FlatBufferBuilder &fbb_;
1548 flatbuffers::uoffset_t start_;
1549 void add_shift(int32_t shift) {
1550 fbb_.AddElement<int32_t>(MulAttribute::VT_SHIFT, shift, 0);
1551 }
1552 explicit MulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1553 : fbb_(_fbb) {
1554 start_ = fbb_.StartTable();
1555 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001556 flatbuffers::Offset<MulAttribute> Finish() {
1557 const auto end = fbb_.EndTable(start_);
1558 auto o = flatbuffers::Offset<MulAttribute>(end);
1559 return o;
1560 }
1561};
1562
1563inline flatbuffers::Offset<MulAttribute> CreateMulAttribute(
1564 flatbuffers::FlatBufferBuilder &_fbb,
1565 int32_t shift = 0) {
1566 MulAttributeBuilder builder_(_fbb);
1567 builder_.add_shift(shift);
1568 return builder_.Finish();
1569}
1570
1571struct ArithmeticRightShiftAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1572 typedef ArithmeticRightShiftAttributeBuilder Builder;
1573 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1574 VT_ROUND = 4
1575 };
1576 bool round() const {
1577 return GetField<uint8_t>(VT_ROUND, 0) != 0;
1578 }
1579 bool Verify(flatbuffers::Verifier &verifier) const {
1580 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001581 VerifyField<uint8_t>(verifier, VT_ROUND, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001582 verifier.EndTable();
1583 }
1584};
1585
1586struct ArithmeticRightShiftAttributeBuilder {
1587 typedef ArithmeticRightShiftAttribute Table;
1588 flatbuffers::FlatBufferBuilder &fbb_;
1589 flatbuffers::uoffset_t start_;
1590 void add_round(bool round) {
1591 fbb_.AddElement<uint8_t>(ArithmeticRightShiftAttribute::VT_ROUND, static_cast<uint8_t>(round), 0);
1592 }
1593 explicit ArithmeticRightShiftAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1594 : fbb_(_fbb) {
1595 start_ = fbb_.StartTable();
1596 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001597 flatbuffers::Offset<ArithmeticRightShiftAttribute> Finish() {
1598 const auto end = fbb_.EndTable(start_);
1599 auto o = flatbuffers::Offset<ArithmeticRightShiftAttribute>(end);
1600 return o;
1601 }
1602};
1603
1604inline flatbuffers::Offset<ArithmeticRightShiftAttribute> CreateArithmeticRightShiftAttribute(
1605 flatbuffers::FlatBufferBuilder &_fbb,
1606 bool round = false) {
1607 ArithmeticRightShiftAttributeBuilder builder_(_fbb);
1608 builder_.add_round(round);
1609 return builder_.Finish();
1610}
1611
1612struct CondIfAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1613 typedef CondIfAttributeBuilder Builder;
1614 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1615 VT_THEN_BRANCH = 4,
1616 VT_ELSE_BRANCH = 6
1617 };
1618 const flatbuffers::String *then_branch() const {
1619 return GetPointer<const flatbuffers::String *>(VT_THEN_BRANCH);
1620 }
1621 const flatbuffers::String *else_branch() const {
1622 return GetPointer<const flatbuffers::String *>(VT_ELSE_BRANCH);
1623 }
1624 bool Verify(flatbuffers::Verifier &verifier) const {
1625 return VerifyTableStart(verifier) &&
1626 VerifyOffset(verifier, VT_THEN_BRANCH) &&
1627 verifier.VerifyString(then_branch()) &&
1628 VerifyOffset(verifier, VT_ELSE_BRANCH) &&
1629 verifier.VerifyString(else_branch()) &&
1630 verifier.EndTable();
1631 }
1632};
1633
1634struct CondIfAttributeBuilder {
1635 typedef CondIfAttribute Table;
1636 flatbuffers::FlatBufferBuilder &fbb_;
1637 flatbuffers::uoffset_t start_;
1638 void add_then_branch(flatbuffers::Offset<flatbuffers::String> then_branch) {
1639 fbb_.AddOffset(CondIfAttribute::VT_THEN_BRANCH, then_branch);
1640 }
1641 void add_else_branch(flatbuffers::Offset<flatbuffers::String> else_branch) {
1642 fbb_.AddOffset(CondIfAttribute::VT_ELSE_BRANCH, else_branch);
1643 }
1644 explicit CondIfAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1645 : fbb_(_fbb) {
1646 start_ = fbb_.StartTable();
1647 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001648 flatbuffers::Offset<CondIfAttribute> Finish() {
1649 const auto end = fbb_.EndTable(start_);
1650 auto o = flatbuffers::Offset<CondIfAttribute>(end);
1651 return o;
1652 }
1653};
1654
1655inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttribute(
1656 flatbuffers::FlatBufferBuilder &_fbb,
1657 flatbuffers::Offset<flatbuffers::String> then_branch = 0,
1658 flatbuffers::Offset<flatbuffers::String> else_branch = 0) {
1659 CondIfAttributeBuilder builder_(_fbb);
1660 builder_.add_else_branch(else_branch);
1661 builder_.add_then_branch(then_branch);
1662 return builder_.Finish();
1663}
1664
1665inline flatbuffers::Offset<CondIfAttribute> CreateCondIfAttributeDirect(
1666 flatbuffers::FlatBufferBuilder &_fbb,
1667 const char *then_branch = nullptr,
1668 const char *else_branch = nullptr) {
1669 auto then_branch__ = then_branch ? _fbb.CreateString(then_branch) : 0;
1670 auto else_branch__ = else_branch ? _fbb.CreateString(else_branch) : 0;
1671 return tosa::CreateCondIfAttribute(
1672 _fbb,
1673 then_branch__,
1674 else_branch__);
1675}
1676
1677struct WhileLoopAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1678 typedef WhileLoopAttributeBuilder Builder;
1679 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1680 VT_COND_BRANCH = 4,
1681 VT_BODY_BRANCH = 6
1682 };
1683 const flatbuffers::String *cond_branch() const {
1684 return GetPointer<const flatbuffers::String *>(VT_COND_BRANCH);
1685 }
1686 const flatbuffers::String *body_branch() const {
1687 return GetPointer<const flatbuffers::String *>(VT_BODY_BRANCH);
1688 }
1689 bool Verify(flatbuffers::Verifier &verifier) const {
1690 return VerifyTableStart(verifier) &&
1691 VerifyOffset(verifier, VT_COND_BRANCH) &&
1692 verifier.VerifyString(cond_branch()) &&
1693 VerifyOffset(verifier, VT_BODY_BRANCH) &&
1694 verifier.VerifyString(body_branch()) &&
1695 verifier.EndTable();
1696 }
1697};
1698
1699struct WhileLoopAttributeBuilder {
1700 typedef WhileLoopAttribute Table;
1701 flatbuffers::FlatBufferBuilder &fbb_;
1702 flatbuffers::uoffset_t start_;
1703 void add_cond_branch(flatbuffers::Offset<flatbuffers::String> cond_branch) {
1704 fbb_.AddOffset(WhileLoopAttribute::VT_COND_BRANCH, cond_branch);
1705 }
1706 void add_body_branch(flatbuffers::Offset<flatbuffers::String> body_branch) {
1707 fbb_.AddOffset(WhileLoopAttribute::VT_BODY_BRANCH, body_branch);
1708 }
1709 explicit WhileLoopAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1710 : fbb_(_fbb) {
1711 start_ = fbb_.StartTable();
1712 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001713 flatbuffers::Offset<WhileLoopAttribute> Finish() {
1714 const auto end = fbb_.EndTable(start_);
1715 auto o = flatbuffers::Offset<WhileLoopAttribute>(end);
1716 return o;
1717 }
1718};
1719
1720inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttribute(
1721 flatbuffers::FlatBufferBuilder &_fbb,
1722 flatbuffers::Offset<flatbuffers::String> cond_branch = 0,
1723 flatbuffers::Offset<flatbuffers::String> body_branch = 0) {
1724 WhileLoopAttributeBuilder builder_(_fbb);
1725 builder_.add_body_branch(body_branch);
1726 builder_.add_cond_branch(cond_branch);
1727 return builder_.Finish();
1728}
1729
1730inline flatbuffers::Offset<WhileLoopAttribute> CreateWhileLoopAttributeDirect(
1731 flatbuffers::FlatBufferBuilder &_fbb,
1732 const char *cond_branch = nullptr,
1733 const char *body_branch = nullptr) {
1734 auto cond_branch__ = cond_branch ? _fbb.CreateString(cond_branch) : 0;
1735 auto body_branch__ = body_branch ? _fbb.CreateString(body_branch) : 0;
1736 return tosa::CreateWhileLoopAttribute(
1737 _fbb,
1738 cond_branch__,
1739 body_branch__);
1740}
1741
Kevin Cheng38d214c2021-10-15 15:49:19 -07001742struct TransposeAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1743 typedef TransposeAttributeBuilder Builder;
1744 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
TatWai Chong7be71652022-05-10 17:26:20 -07001745 VT_PERMS = 4
Kevin Cheng38d214c2021-10-15 15:49:19 -07001746 };
TatWai Chong7be71652022-05-10 17:26:20 -07001747 const flatbuffers::Vector<int32_t> *perms() const {
1748 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_PERMS);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001749 }
1750 bool Verify(flatbuffers::Verifier &verifier) const {
1751 return VerifyTableStart(verifier) &&
TatWai Chong7be71652022-05-10 17:26:20 -07001752 VerifyOffset(verifier, VT_PERMS) &&
1753 verifier.VerifyVector(perms()) &&
Kevin Cheng38d214c2021-10-15 15:49:19 -07001754 verifier.EndTable();
1755 }
1756};
1757
1758struct TransposeAttributeBuilder {
1759 typedef TransposeAttribute Table;
1760 flatbuffers::FlatBufferBuilder &fbb_;
1761 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001762 void add_perms(flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms) {
1763 fbb_.AddOffset(TransposeAttribute::VT_PERMS, perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001764 }
1765 explicit TransposeAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1766 : fbb_(_fbb) {
1767 start_ = fbb_.StartTable();
1768 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001769 flatbuffers::Offset<TransposeAttribute> Finish() {
1770 const auto end = fbb_.EndTable(start_);
1771 auto o = flatbuffers::Offset<TransposeAttribute>(end);
1772 return o;
1773 }
1774};
1775
1776inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttribute(
1777 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001778 flatbuffers::Offset<flatbuffers::Vector<int32_t>> perms = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001779 TransposeAttributeBuilder builder_(_fbb);
TatWai Chong7be71652022-05-10 17:26:20 -07001780 builder_.add_perms(perms);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001781 return builder_.Finish();
1782}
1783
1784inline flatbuffers::Offset<TransposeAttribute> CreateTransposeAttributeDirect(
1785 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001786 const std::vector<int32_t> *perms = nullptr) {
1787 auto perms__ = perms ? _fbb.CreateVector<int32_t>(*perms) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001788 return tosa::CreateTransposeAttribute(
1789 _fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001790 perms__);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001791}
1792
1793struct TableAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1794 typedef TableAttributeBuilder Builder;
1795 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1796 VT_TABLE = 4
1797 };
TatWai Chong7be71652022-05-10 17:26:20 -07001798 const flatbuffers::Vector<int16_t> *table() const {
1799 return GetPointer<const flatbuffers::Vector<int16_t> *>(VT_TABLE);
Kevin Cheng38d214c2021-10-15 15:49:19 -07001800 }
1801 bool Verify(flatbuffers::Verifier &verifier) const {
1802 return VerifyTableStart(verifier) &&
1803 VerifyOffset(verifier, VT_TABLE) &&
1804 verifier.VerifyVector(table()) &&
1805 verifier.EndTable();
1806 }
1807};
1808
1809struct TableAttributeBuilder {
1810 typedef TableAttribute Table;
1811 flatbuffers::FlatBufferBuilder &fbb_;
1812 flatbuffers::uoffset_t start_;
TatWai Chong7be71652022-05-10 17:26:20 -07001813 void add_table(flatbuffers::Offset<flatbuffers::Vector<int16_t>> table) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001814 fbb_.AddOffset(TableAttribute::VT_TABLE, table);
1815 }
1816 explicit TableAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1817 : fbb_(_fbb) {
1818 start_ = fbb_.StartTable();
1819 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07001820 flatbuffers::Offset<TableAttribute> Finish() {
1821 const auto end = fbb_.EndTable(start_);
1822 auto o = flatbuffers::Offset<TableAttribute>(end);
1823 return o;
1824 }
1825};
1826
1827inline flatbuffers::Offset<TableAttribute> CreateTableAttribute(
1828 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001829 flatbuffers::Offset<flatbuffers::Vector<int16_t>> table = 0) {
Kevin Cheng38d214c2021-10-15 15:49:19 -07001830 TableAttributeBuilder builder_(_fbb);
1831 builder_.add_table(table);
1832 return builder_.Finish();
1833}
1834
1835inline flatbuffers::Offset<TableAttribute> CreateTableAttributeDirect(
1836 flatbuffers::FlatBufferBuilder &_fbb,
TatWai Chong7be71652022-05-10 17:26:20 -07001837 const std::vector<int16_t> *table = nullptr) {
1838 auto table__ = table ? _fbb.CreateVector<int16_t>(*table) : 0;
Kevin Cheng38d214c2021-10-15 15:49:19 -07001839 return tosa::CreateTableAttribute(
1840 _fbb,
1841 table__);
1842}
1843
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001844struct MatMulAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1845 typedef MatMulAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001846 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1847 VT_A_ZP = 4,
James Wardea00fd02023-01-20 16:03:50 +00001848 VT_B_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001849 };
1850 int32_t a_zp() const {
1851 return GetField<int32_t>(VT_A_ZP, 0);
1852 }
1853 int32_t b_zp() const {
1854 return GetField<int32_t>(VT_B_ZP, 0);
1855 }
1856 bool Verify(flatbuffers::Verifier &verifier) const {
1857 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001858 VerifyField<int32_t>(verifier, VT_A_ZP, 4) &&
1859 VerifyField<int32_t>(verifier, VT_B_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001860 verifier.EndTable();
1861 }
1862};
1863
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001864struct MatMulAttributeBuilder {
1865 typedef MatMulAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001866 flatbuffers::FlatBufferBuilder &fbb_;
1867 flatbuffers::uoffset_t start_;
1868 void add_a_zp(int32_t a_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001869 fbb_.AddElement<int32_t>(MatMulAttribute::VT_A_ZP, a_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001870 }
1871 void add_b_zp(int32_t b_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001872 fbb_.AddElement<int32_t>(MatMulAttribute::VT_B_ZP, b_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001873 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001874 explicit MatMulAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001875 : fbb_(_fbb) {
1876 start_ = fbb_.StartTable();
1877 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001878 flatbuffers::Offset<MatMulAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001879 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001880 auto o = flatbuffers::Offset<MatMulAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001881 return o;
1882 }
1883};
1884
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001885inline flatbuffers::Offset<MatMulAttribute> CreateMatMulAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001886 flatbuffers::FlatBufferBuilder &_fbb,
1887 int32_t a_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +00001888 int32_t b_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001889 MatMulAttributeBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001890 builder_.add_b_zp(b_zp);
1891 builder_.add_a_zp(a_zp);
1892 return builder_.Finish();
1893}
1894
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001895struct FullyConnectedAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1896 typedef FullyConnectedAttributeBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001897 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001898 VT_INPUT_ZP = 4,
James Wardea00fd02023-01-20 16:03:50 +00001899 VT_WEIGHT_ZP = 6
Eric Kunze2364dcd2021-04-26 11:06:57 -07001900 };
1901 int32_t input_zp() const {
1902 return GetField<int32_t>(VT_INPUT_ZP, 0);
1903 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001904 int32_t weight_zp() const {
1905 return GetField<int32_t>(VT_WEIGHT_ZP, 0);
1906 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07001907 bool Verify(flatbuffers::Verifier &verifier) const {
1908 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001909 VerifyField<int32_t>(verifier, VT_INPUT_ZP, 4) &&
1910 VerifyField<int32_t>(verifier, VT_WEIGHT_ZP, 4) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07001911 verifier.EndTable();
1912 }
1913};
1914
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001915struct FullyConnectedAttributeBuilder {
1916 typedef FullyConnectedAttribute Table;
Eric Kunze2364dcd2021-04-26 11:06:57 -07001917 flatbuffers::FlatBufferBuilder &fbb_;
1918 flatbuffers::uoffset_t start_;
1919 void add_input_zp(int32_t input_zp) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001920 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_INPUT_ZP, input_zp, 0);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001921 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001922 void add_weight_zp(int32_t weight_zp) {
1923 fbb_.AddElement<int32_t>(FullyConnectedAttribute::VT_WEIGHT_ZP, weight_zp, 0);
1924 }
1925 explicit FullyConnectedAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
Eric Kunze2364dcd2021-04-26 11:06:57 -07001926 : fbb_(_fbb) {
1927 start_ = fbb_.StartTable();
1928 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001929 flatbuffers::Offset<FullyConnectedAttribute> Finish() {
Eric Kunze2364dcd2021-04-26 11:06:57 -07001930 const auto end = fbb_.EndTable(start_);
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001931 auto o = flatbuffers::Offset<FullyConnectedAttribute>(end);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001932 return o;
1933 }
1934};
1935
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001936inline flatbuffers::Offset<FullyConnectedAttribute> CreateFullyConnectedAttribute(
Eric Kunze2364dcd2021-04-26 11:06:57 -07001937 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001938 int32_t input_zp = 0,
James Wardea00fd02023-01-20 16:03:50 +00001939 int32_t weight_zp = 0) {
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001940 FullyConnectedAttributeBuilder builder_(_fbb);
1941 builder_.add_weight_zp(weight_zp);
Eric Kunze2364dcd2021-04-26 11:06:57 -07001942 builder_.add_input_zp(input_zp);
1943 return builder_.Finish();
1944}
1945
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001946struct NegateAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1947 typedef NegateAttributeBuilder Builder;
1948 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1949 VT_INPUT1_ZP = 4,
1950 VT_OUTPUT_ZP = 6
1951 };
1952 int32_t input1_zp() const {
1953 return GetField<int32_t>(VT_INPUT1_ZP, 0);
1954 }
1955 int32_t output_zp() const {
1956 return GetField<int32_t>(VT_OUTPUT_ZP, 0);
1957 }
1958 bool Verify(flatbuffers::Verifier &verifier) const {
1959 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00001960 VerifyField<int32_t>(verifier, VT_INPUT1_ZP, 4) &&
1961 VerifyField<int32_t>(verifier, VT_OUTPUT_ZP, 4) &&
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001962 verifier.EndTable();
1963 }
1964};
1965
1966struct NegateAttributeBuilder {
1967 typedef NegateAttribute Table;
1968 flatbuffers::FlatBufferBuilder &fbb_;
1969 flatbuffers::uoffset_t start_;
1970 void add_input1_zp(int32_t input1_zp) {
1971 fbb_.AddElement<int32_t>(NegateAttribute::VT_INPUT1_ZP, input1_zp, 0);
1972 }
1973 void add_output_zp(int32_t output_zp) {
1974 fbb_.AddElement<int32_t>(NegateAttribute::VT_OUTPUT_ZP, output_zp, 0);
1975 }
1976 explicit NegateAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1977 : fbb_(_fbb) {
1978 start_ = fbb_.StartTable();
1979 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00001980 flatbuffers::Offset<NegateAttribute> Finish() {
1981 const auto end = fbb_.EndTable(start_);
1982 auto o = flatbuffers::Offset<NegateAttribute>(end);
1983 return o;
1984 }
1985};
1986
1987inline flatbuffers::Offset<NegateAttribute> CreateNegateAttribute(
1988 flatbuffers::FlatBufferBuilder &_fbb,
1989 int32_t input1_zp = 0,
1990 int32_t output_zp = 0) {
1991 NegateAttributeBuilder builder_(_fbb);
1992 builder_.add_output_zp(output_zp);
1993 builder_.add_input1_zp(input1_zp);
1994 return builder_.Finish();
1995}
1996
Eric Kunze497ab5d2022-10-21 16:39:01 -07001997struct CustomAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1998 typedef CustomAttributeBuilder Builder;
1999 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2000 VT_IDENTIFIER = 4,
2001 VT_CONFIG = 6,
2002 VT_IMPLEMENTATION_ATTRS = 8
2003 };
2004 const flatbuffers::String *identifier() const {
2005 return GetPointer<const flatbuffers::String *>(VT_IDENTIFIER);
2006 }
2007 const flatbuffers::String *config() const {
2008 return GetPointer<const flatbuffers::String *>(VT_CONFIG);
2009 }
2010 const flatbuffers::Vector<uint8_t> *implementation_attrs() const {
2011 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_IMPLEMENTATION_ATTRS);
2012 }
2013 bool Verify(flatbuffers::Verifier &verifier) const {
2014 return VerifyTableStart(verifier) &&
2015 VerifyOffset(verifier, VT_IDENTIFIER) &&
2016 verifier.VerifyString(identifier()) &&
2017 VerifyOffset(verifier, VT_CONFIG) &&
2018 verifier.VerifyString(config()) &&
2019 VerifyOffset(verifier, VT_IMPLEMENTATION_ATTRS) &&
2020 verifier.VerifyVector(implementation_attrs()) &&
2021 verifier.EndTable();
2022 }
2023};
2024
2025struct CustomAttributeBuilder {
2026 typedef CustomAttribute Table;
2027 flatbuffers::FlatBufferBuilder &fbb_;
2028 flatbuffers::uoffset_t start_;
2029 void add_identifier(flatbuffers::Offset<flatbuffers::String> identifier) {
2030 fbb_.AddOffset(CustomAttribute::VT_IDENTIFIER, identifier);
2031 }
2032 void add_config(flatbuffers::Offset<flatbuffers::String> config) {
2033 fbb_.AddOffset(CustomAttribute::VT_CONFIG, config);
2034 }
2035 void add_implementation_attrs(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs) {
2036 fbb_.AddOffset(CustomAttribute::VT_IMPLEMENTATION_ATTRS, implementation_attrs);
2037 }
2038 explicit CustomAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2039 : fbb_(_fbb) {
2040 start_ = fbb_.StartTable();
2041 }
2042 flatbuffers::Offset<CustomAttribute> Finish() {
2043 const auto end = fbb_.EndTable(start_);
2044 auto o = flatbuffers::Offset<CustomAttribute>(end);
2045 return o;
2046 }
2047};
2048
2049inline flatbuffers::Offset<CustomAttribute> CreateCustomAttribute(
2050 flatbuffers::FlatBufferBuilder &_fbb,
2051 flatbuffers::Offset<flatbuffers::String> identifier = 0,
2052 flatbuffers::Offset<flatbuffers::String> config = 0,
2053 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> implementation_attrs = 0) {
2054 CustomAttributeBuilder builder_(_fbb);
2055 builder_.add_implementation_attrs(implementation_attrs);
2056 builder_.add_config(config);
2057 builder_.add_identifier(identifier);
2058 return builder_.Finish();
2059}
2060
2061inline flatbuffers::Offset<CustomAttribute> CreateCustomAttributeDirect(
2062 flatbuffers::FlatBufferBuilder &_fbb,
2063 const char *identifier = nullptr,
2064 const char *config = nullptr,
2065 const std::vector<uint8_t> *implementation_attrs = nullptr) {
2066 auto identifier__ = identifier ? _fbb.CreateString(identifier) : 0;
2067 auto config__ = config ? _fbb.CreateString(config) : 0;
2068 auto implementation_attrs__ = implementation_attrs ? _fbb.CreateVector<uint8_t>(*implementation_attrs) : 0;
2069 return tosa::CreateCustomAttribute(
2070 _fbb,
2071 identifier__,
2072 config__,
2073 implementation_attrs__);
2074}
2075
Luke Hutton5e268092023-01-12 22:20:53 +00002076struct FFTAttribute FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2077 typedef FFTAttributeBuilder Builder;
2078 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2079 VT_INVERSE = 4
2080 };
2081 bool inverse() const {
2082 return GetField<uint8_t>(VT_INVERSE, 0) != 0;
2083 }
2084 bool Verify(flatbuffers::Verifier &verifier) const {
2085 return VerifyTableStart(verifier) &&
2086 VerifyField<uint8_t>(verifier, VT_INVERSE, 1) &&
2087 verifier.EndTable();
2088 }
2089};
2090
2091struct FFTAttributeBuilder {
2092 typedef FFTAttribute Table;
2093 flatbuffers::FlatBufferBuilder &fbb_;
2094 flatbuffers::uoffset_t start_;
2095 void add_inverse(bool inverse) {
2096 fbb_.AddElement<uint8_t>(FFTAttribute::VT_INVERSE, static_cast<uint8_t>(inverse), 0);
2097 }
2098 explicit FFTAttributeBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2099 : fbb_(_fbb) {
2100 start_ = fbb_.StartTable();
2101 }
2102 flatbuffers::Offset<FFTAttribute> Finish() {
2103 const auto end = fbb_.EndTable(start_);
2104 auto o = flatbuffers::Offset<FFTAttribute>(end);
2105 return o;
2106 }
2107};
2108
2109inline flatbuffers::Offset<FFTAttribute> CreateFFTAttribute(
2110 flatbuffers::FlatBufferBuilder &_fbb,
2111 bool inverse = false) {
2112 FFTAttributeBuilder builder_(_fbb);
2113 builder_.add_inverse(inverse);
2114 return builder_.Finish();
2115}
2116
Eric Kunze2364dcd2021-04-26 11:06:57 -07002117struct Version FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2118 typedef VersionBuilder Builder;
2119 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2120 VT__MAJOR = 4,
2121 VT__MINOR = 6,
2122 VT__PATCH = 8,
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002123 VT__DRAFT = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002124 };
2125 int32_t _major() const {
Eric Kunzef08956b2023-05-18 01:13:41 +00002126 return GetField<int32_t>(VT__MAJOR, -1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002127 }
2128 int32_t _minor() const {
Eric Kunzef08956b2023-05-18 01:13:41 +00002129 return GetField<int32_t>(VT__MINOR, -1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002130 }
2131 int32_t _patch() const {
Eric Kunzef08956b2023-05-18 01:13:41 +00002132 return GetField<int32_t>(VT__PATCH, -1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002133 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002134 bool _draft() const {
Eric Kunzec3719ab2023-05-23 04:30:05 +00002135 return GetField<uint8_t>(VT__DRAFT, 1) != 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002136 }
2137 bool Verify(flatbuffers::Verifier &verifier) const {
2138 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002139 VerifyField<int32_t>(verifier, VT__MAJOR, 4) &&
2140 VerifyField<int32_t>(verifier, VT__MINOR, 4) &&
2141 VerifyField<int32_t>(verifier, VT__PATCH, 4) &&
2142 VerifyField<uint8_t>(verifier, VT__DRAFT, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002143 verifier.EndTable();
2144 }
2145};
2146
2147struct VersionBuilder {
2148 typedef Version Table;
2149 flatbuffers::FlatBufferBuilder &fbb_;
2150 flatbuffers::uoffset_t start_;
2151 void add__major(int32_t _major) {
Eric Kunzef08956b2023-05-18 01:13:41 +00002152 fbb_.AddElement<int32_t>(Version::VT__MAJOR, _major, -1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002153 }
2154 void add__minor(int32_t _minor) {
Eric Kunzef08956b2023-05-18 01:13:41 +00002155 fbb_.AddElement<int32_t>(Version::VT__MINOR, _minor, -1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002156 }
2157 void add__patch(int32_t _patch) {
Eric Kunzef08956b2023-05-18 01:13:41 +00002158 fbb_.AddElement<int32_t>(Version::VT__PATCH, _patch, -1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002159 }
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002160 void add__draft(bool _draft) {
Eric Kunzec3719ab2023-05-23 04:30:05 +00002161 fbb_.AddElement<uint8_t>(Version::VT__DRAFT, static_cast<uint8_t>(_draft), 1);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002162 }
2163 explicit VersionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2164 : fbb_(_fbb) {
2165 start_ = fbb_.StartTable();
2166 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002167 flatbuffers::Offset<Version> Finish() {
2168 const auto end = fbb_.EndTable(start_);
2169 auto o = flatbuffers::Offset<Version>(end);
2170 return o;
2171 }
2172};
2173
2174inline flatbuffers::Offset<Version> CreateVersion(
2175 flatbuffers::FlatBufferBuilder &_fbb,
Eric Kunzef08956b2023-05-18 01:13:41 +00002176 int32_t _major = -1,
2177 int32_t _minor = -1,
2178 int32_t _patch = -1,
Eric Kunzedce6ceb2023-03-16 18:44:26 +00002179 bool _draft = true) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002180 VersionBuilder builder_(_fbb);
2181 builder_.add__patch(_patch);
2182 builder_.add__minor(_minor);
2183 builder_.add__major(_major);
Kevin Chengb97cb1d2021-10-14 11:53:39 -07002184 builder_.add__draft(_draft);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002185 return builder_.Finish();
2186}
2187
2188struct TosaTensor FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2189 typedef TosaTensorBuilder Builder;
2190 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2191 VT_NAME = 4,
2192 VT_SHAPE = 6,
2193 VT_TYPE = 8,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002194 VT_DATA = 10
Eric Kunze2364dcd2021-04-26 11:06:57 -07002195 };
2196 const flatbuffers::String *name() const {
2197 return GetPointer<const flatbuffers::String *>(VT_NAME);
2198 }
2199 const flatbuffers::Vector<int32_t> *shape() const {
2200 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_SHAPE);
2201 }
2202 tosa::DType type() const {
2203 return static_cast<tosa::DType>(GetField<uint32_t>(VT_TYPE, 0));
2204 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002205 const flatbuffers::Vector<uint8_t> *data() const {
2206 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_DATA);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002207 }
2208 bool Verify(flatbuffers::Verifier &verifier) const {
2209 return VerifyTableStart(verifier) &&
2210 VerifyOffset(verifier, VT_NAME) &&
2211 verifier.VerifyString(name()) &&
2212 VerifyOffset(verifier, VT_SHAPE) &&
2213 verifier.VerifyVector(shape()) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002214 VerifyField<uint32_t>(verifier, VT_TYPE, 4) &&
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002215 VerifyOffset(verifier, VT_DATA) &&
2216 verifier.VerifyVector(data()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002217 verifier.EndTable();
2218 }
2219};
2220
2221struct TosaTensorBuilder {
2222 typedef TosaTensor Table;
2223 flatbuffers::FlatBufferBuilder &fbb_;
2224 flatbuffers::uoffset_t start_;
2225 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2226 fbb_.AddOffset(TosaTensor::VT_NAME, name);
2227 }
2228 void add_shape(flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape) {
2229 fbb_.AddOffset(TosaTensor::VT_SHAPE, shape);
2230 }
2231 void add_type(tosa::DType type) {
2232 fbb_.AddElement<uint32_t>(TosaTensor::VT_TYPE, static_cast<uint32_t>(type), 0);
2233 }
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002234 void add_data(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data) {
2235 fbb_.AddOffset(TosaTensor::VT_DATA, data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002236 }
2237 explicit TosaTensorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2238 : fbb_(_fbb) {
2239 start_ = fbb_.StartTable();
2240 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002241 flatbuffers::Offset<TosaTensor> Finish() {
2242 const auto end = fbb_.EndTable(start_);
2243 auto o = flatbuffers::Offset<TosaTensor>(end);
2244 return o;
2245 }
2246};
2247
2248inline flatbuffers::Offset<TosaTensor> CreateTosaTensor(
2249 flatbuffers::FlatBufferBuilder &_fbb,
2250 flatbuffers::Offset<flatbuffers::String> name = 0,
2251 flatbuffers::Offset<flatbuffers::Vector<int32_t>> shape = 0,
2252 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002253 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> data = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002254 TosaTensorBuilder builder_(_fbb);
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002255 builder_.add_data(data);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002256 builder_.add_type(type);
2257 builder_.add_shape(shape);
2258 builder_.add_name(name);
2259 return builder_.Finish();
2260}
2261
2262inline flatbuffers::Offset<TosaTensor> CreateTosaTensorDirect(
2263 flatbuffers::FlatBufferBuilder &_fbb,
2264 const char *name = nullptr,
2265 const std::vector<int32_t> *shape = nullptr,
2266 tosa::DType type = tosa::DType_UNKNOWN,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002267 const std::vector<uint8_t> *data = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002268 auto name__ = name ? _fbb.CreateString(name) : 0;
2269 auto shape__ = shape ? _fbb.CreateVector<int32_t>(*shape) : 0;
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002270 if (data) { _fbb.ForceVectorAlignment(data->size(), sizeof(uint8_t), 8); }
2271 auto data__ = data ? _fbb.CreateVector<uint8_t>(*data) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002272 return tosa::CreateTosaTensor(
2273 _fbb,
2274 name__,
2275 shape__,
2276 type,
Kevin Cheng3bb1bc12021-06-17 15:57:08 -07002277 data__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002278}
2279
2280struct TosaOperator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2281 typedef TosaOperatorBuilder Builder;
2282 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2283 VT_OP = 4,
2284 VT_ATTRIBUTE_TYPE = 6,
2285 VT_ATTRIBUTE = 8,
2286 VT_INPUTS = 10,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002287 VT_OUTPUTS = 12
Eric Kunze2364dcd2021-04-26 11:06:57 -07002288 };
2289 tosa::Op op() const {
2290 return static_cast<tosa::Op>(GetField<uint32_t>(VT_OP, 0));
2291 }
2292 tosa::Attribute attribute_type() const {
2293 return static_cast<tosa::Attribute>(GetField<uint8_t>(VT_ATTRIBUTE_TYPE, 0));
2294 }
2295 const void *attribute() const {
2296 return GetPointer<const void *>(VT_ATTRIBUTE);
2297 }
2298 template<typename T> const T *attribute_as() const;
Kevin Cheng79a41992021-08-31 16:04:40 -07002299 const tosa::PoolAttribute *attribute_as_PoolAttribute() const {
2300 return attribute_type() == tosa::Attribute_PoolAttribute ? static_cast<const tosa::PoolAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002301 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002302 const tosa::ConvAttribute *attribute_as_ConvAttribute() const {
2303 return attribute_type() == tosa::Attribute_ConvAttribute ? static_cast<const tosa::ConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002304 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002305 const tosa::TransposeConvAttribute *attribute_as_TransposeConvAttribute() const {
2306 return attribute_type() == tosa::Attribute_TransposeConvAttribute ? static_cast<const tosa::TransposeConvAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002307 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002308 const tosa::PadAttribute *attribute_as_PadAttribute() const {
2309 return attribute_type() == tosa::Attribute_PadAttribute ? static_cast<const tosa::PadAttribute *>(attribute()) : nullptr;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002310 }
2311 const tosa::AxisAttribute *attribute_as_AxisAttribute() const {
2312 return attribute_type() == tosa::Attribute_AxisAttribute ? static_cast<const tosa::AxisAttribute *>(attribute()) : nullptr;
2313 }
2314 const tosa::ReshapeAttribute *attribute_as_ReshapeAttribute() const {
2315 return attribute_type() == tosa::Attribute_ReshapeAttribute ? static_cast<const tosa::ReshapeAttribute *>(attribute()) : nullptr;
2316 }
2317 const tosa::SliceAttribute *attribute_as_SliceAttribute() const {
2318 return attribute_type() == tosa::Attribute_SliceAttribute ? static_cast<const tosa::SliceAttribute *>(attribute()) : nullptr;
2319 }
2320 const tosa::TileAttribute *attribute_as_TileAttribute() const {
2321 return attribute_type() == tosa::Attribute_TileAttribute ? static_cast<const tosa::TileAttribute *>(attribute()) : nullptr;
2322 }
2323 const tosa::ResizeAttribute *attribute_as_ResizeAttribute() const {
2324 return attribute_type() == tosa::Attribute_ResizeAttribute ? static_cast<const tosa::ResizeAttribute *>(attribute()) : nullptr;
2325 }
2326 const tosa::ClampAttribute *attribute_as_ClampAttribute() const {
2327 return attribute_type() == tosa::Attribute_ClampAttribute ? static_cast<const tosa::ClampAttribute *>(attribute()) : nullptr;
2328 }
2329 const tosa::RescaleAttribute *attribute_as_RescaleAttribute() const {
2330 return attribute_type() == tosa::Attribute_RescaleAttribute ? static_cast<const tosa::RescaleAttribute *>(attribute()) : nullptr;
2331 }
2332 const tosa::MulAttribute *attribute_as_MulAttribute() const {
2333 return attribute_type() == tosa::Attribute_MulAttribute ? static_cast<const tosa::MulAttribute *>(attribute()) : nullptr;
2334 }
2335 const tosa::ArithmeticRightShiftAttribute *attribute_as_ArithmeticRightShiftAttribute() const {
2336 return attribute_type() == tosa::Attribute_ArithmeticRightShiftAttribute ? static_cast<const tosa::ArithmeticRightShiftAttribute *>(attribute()) : nullptr;
2337 }
2338 const tosa::CondIfAttribute *attribute_as_CondIfAttribute() const {
2339 return attribute_type() == tosa::Attribute_CondIfAttribute ? static_cast<const tosa::CondIfAttribute *>(attribute()) : nullptr;
2340 }
2341 const tosa::WhileLoopAttribute *attribute_as_WhileLoopAttribute() const {
2342 return attribute_type() == tosa::Attribute_WhileLoopAttribute ? static_cast<const tosa::WhileLoopAttribute *>(attribute()) : nullptr;
2343 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002344 const tosa::TransposeAttribute *attribute_as_TransposeAttribute() const {
2345 return attribute_type() == tosa::Attribute_TransposeAttribute ? static_cast<const tosa::TransposeAttribute *>(attribute()) : nullptr;
2346 }
2347 const tosa::TableAttribute *attribute_as_TableAttribute() const {
2348 return attribute_type() == tosa::Attribute_TableAttribute ? static_cast<const tosa::TableAttribute *>(attribute()) : nullptr;
2349 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002350 const tosa::MatMulAttribute *attribute_as_MatMulAttribute() const {
2351 return attribute_type() == tosa::Attribute_MatMulAttribute ? static_cast<const tosa::MatMulAttribute *>(attribute()) : nullptr;
2352 }
2353 const tosa::FullyConnectedAttribute *attribute_as_FullyConnectedAttribute() const {
2354 return attribute_type() == tosa::Attribute_FullyConnectedAttribute ? static_cast<const tosa::FullyConnectedAttribute *>(attribute()) : nullptr;
2355 }
2356 const tosa::NegateAttribute *attribute_as_NegateAttribute() const {
2357 return attribute_type() == tosa::Attribute_NegateAttribute ? static_cast<const tosa::NegateAttribute *>(attribute()) : nullptr;
2358 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002359 const tosa::CustomAttribute *attribute_as_CustomAttribute() const {
2360 return attribute_type() == tosa::Attribute_CustomAttribute ? static_cast<const tosa::CustomAttribute *>(attribute()) : nullptr;
2361 }
Luke Hutton5e268092023-01-12 22:20:53 +00002362 const tosa::FFTAttribute *attribute_as_FFTAttribute() const {
2363 return attribute_type() == tosa::Attribute_FFTAttribute ? static_cast<const tosa::FFTAttribute *>(attribute()) : nullptr;
2364 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002365 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2366 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2367 }
2368 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2369 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2370 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002371 bool Verify(flatbuffers::Verifier &verifier) const {
2372 return VerifyTableStart(verifier) &&
Eric Kunze4381b3d2022-08-22 18:15:41 +00002373 VerifyField<uint32_t>(verifier, VT_OP, 4) &&
2374 VerifyField<uint8_t>(verifier, VT_ATTRIBUTE_TYPE, 1) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002375 VerifyOffset(verifier, VT_ATTRIBUTE) &&
2376 VerifyAttribute(verifier, attribute(), attribute_type()) &&
2377 VerifyOffset(verifier, VT_INPUTS) &&
2378 verifier.VerifyVector(inputs()) &&
2379 verifier.VerifyVectorOfStrings(inputs()) &&
2380 VerifyOffset(verifier, VT_OUTPUTS) &&
2381 verifier.VerifyVector(outputs()) &&
2382 verifier.VerifyVectorOfStrings(outputs()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002383 verifier.EndTable();
2384 }
2385};
2386
Kevin Cheng79a41992021-08-31 16:04:40 -07002387template<> inline const tosa::PoolAttribute *TosaOperator::attribute_as<tosa::PoolAttribute>() const {
2388 return attribute_as_PoolAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002389}
2390
Kevin Cheng79a41992021-08-31 16:04:40 -07002391template<> inline const tosa::ConvAttribute *TosaOperator::attribute_as<tosa::ConvAttribute>() const {
2392 return attribute_as_ConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002393}
2394
Kevin Cheng79a41992021-08-31 16:04:40 -07002395template<> inline const tosa::TransposeConvAttribute *TosaOperator::attribute_as<tosa::TransposeConvAttribute>() const {
2396 return attribute_as_TransposeConvAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002397}
2398
Kevin Cheng38d214c2021-10-15 15:49:19 -07002399template<> inline const tosa::PadAttribute *TosaOperator::attribute_as<tosa::PadAttribute>() const {
2400 return attribute_as_PadAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002401}
2402
2403template<> inline const tosa::AxisAttribute *TosaOperator::attribute_as<tosa::AxisAttribute>() const {
2404 return attribute_as_AxisAttribute();
2405}
2406
2407template<> inline const tosa::ReshapeAttribute *TosaOperator::attribute_as<tosa::ReshapeAttribute>() const {
2408 return attribute_as_ReshapeAttribute();
2409}
2410
2411template<> inline const tosa::SliceAttribute *TosaOperator::attribute_as<tosa::SliceAttribute>() const {
2412 return attribute_as_SliceAttribute();
2413}
2414
2415template<> inline const tosa::TileAttribute *TosaOperator::attribute_as<tosa::TileAttribute>() const {
2416 return attribute_as_TileAttribute();
2417}
2418
2419template<> inline const tosa::ResizeAttribute *TosaOperator::attribute_as<tosa::ResizeAttribute>() const {
2420 return attribute_as_ResizeAttribute();
2421}
2422
2423template<> inline const tosa::ClampAttribute *TosaOperator::attribute_as<tosa::ClampAttribute>() const {
2424 return attribute_as_ClampAttribute();
2425}
2426
2427template<> inline const tosa::RescaleAttribute *TosaOperator::attribute_as<tosa::RescaleAttribute>() const {
2428 return attribute_as_RescaleAttribute();
2429}
2430
2431template<> inline const tosa::MulAttribute *TosaOperator::attribute_as<tosa::MulAttribute>() const {
2432 return attribute_as_MulAttribute();
2433}
2434
2435template<> inline const tosa::ArithmeticRightShiftAttribute *TosaOperator::attribute_as<tosa::ArithmeticRightShiftAttribute>() const {
2436 return attribute_as_ArithmeticRightShiftAttribute();
2437}
2438
2439template<> inline const tosa::CondIfAttribute *TosaOperator::attribute_as<tosa::CondIfAttribute>() const {
2440 return attribute_as_CondIfAttribute();
2441}
2442
2443template<> inline const tosa::WhileLoopAttribute *TosaOperator::attribute_as<tosa::WhileLoopAttribute>() const {
2444 return attribute_as_WhileLoopAttribute();
2445}
2446
Kevin Cheng38d214c2021-10-15 15:49:19 -07002447template<> inline const tosa::TransposeAttribute *TosaOperator::attribute_as<tosa::TransposeAttribute>() const {
2448 return attribute_as_TransposeAttribute();
2449}
2450
2451template<> inline const tosa::TableAttribute *TosaOperator::attribute_as<tosa::TableAttribute>() const {
2452 return attribute_as_TableAttribute();
2453}
2454
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002455template<> inline const tosa::MatMulAttribute *TosaOperator::attribute_as<tosa::MatMulAttribute>() const {
2456 return attribute_as_MatMulAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002457}
2458
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002459template<> inline const tosa::FullyConnectedAttribute *TosaOperator::attribute_as<tosa::FullyConnectedAttribute>() const {
2460 return attribute_as_FullyConnectedAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002461}
2462
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002463template<> inline const tosa::NegateAttribute *TosaOperator::attribute_as<tosa::NegateAttribute>() const {
2464 return attribute_as_NegateAttribute();
Eric Kunze2364dcd2021-04-26 11:06:57 -07002465}
2466
Eric Kunze497ab5d2022-10-21 16:39:01 -07002467template<> inline const tosa::CustomAttribute *TosaOperator::attribute_as<tosa::CustomAttribute>() const {
2468 return attribute_as_CustomAttribute();
2469}
2470
Luke Hutton5e268092023-01-12 22:20:53 +00002471template<> inline const tosa::FFTAttribute *TosaOperator::attribute_as<tosa::FFTAttribute>() const {
2472 return attribute_as_FFTAttribute();
2473}
2474
Eric Kunze2364dcd2021-04-26 11:06:57 -07002475struct TosaOperatorBuilder {
2476 typedef TosaOperator Table;
2477 flatbuffers::FlatBufferBuilder &fbb_;
2478 flatbuffers::uoffset_t start_;
2479 void add_op(tosa::Op op) {
2480 fbb_.AddElement<uint32_t>(TosaOperator::VT_OP, static_cast<uint32_t>(op), 0);
2481 }
2482 void add_attribute_type(tosa::Attribute attribute_type) {
2483 fbb_.AddElement<uint8_t>(TosaOperator::VT_ATTRIBUTE_TYPE, static_cast<uint8_t>(attribute_type), 0);
2484 }
2485 void add_attribute(flatbuffers::Offset<void> attribute) {
2486 fbb_.AddOffset(TosaOperator::VT_ATTRIBUTE, attribute);
2487 }
2488 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2489 fbb_.AddOffset(TosaOperator::VT_INPUTS, inputs);
2490 }
2491 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2492 fbb_.AddOffset(TosaOperator::VT_OUTPUTS, outputs);
2493 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002494 explicit TosaOperatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2495 : fbb_(_fbb) {
2496 start_ = fbb_.StartTable();
2497 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002498 flatbuffers::Offset<TosaOperator> Finish() {
2499 const auto end = fbb_.EndTable(start_);
2500 auto o = flatbuffers::Offset<TosaOperator>(end);
2501 return o;
2502 }
2503};
2504
2505inline flatbuffers::Offset<TosaOperator> CreateTosaOperator(
2506 flatbuffers::FlatBufferBuilder &_fbb,
2507 tosa::Op op = tosa::Op_UNKNOWN,
2508 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2509 flatbuffers::Offset<void> attribute = 0,
2510 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002511 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002512 TosaOperatorBuilder builder_(_fbb);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002513 builder_.add_outputs(outputs);
2514 builder_.add_inputs(inputs);
2515 builder_.add_attribute(attribute);
2516 builder_.add_op(op);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002517 builder_.add_attribute_type(attribute_type);
2518 return builder_.Finish();
2519}
2520
2521inline flatbuffers::Offset<TosaOperator> CreateTosaOperatorDirect(
2522 flatbuffers::FlatBufferBuilder &_fbb,
2523 tosa::Op op = tosa::Op_UNKNOWN,
2524 tosa::Attribute attribute_type = tosa::Attribute_NONE,
2525 flatbuffers::Offset<void> attribute = 0,
2526 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002527 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002528 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2529 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2530 return tosa::CreateTosaOperator(
2531 _fbb,
2532 op,
2533 attribute_type,
2534 attribute,
2535 inputs__,
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002536 outputs__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002537}
2538
2539struct TosaBasicBlock FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2540 typedef TosaBasicBlockBuilder Builder;
2541 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2542 VT_NAME = 4,
2543 VT_OPERATORS = 6,
2544 VT_TENSORS = 8,
2545 VT_INPUTS = 10,
2546 VT_OUTPUTS = 12
2547 };
2548 const flatbuffers::String *name() const {
2549 return GetPointer<const flatbuffers::String *>(VT_NAME);
2550 }
2551 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *operators() const {
2552 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>> *>(VT_OPERATORS);
2553 }
2554 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors() const {
2555 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>> *>(VT_TENSORS);
2556 }
2557 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *inputs() const {
2558 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_INPUTS);
2559 }
2560 const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *outputs() const {
2561 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_OUTPUTS);
2562 }
2563 bool Verify(flatbuffers::Verifier &verifier) const {
2564 return VerifyTableStart(verifier) &&
2565 VerifyOffset(verifier, VT_NAME) &&
2566 verifier.VerifyString(name()) &&
2567 VerifyOffset(verifier, VT_OPERATORS) &&
2568 verifier.VerifyVector(operators()) &&
2569 verifier.VerifyVectorOfTables(operators()) &&
2570 VerifyOffset(verifier, VT_TENSORS) &&
2571 verifier.VerifyVector(tensors()) &&
2572 verifier.VerifyVectorOfTables(tensors()) &&
2573 VerifyOffset(verifier, VT_INPUTS) &&
2574 verifier.VerifyVector(inputs()) &&
2575 verifier.VerifyVectorOfStrings(inputs()) &&
2576 VerifyOffset(verifier, VT_OUTPUTS) &&
2577 verifier.VerifyVector(outputs()) &&
2578 verifier.VerifyVectorOfStrings(outputs()) &&
2579 verifier.EndTable();
2580 }
2581};
2582
2583struct TosaBasicBlockBuilder {
2584 typedef TosaBasicBlock Table;
2585 flatbuffers::FlatBufferBuilder &fbb_;
2586 flatbuffers::uoffset_t start_;
2587 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2588 fbb_.AddOffset(TosaBasicBlock::VT_NAME, name);
2589 }
2590 void add_operators(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators) {
2591 fbb_.AddOffset(TosaBasicBlock::VT_OPERATORS, operators);
2592 }
2593 void add_tensors(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors) {
2594 fbb_.AddOffset(TosaBasicBlock::VT_TENSORS, tensors);
2595 }
2596 void add_inputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs) {
2597 fbb_.AddOffset(TosaBasicBlock::VT_INPUTS, inputs);
2598 }
2599 void add_outputs(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs) {
2600 fbb_.AddOffset(TosaBasicBlock::VT_OUTPUTS, outputs);
2601 }
2602 explicit TosaBasicBlockBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2603 : fbb_(_fbb) {
2604 start_ = fbb_.StartTable();
2605 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002606 flatbuffers::Offset<TosaBasicBlock> Finish() {
2607 const auto end = fbb_.EndTable(start_);
2608 auto o = flatbuffers::Offset<TosaBasicBlock>(end);
2609 return o;
2610 }
2611};
2612
2613inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlock(
2614 flatbuffers::FlatBufferBuilder &_fbb,
2615 flatbuffers::Offset<flatbuffers::String> name = 0,
2616 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaOperator>>> operators = 0,
2617 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaTensor>>> tensors = 0,
2618 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> inputs = 0,
2619 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> outputs = 0) {
2620 TosaBasicBlockBuilder builder_(_fbb);
2621 builder_.add_outputs(outputs);
2622 builder_.add_inputs(inputs);
2623 builder_.add_tensors(tensors);
2624 builder_.add_operators(operators);
2625 builder_.add_name(name);
2626 return builder_.Finish();
2627}
2628
2629inline flatbuffers::Offset<TosaBasicBlock> CreateTosaBasicBlockDirect(
2630 flatbuffers::FlatBufferBuilder &_fbb,
2631 const char *name = nullptr,
2632 const std::vector<flatbuffers::Offset<tosa::TosaOperator>> *operators = nullptr,
2633 const std::vector<flatbuffers::Offset<tosa::TosaTensor>> *tensors = nullptr,
2634 const std::vector<flatbuffers::Offset<flatbuffers::String>> *inputs = nullptr,
2635 const std::vector<flatbuffers::Offset<flatbuffers::String>> *outputs = nullptr) {
2636 auto name__ = name ? _fbb.CreateString(name) : 0;
2637 auto operators__ = operators ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaOperator>>(*operators) : 0;
2638 auto tensors__ = tensors ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaTensor>>(*tensors) : 0;
2639 auto inputs__ = inputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*inputs) : 0;
2640 auto outputs__ = outputs ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*outputs) : 0;
2641 return tosa::CreateTosaBasicBlock(
2642 _fbb,
2643 name__,
2644 operators__,
2645 tensors__,
2646 inputs__,
2647 outputs__);
2648}
2649
Jerry Ge13c78a62022-10-04 20:32:39 -07002650struct TosaRegion FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2651 typedef TosaRegionBuilder Builder;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002652 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
Jerry Ge13c78a62022-10-04 20:32:39 -07002653 VT_NAME = 4,
Eric Kunze2364dcd2021-04-26 11:06:57 -07002654 VT_BLOCKS = 6
2655 };
Jerry Ge13c78a62022-10-04 20:32:39 -07002656 const flatbuffers::String *name() const {
2657 return GetPointer<const flatbuffers::String *>(VT_NAME);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002658 }
2659 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks() const {
2660 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *>(VT_BLOCKS);
2661 }
2662 bool Verify(flatbuffers::Verifier &verifier) const {
2663 return VerifyTableStart(verifier) &&
Jerry Ge13c78a62022-10-04 20:32:39 -07002664 VerifyOffset(verifier, VT_NAME) &&
2665 verifier.VerifyString(name()) &&
Eric Kunze2364dcd2021-04-26 11:06:57 -07002666 VerifyOffset(verifier, VT_BLOCKS) &&
2667 verifier.VerifyVector(blocks()) &&
2668 verifier.VerifyVectorOfTables(blocks()) &&
2669 verifier.EndTable();
2670 }
2671};
2672
Jerry Ge13c78a62022-10-04 20:32:39 -07002673struct TosaRegionBuilder {
2674 typedef TosaRegion Table;
2675 flatbuffers::FlatBufferBuilder &fbb_;
2676 flatbuffers::uoffset_t start_;
2677 void add_name(flatbuffers::Offset<flatbuffers::String> name) {
2678 fbb_.AddOffset(TosaRegion::VT_NAME, name);
2679 }
2680 void add_blocks(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks) {
2681 fbb_.AddOffset(TosaRegion::VT_BLOCKS, blocks);
2682 }
2683 explicit TosaRegionBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2684 : fbb_(_fbb) {
2685 start_ = fbb_.StartTable();
2686 }
2687 flatbuffers::Offset<TosaRegion> Finish() {
2688 const auto end = fbb_.EndTable(start_);
2689 auto o = flatbuffers::Offset<TosaRegion>(end);
2690 return o;
2691 }
2692};
2693
2694inline flatbuffers::Offset<TosaRegion> CreateTosaRegion(
2695 flatbuffers::FlatBufferBuilder &_fbb,
2696 flatbuffers::Offset<flatbuffers::String> name = 0,
2697 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaBasicBlock>>> blocks = 0) {
2698 TosaRegionBuilder builder_(_fbb);
2699 builder_.add_blocks(blocks);
2700 builder_.add_name(name);
2701 return builder_.Finish();
2702}
2703
2704inline flatbuffers::Offset<TosaRegion> CreateTosaRegionDirect(
2705 flatbuffers::FlatBufferBuilder &_fbb,
2706 const char *name = nullptr,
2707 const std::vector<flatbuffers::Offset<tosa::TosaBasicBlock>> *blocks = nullptr) {
2708 auto name__ = name ? _fbb.CreateString(name) : 0;
2709 auto blocks__ = blocks ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaBasicBlock>>(*blocks) : 0;
2710 return tosa::CreateTosaRegion(
2711 _fbb,
2712 name__,
2713 blocks__);
2714}
2715
2716struct TosaGraph FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
2717 typedef TosaGraphBuilder Builder;
2718 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
2719 VT_VERSION = 4,
2720 VT_REGIONS = 6
2721 };
2722 const tosa::Version *version() const {
2723 return GetPointer<const tosa::Version *>(VT_VERSION);
2724 }
2725 const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *regions() const {
2726 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>> *>(VT_REGIONS);
2727 }
2728 bool Verify(flatbuffers::Verifier &verifier) const {
2729 return VerifyTableStart(verifier) &&
Eric Kunzef08956b2023-05-18 01:13:41 +00002730 VerifyOffsetRequired(verifier, VT_VERSION) &&
Jerry Ge13c78a62022-10-04 20:32:39 -07002731 verifier.VerifyTable(version()) &&
2732 VerifyOffset(verifier, VT_REGIONS) &&
2733 verifier.VerifyVector(regions()) &&
2734 verifier.VerifyVectorOfTables(regions()) &&
2735 verifier.EndTable();
2736 }
2737};
2738
Eric Kunze2364dcd2021-04-26 11:06:57 -07002739struct TosaGraphBuilder {
2740 typedef TosaGraph Table;
2741 flatbuffers::FlatBufferBuilder &fbb_;
2742 flatbuffers::uoffset_t start_;
2743 void add_version(flatbuffers::Offset<tosa::Version> version) {
2744 fbb_.AddOffset(TosaGraph::VT_VERSION, version);
2745 }
Jerry Ge13c78a62022-10-04 20:32:39 -07002746 void add_regions(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions) {
2747 fbb_.AddOffset(TosaGraph::VT_REGIONS, regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002748 }
2749 explicit TosaGraphBuilder(flatbuffers::FlatBufferBuilder &_fbb)
2750 : fbb_(_fbb) {
2751 start_ = fbb_.StartTable();
2752 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002753 flatbuffers::Offset<TosaGraph> Finish() {
2754 const auto end = fbb_.EndTable(start_);
2755 auto o = flatbuffers::Offset<TosaGraph>(end);
Eric Kunzef08956b2023-05-18 01:13:41 +00002756 fbb_.Required(o, TosaGraph::VT_VERSION);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002757 return o;
2758 }
2759};
2760
2761inline flatbuffers::Offset<TosaGraph> CreateTosaGraph(
2762 flatbuffers::FlatBufferBuilder &_fbb,
2763 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002764 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<tosa::TosaRegion>>> regions = 0) {
Eric Kunze2364dcd2021-04-26 11:06:57 -07002765 TosaGraphBuilder builder_(_fbb);
Jerry Ge13c78a62022-10-04 20:32:39 -07002766 builder_.add_regions(regions);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002767 builder_.add_version(version);
2768 return builder_.Finish();
2769}
2770
2771inline flatbuffers::Offset<TosaGraph> CreateTosaGraphDirect(
2772 flatbuffers::FlatBufferBuilder &_fbb,
2773 flatbuffers::Offset<tosa::Version> version = 0,
Jerry Ge13c78a62022-10-04 20:32:39 -07002774 const std::vector<flatbuffers::Offset<tosa::TosaRegion>> *regions = nullptr) {
2775 auto regions__ = regions ? _fbb.CreateVector<flatbuffers::Offset<tosa::TosaRegion>>(*regions) : 0;
Eric Kunze2364dcd2021-04-26 11:06:57 -07002776 return tosa::CreateTosaGraph(
2777 _fbb,
2778 version,
Jerry Ge13c78a62022-10-04 20:32:39 -07002779 regions__);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002780}
2781
2782inline bool VerifyAttribute(flatbuffers::Verifier &verifier, const void *obj, Attribute type) {
2783 switch (type) {
2784 case Attribute_NONE: {
2785 return true;
2786 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002787 case Attribute_PoolAttribute: {
2788 auto ptr = reinterpret_cast<const tosa::PoolAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002789 return verifier.VerifyTable(ptr);
2790 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002791 case Attribute_ConvAttribute: {
2792 auto ptr = reinterpret_cast<const tosa::ConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002793 return verifier.VerifyTable(ptr);
2794 }
Kevin Cheng79a41992021-08-31 16:04:40 -07002795 case Attribute_TransposeConvAttribute: {
2796 auto ptr = reinterpret_cast<const tosa::TransposeConvAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002797 return verifier.VerifyTable(ptr);
2798 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002799 case Attribute_PadAttribute: {
2800 auto ptr = reinterpret_cast<const tosa::PadAttribute *>(obj);
Eric Kunze2364dcd2021-04-26 11:06:57 -07002801 return verifier.VerifyTable(ptr);
2802 }
2803 case Attribute_AxisAttribute: {
2804 auto ptr = reinterpret_cast<const tosa::AxisAttribute *>(obj);
2805 return verifier.VerifyTable(ptr);
2806 }
2807 case Attribute_ReshapeAttribute: {
2808 auto ptr = reinterpret_cast<const tosa::ReshapeAttribute *>(obj);
2809 return verifier.VerifyTable(ptr);
2810 }
2811 case Attribute_SliceAttribute: {
2812 auto ptr = reinterpret_cast<const tosa::SliceAttribute *>(obj);
2813 return verifier.VerifyTable(ptr);
2814 }
2815 case Attribute_TileAttribute: {
2816 auto ptr = reinterpret_cast<const tosa::TileAttribute *>(obj);
2817 return verifier.VerifyTable(ptr);
2818 }
2819 case Attribute_ResizeAttribute: {
2820 auto ptr = reinterpret_cast<const tosa::ResizeAttribute *>(obj);
2821 return verifier.VerifyTable(ptr);
2822 }
2823 case Attribute_ClampAttribute: {
2824 auto ptr = reinterpret_cast<const tosa::ClampAttribute *>(obj);
2825 return verifier.VerifyTable(ptr);
2826 }
2827 case Attribute_RescaleAttribute: {
2828 auto ptr = reinterpret_cast<const tosa::RescaleAttribute *>(obj);
2829 return verifier.VerifyTable(ptr);
2830 }
2831 case Attribute_MulAttribute: {
2832 auto ptr = reinterpret_cast<const tosa::MulAttribute *>(obj);
2833 return verifier.VerifyTable(ptr);
2834 }
2835 case Attribute_ArithmeticRightShiftAttribute: {
2836 auto ptr = reinterpret_cast<const tosa::ArithmeticRightShiftAttribute *>(obj);
2837 return verifier.VerifyTable(ptr);
2838 }
2839 case Attribute_CondIfAttribute: {
2840 auto ptr = reinterpret_cast<const tosa::CondIfAttribute *>(obj);
2841 return verifier.VerifyTable(ptr);
2842 }
2843 case Attribute_WhileLoopAttribute: {
2844 auto ptr = reinterpret_cast<const tosa::WhileLoopAttribute *>(obj);
2845 return verifier.VerifyTable(ptr);
2846 }
Kevin Cheng38d214c2021-10-15 15:49:19 -07002847 case Attribute_TransposeAttribute: {
2848 auto ptr = reinterpret_cast<const tosa::TransposeAttribute *>(obj);
2849 return verifier.VerifyTable(ptr);
2850 }
2851 case Attribute_TableAttribute: {
2852 auto ptr = reinterpret_cast<const tosa::TableAttribute *>(obj);
2853 return verifier.VerifyTable(ptr);
2854 }
Eric Kunzebdcc3fe2022-06-07 05:17:37 +00002855 case Attribute_MatMulAttribute: {
2856 auto ptr = reinterpret_cast<const tosa::MatMulAttribute *>(obj);
2857 return verifier.VerifyTable(ptr);
2858 }
2859 case Attribute_FullyConnectedAttribute: {
2860 auto ptr = reinterpret_cast<const tosa::FullyConnectedAttribute *>(obj);
2861 return verifier.VerifyTable(ptr);
2862 }
2863 case Attribute_NegateAttribute: {
2864 auto ptr = reinterpret_cast<const tosa::NegateAttribute *>(obj);
2865 return verifier.VerifyTable(ptr);
2866 }
Eric Kunze497ab5d2022-10-21 16:39:01 -07002867 case Attribute_CustomAttribute: {
2868 auto ptr = reinterpret_cast<const tosa::CustomAttribute *>(obj);
2869 return verifier.VerifyTable(ptr);
2870 }
Luke Hutton5e268092023-01-12 22:20:53 +00002871 case Attribute_FFTAttribute: {
2872 auto ptr = reinterpret_cast<const tosa::FFTAttribute *>(obj);
2873 return verifier.VerifyTable(ptr);
2874 }
Eric Kunze2364dcd2021-04-26 11:06:57 -07002875 default: return true;
2876 }
2877}
2878
2879inline bool VerifyAttributeVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) {
2880 if (!values || !types) return !values && !types;
2881 if (values->size() != types->size()) return false;
2882 for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {
2883 if (!VerifyAttribute(
2884 verifier, values->Get(i), types->GetEnum<Attribute>(i))) {
2885 return false;
2886 }
2887 }
2888 return true;
2889}
2890
Eric Kunze2364dcd2021-04-26 11:06:57 -07002891inline const tosa::TosaGraph *GetTosaGraph(const void *buf) {
2892 return flatbuffers::GetRoot<tosa::TosaGraph>(buf);
2893}
2894
2895inline const tosa::TosaGraph *GetSizePrefixedTosaGraph(const void *buf) {
2896 return flatbuffers::GetSizePrefixedRoot<tosa::TosaGraph>(buf);
2897}
2898
2899inline const char *TosaGraphIdentifier() {
2900 return "TOSA";
2901}
2902
2903inline bool TosaGraphBufferHasIdentifier(const void *buf) {
2904 return flatbuffers::BufferHasIdentifier(
2905 buf, TosaGraphIdentifier());
2906}
2907
Eric Kunze4381b3d2022-08-22 18:15:41 +00002908inline bool SizePrefixedTosaGraphBufferHasIdentifier(const void *buf) {
2909 return flatbuffers::BufferHasIdentifier(
2910 buf, TosaGraphIdentifier(), true);
2911}
2912
Eric Kunze2364dcd2021-04-26 11:06:57 -07002913inline bool VerifyTosaGraphBuffer(
2914 flatbuffers::Verifier &verifier) {
2915 return verifier.VerifyBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2916}
2917
2918inline bool VerifySizePrefixedTosaGraphBuffer(
2919 flatbuffers::Verifier &verifier) {
2920 return verifier.VerifySizePrefixedBuffer<tosa::TosaGraph>(TosaGraphIdentifier());
2921}
2922
2923inline const char *TosaGraphExtension() {
2924 return "tosa";
2925}
2926
2927inline void FinishTosaGraphBuffer(
2928 flatbuffers::FlatBufferBuilder &fbb,
2929 flatbuffers::Offset<tosa::TosaGraph> root) {
2930 fbb.Finish(root, TosaGraphIdentifier());
2931}
2932
2933inline void FinishSizePrefixedTosaGraphBuffer(
2934 flatbuffers::FlatBufferBuilder &fbb,
2935 flatbuffers::Offset<tosa::TosaGraph> root) {
2936 fbb.FinishSizePrefixed(root, TosaGraphIdentifier());
2937}
2938
2939} // namespace tosa
2940
2941#endif // FLATBUFFERS_GENERATED_TOSA_TOSA_H_