# HELIA operator inventory

Source: v1.21.2, commit 70611e608778a432566e30965e8b4bc7ea75aa36.

Types below describe inputs. Support depends on shapes, output and weight types, backend and build settings. A listed type can use optimized, reference or storage-only execution.

## ABS

Family: Arithmetic

Input types: int8, int16, float32

Reference implementation in the HELIA adapter source. Quantized scaling requirements apply.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## ADD

Family: Arithmetic

Input types: int8, int16, float32, float16, int32

Float identical-shape inputs support arbitrary rank. Optimized broadcasting supports rank <= 4; higher-rank FP32 uses Reference and FP16 is rejected. int32 follows the adapter reference path.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/add.cc)

## ARG_MAX

Family: Reduction

Input types: int8, float32, float16

FP16 requires CORE >= 7.35.0, rank 1..4, INT32 axis/output and positive reduced extent. FP32/int8 use Reference.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/arg_min_max.cc)

## ARG_MIN

Family: Reduction

Input types: int8, float32, float16

FP16 requires CORE >= 7.35.0, rank 1..4, INT32 axis/output and positive reduced extent. FP32/int8 use Reference.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/arg_min_max.cc)

## AVERAGE_POOL_2D

Family: Compute

Input types: int8, int16, float32, float16

Four-dimensional tensors; check filter/stride/padding and output dimensions. Kernel failure is returned to the application.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/pooling.cc)

## BATCH_MATMUL

Family: Compute

Input types: int8, int16, float32, float16

Check batch broadcasting, adjoint flags and quantized weight/activation combinations against the adapter.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/batch_matmul.cc)

## CONCATENATION

Family: Data movement

Input types: int8, int16, float32, float16, int32, int64, bool

Optimized float paths support rank <= 4; higher-rank float inputs use Reference. Input/output type and quantization must agree.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/concatenation.cc)

## CONV_2D

Family: Compute

Input types: int8, int16, float32, float16

Quantized weight/bias combinations are constrained. int4 weights use int8 activations. Float grouped convolution uses Reference for FP32 and is rejected for FP16.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/conv.cc)

## COS

Family: Arithmetic

Input types: float32

Reference implementation in the HELIA adapter source; Float32 input/output.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## DEPTHWISE_CONV_2D

Family: Compute

Input types: int8, int16, float32, float16

Quantized weight/bias combinations and depth multiplier are constrained. int4 is a weight type with int8 activations; it is not a general activation type.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/depthwise_conv.cc)

## DEQUANTIZE

Family: Quantization

Input types: int8, int16, uint8, float16

Output is FP32. FP16 means weight-storage widening, not FP16 computation; it works without ARM_NN_ENABLE_F16.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/dequantize.cc)

## EQUAL

Family: Comparison

Input types: bool, float32, int8, int16, int32, int64

Boolean output. Supported input types depend on the comparison; input shapes and broadcast rules must match.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/comparisons.cc)

## FILL

Family: Data movement

Input types: int8, int16, float32, float16, int32, int64

Constant dimensions and scalar fill value. Float APIs require CORE >= 7.33.0 and matching enabled feature.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/fill.cc)

## FULLY_CONNECTED

Family: Compute

Input types: int8, int16, float32, float16

Quantized activation/weight/bias types must match a supported combination; includes int4 weights with int8 activations. Float paths require matching CORE features.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/fully_connected.cc)

## GATHER

Family: Data movement

Input types: int8, int16, float32, float16

CORE >= 7.34.0. Native rank <= 4. Scalar indices use float native paths or int8 Reference; int16 rejects them. Higher-rank FP32/int8 use Reference; FP16/int16 reject.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/gather.cc)

## GATHER_ND

Family: Data movement

Input types: int8, int16, float32, float16

CORE >= 7.34.0. Native ranks <= 4 and positive index tuple width. Higher ranks and zero-width tuples use FP32/int8 Reference; FP16/int16 reject.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/gather_nd.cc)

## GREATER

Family: Comparison

Input types: float32, int8, int16, int32, int64

Boolean output. Check broadcast and operand types; no FP16 comparison branch.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/comparisons.cc)

## GREATER_EQUAL

Family: Comparison

Input types: float32, int8, int16, int32, int64

Boolean output. Check broadcast and operand types; no FP16 comparison branch.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/comparisons.cc)

## HARD_SWISH

Family: Activation

Input types: int8, int16, float32, float16

