[mlir][Vector] Add an optional "masked" boolean array attribute to vector transfer...
authorNicolas Vasilache <ntv@google.com>
Mon, 18 May 2020 15:51:56 +0000 (11:51 -0400)
committerNicolas Vasilache <ntv@google.com>
Mon, 18 May 2020 15:52:08 +0000 (11:52 -0400)
commit1870e787af961d1b409e18a18ddf297f02333a78
treef37ff2911665e61777191b88f8f5800a8c865b2c
parent36cdc17f8cfeffe7edb4486c02fc97faf73b23ac
[mlir][Vector] Add an optional "masked" boolean array attribute to vector transfer operations

Summary:
Vector transfer ops semantic is extended to allow specifying a per-dimension `masked`
attribute. When the attribute is false on a particular dimension, lowering to LLVM emits
unmasked load and store operations.

Differential Revision: https://reviews.llvm.org/D80098
mlir/include/mlir/Dialect/Vector/VectorOps.td
mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
mlir/lib/Dialect/Vector/VectorOps.cpp
mlir/lib/Dialect/Vector/VectorTransforms.cpp
mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
mlir/test/Conversion/VectorToLoops/vector-to-loops.mlir
mlir/test/Dialect/Vector/invalid.mlir
mlir/test/Dialect/Vector/ops.mlir