@@ -36,7 +36,15 @@ def ACOp : Op<Test_Dialect, "c", [NoMemoryEffect, SingleBlockImplicitTerminator<
3636def ABOp : Op<Test_Dialect, "b", [NoMemoryEffect, SingleBlockImplicitTerminator<"YieldOp">]>;
3737}
3838
39- def AEOp : Op<Test_Dialect, "e", [NoMemoryEffect, SingleBlockImplicitTerminator<"YieldOp">]>;
39+ def AEOp : Op<Test_Dialect, "e", [NoMemoryEffect]> {
40+ let summary = "Op with a summary";
41+ let description = "Op with a description";
42+ let arguments = (ins ConfinedType<AnyType, [CPred<"::llvm::isa<::mlir::TensorType>($_self)">]>:$tensor,
43+ I16Attr:$int_attr);
44+ let results = (outs
45+ ConfinedType<AnyType, [CPred<"::llvm::isa<::mlir::TensorType>($_self)">]>:$output
46+ );
47+ }
4048
4149def TestAttr : DialectAttr<Test_Dialect, CPred<"true">> {
4250 let summary = "attribute summary";
@@ -85,7 +93,19 @@ def TestEnum :
8593// CHECK: [TOC]
8694
8795// CHECK-NOT: [TOC]
96+
8897// CHECK: test.e
98+ // CHECK: _Op with a summary_
99+ // CHECK: Op with a description
100+ // CHECK: Operands:
101+ // CHECK: | Operand | Description |
102+ // CHECK: | :-----: | ----------- |
103+ // CHECK: | `tensor` | |
104+ // CHECK: Results:
105+ // CHECK: | Result | Description |
106+ // CHECK: | :----: | ----------- |
107+ // CHECK: | `output` | |
108+
89109// CHECK: Group of ops
90110// CHECK: test.a
91111// CHECK: test.d
0 commit comments