FP16 requires the CORE float feature; without it preparation fails. FP32 can use Reference.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/hard_swish.cc)

## LEAKY_RELU

Family: Activation

Input types: int8, int16, float32

Float32 uses the reference path. No FP16 execution branch in this adapter.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/leaky_relu.cc)

## LESS

Family: Comparison

Input types: float32, int8, int16, int32, int64

Boolean output. Check broadcast and operand types; no FP16 comparison branch.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/comparisons.cc)

## LESS_EQUAL

Family: Comparison

Input types: float32, int8, int16, int32, int64

Boolean output. Check broadcast and operand types; no FP16 comparison branch.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/comparisons.cc)

## LOG

Family: Arithmetic

Input types: float32

Reference implementation in the HELIA adapter source; Float32 input/output.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## LOGICAL_NOT

Family: Comparison

Input types: bool

Reference boolean operation.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## LOGISTIC

Family: Activation

Input types: int8, int16, float32, float16

int8 uses a lookup table; int16 and enabled floats have HELIA paths. NaN is not supported by the optimized float activation path.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/logistic.cc)

## MAXIMUM

Family: Arithmetic

Input types: int8, int16, float32, float16, int32, int64

Optimized paths support rank <= 4. Higher-rank FP32/int8/int16 use Reference; FP16 is rejected. int32/int64 use Reference.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/maximum_minimum.cc)

## MAX_POOL_2D

Family: Compute

Input types: int8, int16, float32, float16

Four-dimensional tensors; check filter/stride/padding and output dimensions. Kernel failure is returned to the application.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/pooling.cc)

## MEAN

Family: Reduction

Input types: int8, int16, float32, float16

Float optimized paths support rank <= 4 and axis sets; higher-rank FP32 uses Reference, FP16 is rejected. See reduce_common.cc.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/reduce.cc)

## MINIMUM

Family: Arithmetic

Input types: int8, int16, float32, float16, int32, int64

Optimized paths support rank <= 4. Higher-rank FP32/int8/int16 use Reference; FP16 is rejected. int32/int64 use Reference.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/maximum_minimum.cc)

## MUL

Family: Arithmetic

Input types: int8, int16, float32, float16, int32

Float identical-shape inputs support arbitrary rank. Optimized broadcasting supports rank <= 4; higher-rank FP32 uses Reference and FP16 is rejected. int32 follows the adapter reference path.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/mul.cc)

## NOT_EQUAL

Family: Comparison

Input types: bool, float32, int8, int16, int32, int64

Boolean output. Supported input types depend on the comparison; input shapes and broadcast rules must match.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/comparisons.cc)

## PACK

Family: Data movement

Input types: int8, int16, float32, float16, int32, int64

Equal input shapes, including scalars. Float APIs require CORE >= 7.33.0 and matching enabled feature.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/pack.cc)

## PAD

Family: Data movement

Input types: int8, int16, float32, float16, int32

FP16 requires four-dimensional tensors and the float feature. Padding values and output shape must match.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/pad.cc)

## PADV2

Family: Data movement

Input types: int8, int16, float32, float16, int32

FP16 requires four-dimensional tensors and the float feature. Padding values and output shape must match.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/pad.cc)

## QUANTIZE

Family: Quantization

Input types: int8, int16, int32, uint8, float32

Supported input/output pairs are specific: this type list does not imply all pairings. Registration is supplied by kernels/quantize.cc.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/quantize_common.cc)

## REDUCE_ALL

Family: Reduction

Input types: bool

Boolean reduction using Reference in reduce_common.cc.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/reduce.cc)

## REDUCE_MAX

Family: Reduction

Input types: int8, int16, float32

No FP16 execution path. Axis, output shape and quantization checks apply; implementation is in reduce_common.cc.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/reduce.cc)

## REDUCE_MIN

Family: Reduction

Input types: int8, int16, float32

No FP16 execution path. Axis, output shape and quantization checks apply; implementation is in reduce_common.cc.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/reduce.cc)

## RELU

Family: Activation

Input types: int8, int16, float32, float16

Check activation bounds, tensor shape and quantization. Optimized float paths require the matching CORE feature.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/activations.cc)

## RELU6

Family: Activation

Input types: int8, int16, float32, float16

Check activation bounds, tensor shape and quantization. Optimized float paths require the matching CORE feature.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/activations.cc)

## RESHAPE

Family: Data movement

Input types: int8, int16, float32, float16, int32, int64, uint8, bool

