// Copyright 2023 The IREE Authors
//
// Licensed under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

#ifndef IREE_DIALECTS_DIALECT_VECTOREXT_INTERFACES_H_
#define IREE_DIALECTS_DIALECT_VECTOREXT_INTERFACES_H_

#include <mlir/IR/PatternMatch.h>
#include <mlir/IR/Value.h>
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/OpDefinition.h"

/// Include the generated interface declarations.
#include "iree/compiler/Codegen/Dialect/VectorExt/IR/VectorExtAttrInterfaces.h.inc"

// Manual declaration; defined in VectorExtOps.cpp, called from generated
// interface verify.
namespace mlir::iree_compiler::IREE::VectorExt::detail {
LogicalResult verifyIndexedVectorOpInterface(::mlir::Operation *op);
} // namespace mlir::iree_compiler::IREE::VectorExt::detail

#include "iree/compiler/Codegen/Dialect/VectorExt/IR/VectorExtOpInterfaces.h.inc"

#endif // IREE_DIALECTS_DIALECT_VECTOREXT_INTERFACES_H
