[mlir][Vector] Initial masking support in Linalg vectorizer
authorDiego Caballero <diegocaballero@google.com>
Thu, 24 Nov 2022 02:16:46 +0000 (02:16 +0000)
committerDiego Caballero <diegocaballero@google.com>
Tue, 13 Dec 2022 01:33:06 +0000 (01:33 +0000)
commit72fd36448d7c97c9dab094d6deda401d97baf0ef
tree809c57441d260dab1e09864b55a0d1897b82b902
parent6893b151906ae9f4112197a979ed94bbab08a32e
[mlir][Vector] Initial masking support in Linalg vectorizer

This patch introduces the initial bits to support vector masking
using the `vector.mask` operation. Vectorization changes should be
NFC for non-masked cases. We can't test masked cases directly until
we extend the Transform dialect to support masking.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D137690
13 files changed:
mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
mlir/include/mlir/Dialect/Vector/Interfaces/MaskableOpInterface.td
mlir/include/mlir/Dialect/Vector/Transforms/Passes.h
mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
mlir/lib/Dialect/Vector/IR/CMakeLists.txt
mlir/lib/Dialect/Vector/IR/VectorOps.cpp
mlir/lib/Dialect/Vector/Transforms/LowerVectorMask.cpp
mlir/test/Dialect/Linalg/vectorization.mlir
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel