Files
clang-p2996/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
Kojo Acquah cb6ff746e0 [mlir][ArmNeon] Implements LowerVectorToArmNeon Pattern for SMMLA (#81895)
This patch adds a the `LowerVectorToArmNeonPattern` patterns to the
ArmNeon.

This pattern inspects `vector.contract` ops that can be 1-1 mapped to an
`arm.neon.smmla` intrinsic. The contract ops must be separated into
tiles who's inputs must fit that of a single smmla op (`2x8xi32` inputs
and `2x2xi32` output). The `vector.contract` inputs must be sign
extended from narrow types (<=i8) to be converted. If all conditions are
met, an smmla op is inserted with additional `vector.shape_casts` to
handle linearizing the input and output dimension.
2024-03-08 14:50:13 -08:00

48 lines
923 B
CMake

add_mlir_conversion_library(MLIRVectorToLLVM
PARTIAL_SOURCES_INTENDED
ConvertVectorToLLVM.cpp
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLLVM
DEPENDS
MLIRConversionPassIncGen
intrinsics_gen
LINK_COMPONENTS
Core
LINK_LIBS PUBLIC
MLIRArithDialect
MLIRLLVMCommonConversion
MLIRLLVMDialect
MLIRMemRefDialect
MLIRTargetLLVMIRExport
MLIRTransforms
MLIRVectorDialect
MLIRVectorTransforms
)
add_mlir_conversion_library(MLIRVectorToLLVMPass
PARTIAL_SOURCES_INTENDED
ConvertVectorToLLVMPass.cpp
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLLVM
LINK_LIBS PUBLIC
MLIRVectorToLLVM
MLIRArmNeonDialect
MLIRArmNeonTransforms
MLIRArmSMEDialect
MLIRArmSMETransforms
MLIRArmSVEDialect
MLIRArmSVETransforms
MLIRVectorToArmSME
MLIRAMXDialect
MLIRAMXTransforms
MLIRX86VectorDialect
MLIRX86VectorTransforms
)