From e0a8dd36f5112a5f61179bbfe0e7199bddcc205d Mon Sep 17 00:00:00 2001 From: Jerry Ge Date: Wed, 5 Mar 2025 15:40:42 -0800 Subject: [PATCH] [mlir][tosa] Update the description section for CastOp to align with TOSA v1.0 spec Updated the description section to include all data types and match the ordering with the spec. Signed-off-by: Jerry Ge Change-Id: I3075a3599f2e2732c7796a640697c75e3d17547f --- mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td | 68 ++++++++++++++------ 1 file changed, 49 insertions(+), 19 deletions(-) diff --git a/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td b/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td index 61178a0110aa3..7ff1a94fb6231 100644 --- a/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td +++ b/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td @@ -2234,28 +2234,58 @@ def Tosa_CastOp: Tosa_Op<"cast", [Pure, let summary = "Cast operation"; let description = [{ - Performs a set of permissible cast operations + Casts a tensor from one data type to another. + * This table is showing the supported conversions from the TOSA Specification. + * The MLIR dialect here can be used to represent other conversions. | Mode | Input | Output | |--------------------------|---------|---------| - | signed 8 to bool | int8 | Boolean | - | signed 16 to bool | int16 | Boolean | - | signed 32 to bool | int32 | Boolean | - | bool to 8 | Boolean | int8 | - | bool to 16 | Boolean | int16 | - | bool to 32 | Boolean | int32 | - | signed 8 to signed 16 | int8 | int16 | - | signed 8 to signed 32 | int8 | int32 | - | signed 16 to signed 8 | int16 | int8 | - | signed 16 to signed 32 | int16 | int32 | - | signed 32 to signed 8 | int32 | int8 | - | signed 32 to signed 16 | int32 | int16 | - | float to signed 8 | float | int8 | - | float to signed 16 | float | int16 | - | signed 8 to float | int8 | float | - | signed 16 to float | int16 | float | - | float 32 to float 64 | float32 | float64 | - | float 64 to float 32 | float64 | float32 | + | fp16 to fp32 | float16 | float32 | + | fp16 to int 16 | float16 | int16 | + | fp16 to int 32 | float16 | int32 | + | fp16 to int 8 | float16 | int8 | + | fp32 to fp16 | float32 | float16 | + | fp32 to int 16 | float32 | int16 | + | fp32 to int 32 | float32 | int32 | + | fp32 to int 8 | float32 | int8 | + | int 16 to fp16 | int16 | float16 | + | int 16 to fp32 | int16 | float32 | + | int 32 to fp16 | int32 | float16 | + | int 32 to fp32 | int32 | float32 | + | int 8 to fp16 | int8 | float16 | + | int 8 to fp32 | int8 | float32 | + | bool to int 16 | Boolean | int16 | + | bool to int 32 | Boolean | int32 | + | bool to int 8 | Boolean | int8 | + | int 16 to bool | int16 | Boolean | + | int 16 to int 32 | int16 | int32 | + | int 16 to int 8 | int16 | int8 | + | int 32 to bool | int32 | Boolean | + | int 32 to int 16 | int32 | int16 | + | int 32 to int 8 | int32 | int8 | + | int 8 to bool | int8 | Boolean | + | int 8 to int 16 | int8 | int16 | + | int 8 to int 32 | int8 | int32 | + | bf16 to fp32 | bf16 | float32 | + | bf16 to int 16 | bf16 | int16 | + | bf16 to int 32 | bf16 | int32 | + | bf16 to int 8 | bf16 | int8 | + | fp32 to bf16 | float32 | bf16 | + | int 16 to bf16 | int16 | bf16 | + | int 32 to bf16 | int32 | bf16 | + | int 8 to bf16 | int8 | bf16 | + | bf16 to fp8e4m3 | bf16 | fp8e4m3 | + | fp8e4m3 to bf16 | fp8e4m3 | bf16 | + | bf16 to fp8e5m2 | bf16 | fp8e5m2 | + | fp8e5m2 to bf16 | fp8e5m2 | bf16 | + | fp16 to fp8e4m3 | float16 | fp8e4m3 | + | fp32 to fp8e4m3 | float32 | fp8e4m3 | + | fp8e4m3 to fp16 | fp8e4m3 | float16 | + | fp8e4m3 to fp32 | fp8e4m3 | float32 | + | fp16 to fp8e5m2 | float16 | fp8e5m2 | + | fp32 to fp8e5m2 | float32 | fp8e5m2 | + | fp8e5m2 to fp16 | fp8e5m2 | float16 | + | fp8e5m2 to fp32 | fp8e5m2 | float32 | }]; let arguments = (ins