#ifndef MLIR_DIALECT_SHAPE_IR_SHAPE_H
#define MLIR_DIALECT_SHAPE_IR_SHAPE_H
#include "mlir/Bytecode/BytecodeOpInterface.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/OpDefinition.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/SymbolTable.h"
#include "mlir/Interfaces/CallInterfaces.h"
#include "mlir/Interfaces/CastInterfaces.h"
#include "mlir/Interfaces/ControlFlowInterfaces.h"
#include "mlir/Interfaces/FunctionInterfaces.h"
#include "mlir/Interfaces/InferTypeOpInterface.h"
#include "mlir/Interfaces/SideEffectInterfaces.h"
#define GET_TYPEDEF_CLASSES
#include "mlir/Dialect/Shape/IR/ShapeOpsTypes.h.inc"
namespace mlir {
class PatternRewriter;
namespace shape {
RankedTensorType getExtentTensorType(MLIRContext *ctx,
int64_t rank = ShapedType::kDynamic);
bool isExtentTensorType(Type);
LogicalResult getShapeVec(Value input, SmallVectorImpl<int64_t> &shapeValues);
}
}
#define GET_OP_CLASSES
#include "mlir/Dialect/Shape/IR/ShapeOps.h.inc"
#include "mlir/Dialect/Shape/IR/ShapeOpsDialect.h.inc"
#endif