[Mlir-commits] [mlir] [mlir] Introduce `trailingNDimsContiguous` for MemRefs (PR #78247)
Diego Caballero
llvmlistbot at llvm.org
Tue Jan 23 08:31:21 PST 2024
================
@@ -967,3 +967,32 @@ bool mlir::isLastMemrefDimUnitStride(MemRefType type) {
auto successStrides = getStridesAndOffset(type, strides, offset);
return succeeded(successStrides) && (strides.empty() || strides.back() == 1);
}
+
+bool mlir::trailingNDimsContiguous(MemRefType type, int64_t n) {
+ if (!isLastMemrefDimUnitStride(type))
+ return false;
+
+ auto memrefShape = type.getShape().take_back(n);
+ int64_t offset;
+ SmallVector<int64_t> stridesFull;
+ if (!succeeded(getStridesAndOffset(type, stridesFull, offset)))
----------------
dcaballe wrote:
Is the memref layout being taken into account anywhere? That's one of the differences between vector and memref.
https://github.com/llvm/llvm-project/pull/78247
More information about the Mlir-commits
mailing list