[mlir][VectorOps] Support vector transfer_read/write unrolling for memrefs with vecto...
authorAndy Davis <andydavis@google.com>
Thu, 6 Feb 2020 00:06:40 +0000 (16:06 -0800)
committerAndy Davis <andydavis@google.com>
Thu, 6 Feb 2020 00:21:58 +0000 (16:21 -0800)
commitf9efce1dd5ceef7ed594f42d207b13bb6c9f1b6e
tree1d09b30265d53fd2eac01d6775d264b5e1fefa72
parent643dee903cebdfc5e0101d305add6a5235211465
[mlir][VectorOps] Support vector transfer_read/write unrolling for memrefs with vector element type.

Summary:
[mlir][VectorOps] Support vector transfer_read/write unrolling for memrefs with vector element type.  When unrolling vector transfer read/write on memrefs with vector element type, the indices used to index the memref argument must be updated to reflect the unrolled operation.   However, in the case of memrefs with vector element type, we need to be careful to only update the relevant memref indices.

For example, a vector transfer read with the following source/result types, memref<6x2x1xvector<2x4xf32>>, vector<2x1x2x4xf32>, should only update memref indices 1 and 2 during unrolling.

Reviewers: nicolasvasilache, aartbik

Reviewed By: nicolasvasilache, aartbik

Subscribers: lebedev.ri, Joonsoo, merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72965
mlir/lib/Dialect/VectorOps/VectorTransforms.cpp
mlir/test/Dialect/VectorOps/vector-transforms.mlir