[Mlir-commits] [mlir] [mlir][memref-to-spirv]: Reverse Image Load Coordinates (PR #160495)
Igor Wodiany
llvmlistbot at llvm.org
Mon Sep 29 07:33:16 PDT 2025
================
@@ -699,6 +699,36 @@ LoadOpPattern::matchAndRewrite(memref::LoadOp loadOp, OpAdaptor adaptor,
return success();
}
+template <typename OpAdaptor>
+static FailureOr<SmallVector<Value>>
+extractLoadCoordsForComposite(memref::LoadOp loadOp, OpAdaptor adaptor,
+ ConversionPatternRewriter &rewriter) {
+ // At present we only support linear "tiling" as specified in Vulkan, this
+ // means that texels are assumed to be laid out in memory in a row-major
+ // order. This allows us to support any memref layout that is a permutation of
+ // the dimensions. Future work will pass an optional image layout to the
+ // rewrite pattern so that we can support optimized target specific tilings.
+ //
+ // The memrefs layout determines the dimension ordering so we need to invert
+ // the map to get the ordering.
+ SmallVector<Value> indices = adaptor.getIndices();
+ auto map = loadOp.getMemRefType().getLayout().getAffineMap();
+ if (!map.isPermutation())
+ return rewriter.notifyMatchFailure(
----------------
IgWod-IMG wrote:
Is there a negative test covering that?
https://github.com/llvm/llvm-project/pull/160495
More information about the Mlir-commits
mailing list