[mlir][Vector] Use create_mask in transfer mask materializations
authorJavier Setoain <javier.setoain@gmail.com>
Thu, 24 Feb 2022 14:50:26 +0000 (14:50 +0000)
committerJavier Setoain <javier.setoain@gmail.com>
Tue, 8 Mar 2022 09:02:50 +0000 (09:02 +0000)
commitf2b89c7ae083d8c99f9efc7cb90f5d3b63048e89
treef88027494ea32718e59b4a4e8deacb0f8f672187
parentf2b24905bfede6bd047a38f5cbae352e6b845428
[mlir][Vector] Use create_mask in transfer mask materializations

Currently, the transfer mask is materialized by generating the vector
comparison: [offset + 0, .., offset + length - 1] < [dim, .., dim]

A better alternative is to materialize the transfer mask by using the
operation: `vector.create_mask (dim - offset)`, which will generate
simpler code and compose better with scalable vectors.

Differential Revision: https://reviews.llvm.org/D120487
mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
mlir/test/Conversion/VectorToLLVM/vector-mask-to-llvm.mlir
mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir