76 lines · plain
1// RUN: mlir-tblgen -gen-op-decls -I %S/../../include %s | FileCheck %s --check-prefix=DECL2// RUN: mlir-tblgen -gen-op-defs -I %S/../../include %s | FileCheck %s --check-prefix=DEF3 4include "mlir/IR/OpBase.td"5 6// Check using the dialect name as the namespace7def A_Dialect : Dialect {8 let name = "a";9}10 11def A_SomeOp : Op<A_Dialect, "some_op", []>;12 13// Check a single namespace14def B_Dialect : Dialect {15 let name = "b";16 let cppNamespace = "BNS";17}18 19// Check nested namespaces20def B_SomeOp : Op<B_Dialect, "some_op", []>;21 22def C_Dialect : Dialect {23 let name = "c";24 let cppNamespace = "::C::CC";25}26 27def C_SomeOp : Op<C_Dialect, "some_op", []>;28 29// Check no namespaces30def D_Dialect : Dialect {31 let name = "d";32 let cppNamespace = "";33}34 35def D_DSomeOp : Op<D_Dialect, "some_op", []>;36 37// Check op with namespace override.38def E_Dialect : Dialect {39 let name = "e";40 let cppNamespace = "ENS";41}42 43def E_SomeOp : Op<E_Dialect, "some_op", []>;44def E_SpecialNSOp : Op<E_Dialect, "special_ns_op", []> {45 let cppNamespace = "::E::SPECIAL_NS";46}47 48// DEF-LABEL: GET_OP_LIST49// DEF: a::SomeOp50// DEF-NEXT: BNS::SomeOp51// DEF-NEXT: ::C::CC::SomeOp52// DEF-NEXT: DSomeOp53// DEF-NEXT: ENS::SomeOp54// DEF-NEXT: ::E::SPECIAL_NS::SpecialNSOp55 56// DEF-LABEL: GET_OP_CLASSES57// DEF: a::SomeOp definitions58// DEF: BNS::SomeOp definitions59// DEF: ::C::CC::SomeOp definitions60// DEF: DSomeOp definitions61// DEF: ENS::SomeOp definitions62// DEF: ::E::SPECIAL_NS::SpecialNSOp definitions63 64// DECL-LABEL: GET_OP_CLASSES65// DECL: namespace a {66// DECL: a::SomeOp declarations67// DECL: namespace BNS {68// DECL: BNS::SomeOp declarations69// DECL: namespace C::CC {70// DECL: ::C::CC::SomeOp declarations71// DECL: DSomeOp declarations72// DECL: namespace ENS {73// DECL: ENS::SomeOp declarations74// DECL: namespace E::SPECIAL_NS {75// DECL: ::E::SPECIAL_NS::SpecialNSOp declarations76