[Mlir-commits] [mlir] [MLIR][XeGPU] make offsets optional for create_nd_tdesc (PR #148335)
Chao Chen
llvmlistbot at llvm.org
Wed Jul 16 07:47:27 PDT 2025
================
@@ -163,7 +174,26 @@ def XeGPU_CreateNdDescOp: XeGPU_Op<"create_nd_tdesc", [Pure, ViewLikeOpInterface
}
ArrayRef<int64_t> getStaticOffsets(){
- return getConstOffsets();
+ auto attr = getConstOffsetsAttr();
+
+ if (attr)
+ return attr;
+
+ auto memrefType = llvm::dyn_cast<MemRefType>(getSourceType());
+ int rank = 0;
+ if (memrefType)
+ //use source memref's rank, as source memref rank may be higher
+ rank = memrefType.getRank();
+ else
+ //nd_tdesc created from ui64, use nd_tdesc's rank
+ rank = getMixedSizes().size();
----------------
chencha3 wrote:
nit: it is not nd_tdesc's rank, it is the rank of Shape. It is not necessary to differentiate between memrefType and else, since it is handled in `getMixedSizes()`. It is an abstraction interface returns the shape of the memory, regardless of it is specified by a MemrefType or via the shape/stride parameter.
https://github.com/llvm/llvm-project/pull/148335
More information about the Mlir-commits
mailing list