Skip to content

[Tracking Issue][TFLite] Remaining builtin operator coverage beyond #19412 #19519

@tlopex

Description

@tlopex

The Relax TFLite frontend has made good progress recently:

This issue tracks the remaining larger TFLite builtin operator coverage that is not already well-covered by those two issues.

The goal is to make the remaining gaps visible, split them by complexity, and let contributors pick coherent operator families instead of one-off unsupported ops.

Scope

This issue covers remaining TFLite builtin operators that fall into larger semantic groups. This issue does not track quantized model support as a whole; that should be tracked separately.

A. Sequence / recurrent model operators

  • RNN
  • LSTM
  • SVDF
  • UNIDIRECTIONAL_SEQUENCE_RNN
  • UNIDIRECTIONAL_SEQUENCE_LSTM
  • BIDIRECTIONAL_SEQUENCE_RNN
  • BIDIRECTIONAL_SEQUENCE_LSTM

B. 3D convolution family

  • CONV_3D
  • CONV_3D_TRANSPOSE

C. FFT / complex operators

  • RFFT2D
  • REAL
  • IMAG
  • COMPLEX_ABS

D. Legacy embedding / sparse embedding operators

  • CONCAT_EMBEDDINGS
  • EMBEDDING_LOOKUP_SPARSE
  • HASHTABLE_LOOKUP
  • LSH_PROJECTION
  • SKIP_GRAM

E. Window reduction

  • REDUCE_WINDOW

F. Control flow / multi-subgraph operators

  • IF
  • WHILE
  • CALL
  • CALL_ONCE

G. Resource / variable / hashtable operators

  • VAR_HANDLE
  • READ_VARIABLE
  • ASSIGN_VARIABLE
  • HASHTABLE
  • HASHTABLE_FIND
  • HASHTABLE_IMPORT
  • HASHTABLE_SIZE

H. Operator markers

  • DELEGATE
  • PLACEHOLDER_FOR_GREATER_OP_CODES

I. StableHLO operators in TFLite

  • STABLEHLO_ABS
  • STABLEHLO_ADD
  • STABLEHLO_AND
  • STABLEHLO_BROADCAST_IN_DIM
  • STABLEHLO_CBRT
  • STABLEHLO_CLAMP
  • STABLEHLO_COMPARE
  • STABLEHLO_COMPOSITE
  • STABLEHLO_CONCATENATE
  • STABLEHLO_CONVERT
  • STABLEHLO_CONVOLUTION
  • STABLEHLO_COSINE
  • STABLEHLO_CUSTOM_CALL
  • STABLEHLO_DIVIDE
  • STABLEHLO_DOT_GENERAL
  • STABLEHLO_DYNAMIC_SLICE
  • STABLEHLO_DYNAMIC_UPDATE_SLICE
  • STABLEHLO_EXPONENTIAL
  • STABLEHLO_FLOOR
  • STABLEHLO_GATHER
  • STABLEHLO_IOTA
  • STABLEHLO_LOG
  • STABLEHLO_LOGISTIC
  • STABLEHLO_MAXIMUM
  • STABLEHLO_MINIMUM
  • STABLEHLO_MULTIPLY
  • STABLEHLO_NEGATE
  • STABLEHLO_OR
  • STABLEHLO_PAD
  • STABLEHLO_POWER
  • STABLEHLO_REDUCE
  • STABLEHLO_REDUCE_WINDOW
  • STABLEHLO_REMAINDER
  • STABLEHLO_RESHAPE
  • STABLEHLO_RNG_BIT_GENERATOR
  • STABLEHLO_RSQRT
  • STABLEHLO_SCATTER
  • STABLEHLO_SELECT
  • STABLEHLO_SHIFT_LEFT
  • STABLEHLO_SLICE
  • STABLEHLO_SORT
  • STABLEHLO_SUBTRACT
  • STABLEHLO_TANH
  • STABLEHLO_TRANSPOSE
  • STABLEHLO_WHILE

Suggested contribution workflow

  1. Claim an item by commenting on this issue before starting, so we avoid duplicated work.
  2. Read a recent reference PR for handler + test style.
  3. Add the handler, register in convert_map (alphabetical within its region).
  4. Add a structural-equal test following the verify(TestClass, expected=None) pattern (test_frontend_tflite.py:56). Nightly-gated E2E activates automatically via CI_ENV_NIGHTLY.
  5. Tag the PR title [Relax][Frontend][TFLite].

References

cc @leandron

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions