[Mlir-commits] [mlir] [mlir][vector][spirv] Lower vector.transfer_read and vector.transfer_write to SPIR-V (PR #69708)

Jakub Kuderski llvmlistbot at llvm.org
Tue Oct 31 10:10:16 PDT 2023


kuhar wrote:

> > Thanks for the patterns. Actually I'm wondering whether we need them--vector transfer ops are high level abstractions; they provide powerful mechansisms with padding, in bounds, and permutation maps. We'd typically want to first lower these transfer ops into vector.load/store or memref.load/store and then lower them to SPIR-V. Have you considered that paths?
> 
> There is a description in the document. That is, "A vector.transfer_read can be lowered to a simple load if all dimensions are specified to be within bounds and no mask was specified". Under these conditions, does it make sense to convert transfer_read/transfer_write to SPIR-V directly? I have not tried the way to convert transfer_read to memref.load though.

What's the benefit of skipping memref loads/stores? Seems like this will complicate lowering and disallow us to run transforms at the level of memref ops, e.g., narrow type emulation.

https://github.com/llvm/llvm-project/pull/69708


More information about the Mlir-commits mailing list