[Mlir-commits] [mlir] [mlir][spirv] Add first 3 data layout ops in TOSA Ext Inst Set (PR #187714)
Jakub Kuderski
llvmlistbot at llvm.org
Fri Mar 20 08:17:34 PDT 2026
================
@@ -2125,4 +2125,138 @@ def SPIRV_TosaReduceSumOp : SPIRV_TosaReductionOp<"ReduceSum", 53, [NoMemoryEffe
}
+def SPIRV_TosaConcatOp : SPIRV_TosaOpWithResult<"Concat", 54, [Pure,
+ VariadicInputWithMinSize<"input1", 1>,
+ VariadicInputAllSameElementType<"output", "input1">,
+ VariadicInputAllSameRank<"output", "input1">,
+ AxisValueLessThanRankOf<"output">]> {
+ let summary = "Concatenates tensors along one dimension.";
+
+ let description = [{
+ Concatenates a list of tensors along a given axis.
+ No data conversion happens during a concat operation.
+
+ References:
+ * https://github.khronos.org/SPIRV-Registry/extended/TOSA.001000.1.html#_concat
+ * https://www.mlplatform.org/tosa/tosa_spec_1_0_1.html#_concat
+
+ #### Example:
+ ```mlir
+ %1 = spirv.Tosa.Concat axis = 2, %arg0, %arg1, %arg2, %arg3 : !spirv.arm.tensor<12x13x3x14xi8>, !spirv.arm.tensor<12x13x3x14xi8>, !spirv.arm.tensor<12x13x3x14xi8>, !spirv.arm.tensor<12x13x3x14xi8> -> !spirv.arm.tensor<12x13x12x14xi8>
+ %1 = spirv.Tosa.Concat axis = 1, %arg0, %arg1, %arg2 : !spirv.arm.tensor<40x31x19xf32>, !spirv.arm.tensor<40x15x19xf32>, !spirv.arm.tensor<40x16x19xf32> -> !spirv.arm.tensor<40x62x19xf32>
+ ```
+ }];
+
+ let arguments = (ins
+ SPIRV_TensorArmAxisAttr: $axis,
+ Variadic<SPIRV_TosaAny_TensorArm>: $input1
+ );
+
+ let results = (outs
+ SPIRV_TosaAny_TensorArm: $output
+ );
+
+ let assemblyFormat = [{
+ `axis` `=` $axis `,`
+ $input1
+ attr-dict `:` type(operands) `->` type(results)
+ }];
+
+ let extraClassDeclaration = extraBaseClassDeclaration#[{
+ }];
----------------
kuhar wrote:
?
https://github.com/llvm/llvm-project/pull/187714
More information about the Mlir-commits
mailing list