Preserves storage and element count. FP16 storage works without float arithmetic enabled. Types listed here are representative fixed-width storage types.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/reshape.cc)

## RSQRT

Family: Arithmetic

Input types: int8, int16, float32, float16

FP32 and integer paths use Reference. FP16 requires CORE >= 7.33.0 and ARM_NN_ENABLE_F16; input/output shapes and types must match.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## SIN

Family: Arithmetic

Input types: float32

Reference implementation in the HELIA adapter source; Float32 input/output.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## SOFTMAX

Family: Activation

Input types: int8, int16, float32, float16

Optimized float path requires beta = 1. Other beta values use FP32 Reference or fail FP16 preparation. int8-to-int16 output has a dedicated registration.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/softmax.cc)

## SPLIT

Family: Data movement

Input types: int8, int16, float32, float16, int32

Constant axis and equal output extents. Float APIs require CORE >= 7.33.0 and corresponding enabled feature.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/split.cc)

## SPLIT_V

Family: Data movement

Input types: int8, int16, float32, float16, int32

Constant axis and split sizes; one inferred -1 size and zero-length pieces are allowed. Shapes/types/counts are checked during preparation. Float APIs require CORE >= 7.33.0.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/split_v.cc)

## SQRT

Family: Arithmetic

Input types: float32, float16

FP32 uses Reference. FP16 requires CORE >= 7.33.0 and ARM_NN_ENABLE_F16; input/output shapes and types must match.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## SQUARE

Family: Arithmetic

Input types: float32

Reference implementation in the HELIA adapter source; Float32 input/output.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/elementwise.cc)

## SQUEEZE

Family: Data movement

Input types: int8, int16, float32, float16, int32, int64, uint8, bool

Bitwise storage copy; removes unit dimensions, checks matching byte counts and rejects strings. Input rank <= 8.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/squeeze.cc)

## STRIDED_SLICE

Family: Data movement

Input types: int8, int16, int32, float32, bool

Check slicing masks, strides and shape constraints in the adapter; no FP16 execution branch.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/strided_slice.cc)

## SUB

Family: Arithmetic

Input types: int8, int16, float32, float16, int32

Float identical-shape inputs support arbitrary rank. Optimized broadcasting supports rank <= 4; higher-rank FP32 uses Reference and FP16 is rejected. int32 follows the adapter reference path.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/sub.cc)

## SUM

Family: Reduction

Input types: int8, int16, float32, float16

SUM is LiteRT REDUCE_SUM. Float optimized paths support rank <= 4 and axis sets; higher-rank FP32 uses Reference, FP16 is rejected. See reduce_common.cc.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/reduce.cc)

## SVDF

Family: Recurrent

Input types: int8, float32, float16

Data input is int8, FP32 or enabled FP16. int16 is a time-weight/state type, not a supported data input type. Variable state persists across invocations; weight types, rank and activation configuration are constrained.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/svdf.cc)

## TANH

Family: Activation

Input types: int8, int16, float32, float16

NaN is not supported by the optimized float activation path. Float support is build-gated.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/tanh.cc)

## TRANSPOSE

Family: Data movement

Input types: int8, int16, float32, float16

Optimized rank <= 4. Higher ranks use Reference; FP16 has a bitwise storage fallback even with its float feature disabled.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/transpose.cc)

## TRANSPOSE_CONV

Family: Compute

Input types: int8, int16, float32, float16

Check output shape, padding and quantized weight/bias combinations. Float features are build-gated.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/transpose_conv.cc)

## UNIDIRECTIONAL_SEQUENCE_LSTM

Family: Recurrent

Input types: int8, int16, float32, float16

Standard four-gate LSTM only. Preparation rejects peephole, projection, layer normalization and missing gates (CIFG), including FP32. Quantized inputs use int8 weights and int16 cell state. Preserve variable state across invocations.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/unidirectional_sequence_lstm.cc)

## UNPACK

Family: Data movement

Input types: int8, int16, float32, float16, int32

One output per selected axis element. Float APIs require CORE >= 7.33.0 and matching enabled feature.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/unpack.cc)

## ZEROS_LIKE

Family: Data movement

Input types: int8, int16, int32, int64, float32

Fills output storage with zero; no FP16 execution branch.

[Adapter source](https://github.com/AmbiqAI/helia-rt/blob/70611e608778a432566e30965e8b4bc7ea75aa36/tensorflow/lite/micro/kernels/helia/zeros_like.cc)
