/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* Interface Declarations *| |* *| |* Automatically generated file, do not edit! *| |* *| \*===----------------------------------------------------------------------===*/ namespace mlir::linalg { /// A Linalg relayout-op is either linalg.pack or linalg.unpack. /// /// While we could extend this interface with methods from Linalg_RelayoutOp, /// this is currently not needed and left as a TODO. class RelayoutOpInterface; } // namespace mlir::linalg namespace mlir::linalg { /// A Linalg relayout-op is either linalg.pack or linalg.unpack. /// /// While we could extend this interface with methods from Linalg_RelayoutOp, /// this is currently not needed and left as a TODO. namespace detail { struct RelayoutOpInterfaceInterfaceTraits { struct Concept { /// The methods defined by the interface. }; template class Model : public Concept { public: using Interface = ::mlir::linalg::RelayoutOpInterface; Model() : Concept{} {} }; template class FallbackModel : public Concept { public: using Interface = ::mlir::linalg::RelayoutOpInterface; FallbackModel() : Concept{} {} }; template class ExternalModel : public FallbackModel { public: using ConcreteEntity = ConcreteOp; }; }; template struct RelayoutOpInterfaceTrait; } // namespace detail class RelayoutOpInterface : public ::mlir::OpInterface { public: using ::mlir::OpInterface::OpInterface; template struct Trait : public detail::RelayoutOpInterfaceTrait {}; }; } // namespace mlir::linalg namespace mlir::linalg::detail { template struct RelayoutOpInterfaceTrait : public ::mlir::OpInterface::Trait { }; } // namespace mlir::linalg::detail namespace mlir::linalg { } // namespace mlir::linalg