This diff adds a transformation patter to rewrite linalg.copy as
broadcasting a vector into a vector.
It uses the same preconditioning as matmul (memory is contiguous).
Details
- Reviewers
nicolasvasilache jsetoain asaadaldien
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp | ||
---|---|---|
215 | nit: s/fill/copy |
mlir/lib/Dialect/Linalg/Transforms/LinalgTransforms.cpp | ||
---|---|---|
215 | typo: fill -> copy | |
219 | I think there are a few issues with this scheme:
I would recommend instead evolving this revisions into a rewrite of linalg.copy into the proper vector.transfer_read and vector.transfer_write with proper permutations. We may have to introduce first order masked loads too and delagate sone of the logic to LLVM, not too sure at this point. |
Abandoning this revision to evolve it into a rewrite of linalg.copy into the proper vector.transfer_read and vector.transfer_write with proper permutations.
typo: fill -> copy