diff --git a/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml b/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml index 3c8b5271cf5c34..6613ab2a006f1d 100644 --- a/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml +++ b/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml @@ -62,8 +62,14 @@ structured_op: !LinalgStructuredOpConfig # ODS-NEXT: Variadic:$outputs # ODS: let builders = +# ODS: (ins "TypeRange":$resultTensorTypes, "ValueRange":$inputs, +# ODS-NEXT: "ValueRange":$outputs, +# ODS-NEXT: CArg<"ArrayRef", "{}">:$attributes), + # ODS: $_state.addOperands(inputs); # ODS-NEXT: $_state.addOperands(outputs); +# ODS-NEXT: $_state.addTypes(resultTensorTypes); +# ODS-NEXT: $_state.addAttributes(attributes); # ODS-NEXT: $_state.addAttribute( # ODS-NEXT: "operand_segment_sizes", # ODS-NEXT: $_builder.getI32VectorAttr({ diff --git a/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp b/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp index b95603056da3ff..a0eb1dea886033 100644 --- a/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp +++ b/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp @@ -461,6 +461,11 @@ def {0} : LinalgStructuredBase_Op<"{1}", !listconcat([ [{{ $_state.addOperands(inputs); $_state.addOperands(outputs); + SmallVector resultTensorTypes; + copy_if(outputs.getTypes(), + std::back_inserter(resultTensorTypes), + [](Type type) {{ return type.isa(); }); + $_state.addTypes(resultTensorTypes); $_state.addAttribute( "operand_segment_sizes", $_builder.getI32VectorAttr({{