1include "include/interfaces.td" 2 3def Test_Dialect : Dialect { 4 let name = "test"; 5} 6 7def OpAllEmpty : Op<Test_Dialect, "all_empty">; 8 9def OpAllSingle : Op<Test_Dialect, "all_single"> { 10 let arguments = (ins 11 I64:$operand, 12 I64Attr:$attr, 13 ConfinedAttr<I64Attr, [IntNonNegative]>:$nonNegativeAttr 14 ); 15 let results = (outs I64:$result); 16} 17 18def OpAllOptional : Op<Test_Dialect, "all_optional"> { 19 let arguments = (ins Optional<I64>:$operand, OptionalAttr<I64Attr>:$attr); 20 let results = (outs Optional<I64>:$result); 21} 22 23def OpAllVariadic : Op<Test_Dialect, "all_variadic"> { 24 let arguments = (ins Variadic<I64>:$operands); 25 let results = (outs Variadic<I64>:$results); 26} 27 28def OpMultipleSingleResult : Op<Test_Dialect, "multiple_single_result"> { 29 let results = (outs I64:$result, I64:$result2); 30} 31 32def OpMultiVariadic : Op<Test_Dialect, "multi_variadic"> { 33 let arguments = (ins Variadic<I64>:$operands1, Variadic<I64>:$operand2); 34 let results = (outs Variadic<I64>:$results1, Variadic<I64>:$results2); 35} 36