16#include "llvm/ADT/TypeSwitch.h"
31#include "mlir/Dialect/ArmSME/IR/ArmSMEDialect.cpp.inc"
33#include "mlir/Dialect/ArmSME/IR/ArmSMEEnums.cpp.inc"
35#include "mlir/Dialect/ArmSME/IR/ArmSMEOpInterfaces.cpp.inc"
38#include "mlir/Dialect/ArmSME/IR/ArmSMEOps.cpp.inc"
41#include "mlir/Dialect/ArmSME/IR/ArmSMEIntrinsicOps.cpp.inc"
43#define GET_TYPEDEF_CLASSES
44#include "mlir/Dialect/ArmSME/IR/ArmSMETypes.cpp.inc"
46#define GET_ATTRDEF_CLASSES
47#include "mlir/Dialect/ArmSME/IR/ArmSMEAttrDefs.cpp.inc"
56LogicalResult TileLoadOp::verify() {
57 if (!getMemRefType().isLastDimUnitStride())
58 return emitOpError(
"most minor dimension of memref must have unit stride");
62LogicalResult TileStoreOp::verify() {
64 return emitOpError(
"most minor dimension of memref must have unit stride");
68void ArmSMEDialect::initialize() {
70#define GET_ATTRDEF_LIST
71#include "mlir/Dialect/ArmSME/IR/ArmSMEAttrDefs.cpp.inc"
76#include "mlir/Dialect/ArmSME/IR/ArmSMEOps.cpp.inc"
79#include "mlir/Dialect/ArmSME/IR/ArmSMEIntrinsicOps.cpp.inc"
p<< " : "<< getMemRefType()<< ", "<< getType();}static LogicalResult verifyVectorMemoryOp(Operation *op, MemRefType memrefType, VectorType vectorType) { if(memrefType.getElementType() !=vectorType.getElementType()) return op-> emitOpError("requires memref and vector types of the same elemental type")
Given a list of lists of parsed operands, populates uniqueOperands with unique operands.
Operation is the basic unit of execution within MLIR.
LogicalResult verifyArmSMETileOpInterface(Operation *)
LogicalResult verifyOperationHasValidTileId(Operation *)
Verifies the tile ID (if set) on this tile operation is valid.
MemRefType getMemRefType(T &&t)
Convenience method to abbreviate casting getType().
Include the generated interface declarations.