diff --git a/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td b/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td --- a/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td +++ b/mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td @@ -294,7 +294,7 @@ }]; let arguments = (ins - Tosa_Tensor1Dto4D:$input, + Tosa_Tensor:$input, I64Attr:$min_int, I64Attr:$max_int, F32Attr:$min_fp, @@ -302,7 +302,7 @@ ); let results = (outs - Tosa_Tensor1Dto4D:$output + Tosa_Tensor:$output ); } @@ -317,13 +317,13 @@ }]; let arguments = (ins - Tosa_Tensor1Dto4D:$input, + Tosa_Tensor:$input, I64Attr:$max_int, F32Attr:$max_fp ); let results = (outs - Tosa_Tensor1Dto4D:$output + Tosa_Tensor:$output ); } @@ -343,11 +343,11 @@ }]; let arguments = (ins - Tosa_Tensor1Dto4D:$input + Tosa_Tensor:$input ); let results = (outs - Tosa_Tensor1Dto4D:$output + Tosa_Tensor:$output ); } @@ -365,11 +365,11 @@ }]; let arguments = (ins - Tosa_Tensor1Dto4D:$input + Tosa_Tensor:$input ); let results = (outs - Tosa_Tensor1Dto4D:$output + Tosa_Tensor:$output ); } @@ -392,12 +392,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -416,13 +416,13 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2, + Tosa_Tensor:$input1, + Tosa_Tensor:$input2, BoolAttr:$round ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -439,12 +439,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -461,12 +461,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -483,12 +483,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -505,12 +505,12 @@ }]; let arguments = (ins - Tosa_Int32TensorUpto4D:$input1, - Tosa_Int32TensorUpto4D:$input2 + Tosa_Int32Tensor:$input1, + Tosa_Int32Tensor:$input2 ); let results = (outs - Tosa_Int32TensorUpto4D:$output + Tosa_Int32Tensor:$output ); } @@ -550,12 +550,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -574,12 +574,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -640,12 +640,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -662,12 +662,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -685,13 +685,13 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2, + Tosa_Tensor:$input1, + Tosa_Tensor:$input2, I32Attr:$shift ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -708,12 +708,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$z + Tosa_Tensor:$z ); } @@ -729,12 +729,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -762,12 +762,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D: $input, + Tosa_Tensor: $input, Tosa_Tensor1D: $table ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -789,11 +789,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -809,11 +809,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -828,11 +828,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -847,11 +847,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -866,11 +866,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -885,11 +885,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -904,11 +904,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -944,12 +944,12 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, + Tosa_Tensor:$input1, OptionalAttr:$quantization_info ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); let builders = [Tosa_UnaryOpQuantInfoBuilder]; @@ -968,11 +968,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -988,11 +988,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -1014,12 +1014,12 @@ let arguments = (ins I1Tensor:$input1, - Tosa_TensorUpto4D:$input2, - Tosa_TensorUpto4D:$input3 + Tosa_Tensor:$input2, + Tosa_Tensor:$input3 ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -1040,8 +1040,8 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs @@ -1061,8 +1061,8 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs @@ -1082,8 +1082,8 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input1, - Tosa_TensorUpto4D:$input2 + Tosa_Tensor:$input1, + Tosa_Tensor:$input2 ); let results = (outs @@ -1233,12 +1233,12 @@ }]; let arguments = (ins - Variadic:$input1, + Variadic:$input1, I64Attr:$axis ); let results = (outs - Tosa_Tensor1Dto4D:$output + Tosa_RankedTensor:$output ); } @@ -1253,13 +1253,13 @@ }]; let arguments = (ins - Tosa_Tensor1Dto4D:$input1, + Tosa_RankedTensor:$input1, Tosa_Int32Or64Tensor:$padding, OptionalAttr:$quantization_info ); let results = (outs - Tosa_Tensor1Dto4D:$output + Tosa_RankedTensor:$output ); let builders = [Tosa_PadOpQuantInfoBuilder]; @@ -1279,12 +1279,12 @@ }]; let arguments = (ins - Tosa_TensorUpto6D:$input1, + Tosa_Tensor:$input1, I64ArrayAttr:$new_shape ); let results = (outs - Tosa_TensorUpto6D:$output + Tosa_RankedTensor:$output ); } @@ -1490,11 +1490,11 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input + Tosa_Tensor:$input ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -1524,7 +1524,7 @@ }]; let arguments = (ins - Tosa_TensorUpto4D:$input, + Tosa_Tensor:$input, I32Attr:$input_zp, I32Attr:$output_zp, I32ArrayAttr:$multiplier, @@ -1535,7 +1535,7 @@ ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); } @@ -1561,7 +1561,7 @@ ); let results = (outs - Tosa_TensorUpto4D:$output + Tosa_Tensor:$output ); let hasFolder = 1; } @@ -1577,11 +1577,11 @@ }]; let arguments = (ins - Tosa_TensorUpto6D:$input1 + Tosa_Tensor:$input1 ); let results = (outs - Tosa_TensorUpto6D:$output + Tosa_Tensor:$output ); } diff --git a/mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td b/mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td --- a/mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td +++ b/mlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td @@ -94,9 +94,13 @@ // Tensor types //===----------------------------------------------------------------------===// +def Tosa_Int32Tensor : TensorOf<[Tosa_Int32]>; def Tosa_Int32Or64Tensor : TensorOf<[Tosa_Int32Or64]>; +// Either ranked or unranked tensor of TOSA supported element types. def Tosa_Tensor : TensorOf<[Tosa_AnyNumber]>; +// Must be ranked but no further constraints +def Tosa_RankedTensor : RankedTensorOf<[Tosa_AnyNumber]>; // Any tensor element type allowed in Tosa ops. def Tosa_ElementType : Type; def Tosa_Tensor4D : 4DTensorOf<[Tosa_AnyNumber]>; def Tosa_Tensor5D : TensorRankOf<[Tosa_AnyNumber], [5]>; -def Tosa_Tensor6D : TensorRankOf<[Tosa_AnyNumber], [6]>; // Ranked tensors up to given rank. -def Tosa_Tensor1Dto2D : TensorRankOf<[Tosa_AnyNumber], [1,2]>; def Tosa_Tensor1Dto4D : TensorRankOf<[Tosa_AnyNumber], [1,2,3,4]>; -def Tosa_Tensor1Dto5D : TensorRankOf<[Tosa_AnyNumber], [1,2,3,4,5]>; def Tosa_Tensor1Dto6D : TensorRankOf<[Tosa_AnyNumber], [1,2,3,4,5,6]>; def Tosa_TensorUpto4D : TensorRankOf<[Tosa_AnyNumber], [0,1,2,3,4]>; -def Tosa_TensorUpto6D : TensorRankOf<[Tosa_AnyNumber], [0,1,2,3,4,5,6]>; def Tosa_Int32TensorUpto4D : TensorRankOf<[Tosa_Int32], [0,1,2,3,4]>;