[mlir][Vector] Provide progressive lowering of masked n-D vector transfers
This revision allows masked vector transfers with m-D buffers and n-D vectors to progressively lower to m-D buffer and 1-D vector transfers. For a vector.transfer_read, assuming a `memref<(leading_dims) x (major_dims) x (minor_dims) x type>` and a `vector<(minor_dims) x type>` are involved in the transfer, this generates pseudo-IR resembling: ``` if (any_of(%ivs_major + %offsets, <, major_dims)) { %v = vector_transfer_read( {%offsets_leading, %ivs_major + %offsets_major, %offsets_minor}, %ivs_minor): memref<(leading_dims) x (major_dims) x (minor_dims) x type>, vector<(minor_dims) x type>; } else { %v = splat(vector<(minor_dims) x type>, %fill) } ``` Differential Revision: https://reviews.llvm.org/D79062
Loading
Please sign in to comment