[mlir][Vector] Add a masked vectorization of tensor.pad
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Thu, 13 Apr 2023 15:27:40 +0000 (08:27 -0700)
committerNicolas Vasilache <nicolas.vasilache@gmail.com>
Thu, 13 Apr 2023 20:20:29 +0000 (13:20 -0700)
commit8c5ad0a2f6532cec2f6841cc3e9a1ea043409398
tree1550f3081d6518a92a24feb8b2356843c4c0b733
parentea31a17dbec14363d8fe141128067db453befdc2
[mlir][Vector] Add a masked vectorization of tensor.pad

This revision takes advantage of masking support to introduce a vectorized
version of pad that does not require lowering to lower-level form.

Lowering to lower-level form (if/else + generate + fill + copy + insert_slice)
creates unnecessary complexity that can be completely sidestepped by using
masked vectorization properly.

Differential Revision: https://reviews.llvm.org/D148261
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
mlir/lib/Dialect/Vector/IR/VectorOps.cpp
mlir/test/Dialect/Linalg/vectorization.mlir