diff --git a/mlir/include/mlir/Dialect/ArmSVE/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/CMakeLists.txt index 06595b7088a1e..f33061b2d87cf 100644 --- a/mlir/include/mlir/Dialect/ArmSVE/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/ArmSVE/CMakeLists.txt @@ -1,6 +1 @@ -add_mlir_dialect(ArmSVE arm_sve ArmSVE) -add_mlir_doc(ArmSVE ArmSVE Dialects/ -gen-dialect-doc -dialect=arm_sve) - -set(LLVM_TARGET_DEFINITIONS ArmSVE.td) -mlir_tablegen(ArmSVEConversions.inc -gen-llvmir-conversions) -add_public_tablegen_target(MLIRArmSVEConversionsIncGen) +add_subdirectory(IR) diff --git a/mlir/include/mlir/Dialect/ArmSVE/ArmSVE.td b/mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td similarity index 96% rename from mlir/include/mlir/Dialect/ArmSVE/ArmSVE.td rename to mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td index 5c86df1ef21f4..58dec6091f27f 100644 --- a/mlir/include/mlir/Dialect/ArmSVE/ArmSVE.td +++ b/mlir/include/mlir/Dialect/ArmSVE/IR/ArmSVE.td @@ -28,7 +28,6 @@ def ArmSVE_Dialect : Dialect { This dialect contains the definitions necessary to target specific Arm SVE scalable vector operations. }]; - } //===----------------------------------------------------------------------===// @@ -38,16 +37,23 @@ def ArmSVE_Dialect : Dialect { class ArmSVE_Op traits = []> : Op {} -class ArmSVE_IntrBinaryOverloadedOp traits = []> : +class ArmSVE_IntrOp traits = [], + list overloadedOperands = [], + list overloadedResults = []> : LLVM_IntrOpBase overloadedResults=*/[0], - /*list overloadedOperands=*/[], // defined by result overload + /*list overloadedResults=*/overloadedResults, + /*list overloadedOperands=*/overloadedOperands, /*list traits=*/traits, /*int numResults=*/1>; +class ArmSVE_IntrBinaryOverloadedOp traits = []>: + ArmSVE_IntrOp; + class ScalableMaskedFOp traits = []> : ArmSVE_Op(); } diff --git a/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp b/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp index b6723a52e177f..abbb978304068 100644 --- a/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp +++ b/mlir/lib/Dialect/ArmSVE/Transforms/LegalizeForLLVMExport.cpp @@ -8,8 +8,8 @@ #include "mlir/Conversion/LLVMCommon/ConversionTarget.h" #include "mlir/Conversion/LLVMCommon/Pattern.h" -#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h" -#include "mlir/Dialect/ArmSVE/Transforms.h" +#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h" +#include "mlir/Dialect/ArmSVE/Transforms/Transforms.h" #include "mlir/Dialect/Func/IR/FuncOps.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/IR/BuiltinOps.h" diff --git a/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.cpp index bc1f0e934fa02..cd10811b68f02 100644 --- a/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.cpp +++ b/mlir/lib/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.cpp @@ -11,7 +11,7 @@ //===----------------------------------------------------------------------===// #include "mlir/Target/LLVMIR/Dialect/ArmSVE/ArmSVEToLLVMIRTranslation.h" -#include "mlir/Dialect/ArmSVE/ArmSVEDialect.h" +#include "mlir/Dialect/ArmSVE/IR/ArmSVEDialect.h" #include "mlir/IR/Operation.h" #include "mlir/Target/LLVMIR/ModuleTranslation.h" @@ -35,7 +35,7 @@ class ArmSVEDialectLLVMIRTranslationInterface convertOperation(Operation *op, llvm::IRBuilderBase &builder, LLVM::ModuleTranslation &moduleTranslation) const final { Operation &opInst = *op; -#include "mlir/Dialect/ArmSVE/ArmSVEConversions.inc" +#include "mlir/Dialect/ArmSVE/IR/ArmSVEConversions.inc" return failure(); }