[Mlir-commits] [mlir] [MLIR] Extend linalg.pack and linalg.unpack to accept memref (PR #167675)
Han-Chung Wang
llvmlistbot at llvm.org
Thu Jan 15 13:48:26 PST 2026
================
@@ -5107,15 +5107,34 @@ static LogicalResult commonVerifierPackAndUnPackOp(OpTy packOrUnPack) {
return llvm::any_of(tiles, isZeroInteger);
};
+ // Verify that the source and destination are ranked types.
+ if (!packOrUnPack.getSourceType().hasRank() ||
+ !packOrUnPack.getDestType().hasRank()) {
+ return op->emitError("expected both source and destination to have rank");
+ }
+
+ // Verify that the Operation does not have mixed tensor/buffer semantics.
+ if (!packOrUnPack.hasPureBufferSemantics() &&
+ !packOrUnPack.hasPureTensorSemantics()) {
+ return op->emitError("mixing tensor and buffer semantics is not allowed");
+ }
+ const unsigned numResults = packOrUnPack.getNumResults();
+ if (packOrUnPack.hasPureTensorSemantics() && numResults != 1) {
+ return op->emitError("expected 1 result, got ") << numResults;
+ }
+ if (packOrUnPack.hasPureBufferSemantics() && numResults != 0) {
+ return op->emitError("expected 0 results, got ") << numResults;
+ }
----------------
hanhanW wrote:
LLVM style nit: do not add braces to simple single statement. Please also check other places in this file.
https://llvm.org/docs/CodingStandards.html#don-t-use-braces-on-simple-single-statement-bodies-of-if-else-loop-statements
https://github.com/llvm/llvm-project/pull/167675
More information about the Mlir-commits
mailing list