blob: 80b44dc61dee846887ba3c76c67614691cc05df0 [file] [log] [blame] [view]
# TensorFlow Lite Base Operation Coverage
Tests of the TFLite's [builtin](https://www.tensorflow.org/mlir/tfl_ops)
operation coverage.
This focuses on lowering to `tosa` operations and may not have support for
all IREE backends.
*Last Updated Manually: 2022/5/25
## TFlite Operation Coverage
| TFLite Operation | Static | Dynamic |
|:-----------|:--------------------------------------------:|:--------------------------------------------:|
| Abs | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Add | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| AddN | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ArgMax | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ArgMin | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| AssignVariable | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| AveragePool2d | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| BatchMatmul | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| BatchToSpaceNd | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| BidirectionalSequenceLstm | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| BidirectionalSequenceRnn | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| BroadcastArgs | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| BroadcastTo | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| Bucketize | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Call | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| CallOnce | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Cast | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Ceil | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ComplexAbs | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ConcatEmbeddings | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Concatenation | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Conv2d | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Conv3d | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Conv3dTranspose | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Cos | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Cumsum | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Custom | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Delegate | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Densify | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| DepthToSpace | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| DepthwiseConv2d | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Dequantize | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Div | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| DynamicUpdateSlice | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Elu | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| EmbeddingLookup | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| EmbeddingLookupSparse | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Equal | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Exp | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ExpandDims | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| FakeQuant | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Fill | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Floor | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| FloorDiv | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| FloorMod | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| FullyConnected | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Gather | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| GatherNd | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Gelu | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Greater | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| GreaterEqual | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| HardSwish | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Hashtable | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| HashtableFind | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| HashtableImport | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| HashtableLookup | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| HashtableSize | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| If | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Imag | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| L2Normalization | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| L2Pool2d | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| LeakyRelu | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Less | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LessEqual | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LocalResponseNormalization | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Log | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LogicalAnd | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LogicalNot | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LogicalOr | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Logistic | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LogSoftmax | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| LshProjection | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Lstm | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| MatrixDiag | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| MatrixSetDiag | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Maximum | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| MaxPool2d | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Mean | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Minimum | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| MirrorPad | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Mul | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Multinomial | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Neg | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| NonMaxSuppressionV4 | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| NonMaxSuppressionV5 | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| NotEqual | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| OneHot | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Pack | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Pad | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Padv2 | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Pow | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Prelu | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Quantize | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| RandomStandardNormal | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| RandomUniform | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Range | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| Rank | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReadVariable | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Real | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| ReduceAll | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReduceAny | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReduceMax | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReduceMin | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReduceProd | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Relu | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Relu6 | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReluN1To1 | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Reshape | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ResizeBilinear | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ResizeNearestNeighbor | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ReverseSequence | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| ReverseV2 | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Rfft2d | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Rnn | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Round | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Rsqrt | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ScatterNd | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| SegmentSum | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Select | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SelectV2 | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Shape | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Sin | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SkipGram | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Slice | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Softmax | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SpaceToBatchNd | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SpaceToDepth | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SparseToDense | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| Split | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SplitV | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Sqrt | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Square | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| SquaredDifference | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Squeeze | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| StridedSlice | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Sub | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Sum | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Svdf | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Tanh | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Tile | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| TopkV2 | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Transpose | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| TransposeConv | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span> |
| UnidirectionalSequenceLstm | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| UnidirectionalSequenceRnn | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Unique | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| Unpack | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| VarHandle | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| Where | <span class="failure-table-element">✗</span> | <span class="failure-table-element">✗</span> |
| While | <span class="success-table-element">✓</span> | <span class="success-table-element">✓</span> |
| ZerosLike | <span class="success-table-element">✓</span> | <span class="failure-table-element">✗</span>