[Mlir-commits] [mlir] [mlir][linalg] Enable scalable vectorization of linalg.unpack (PR #149293)
Han-Chung Wang
llvmlistbot at llvm.org
Mon Jul 28 11:55:01 PDT 2025
================
@@ -2067,24 +2099,45 @@ vectorizeDynamicLinalgOpPrecondition(linalg::LinalgOp op,
return success();
}
-/// Need to check if the inner-tiles are static/constant.
+//// This hook considers two cases:
+/// (1) If the input-vector-sizes are empty, then the vector sizes will be
+/// infered. This is only possible when all shapes are static.
+/// (2) If the input-vector-sizes are non-empty (i.e. user provided), then
+/// carry out basic sanity-checking.
static LogicalResult
vectorizeUnPackOpPrecondition(linalg::UnPackOp unpackOp,
ArrayRef<int64_t> inputVectorSizes) {
+ // If there are no input vector sizes and all shapes are static, there is
+ // nothing left to check.
+ if (inputVectorSizes.empty() && unpackOp.getDestType().hasStaticShape() &&
+ unpackOp.getSourceType().hasStaticShape())
+ return success();
- if (llvm::any_of(unpackOp.getInnerTiles(), [](OpFoldResult res) {
- return !getConstantIntValue(res).has_value();
- })) {
- LDBG("Inner-tiles must be constant: " << unpackOp << "\n");
+ // The input vector sizes must be equal to:
+ // * read-vector-rank + write-vector-rank
+ if (!inputVectorSizes.empty()) {
+ if (inputVectorSizes.size() !=
+ unpackOp.getDestRank() + unpackOp.getSourceRank()) {
----------------
hanhanW wrote:
bump, I think the comment is not addressed?
https://github.com/llvm/llvm-project/pull/149293
More information about the Mlir-commits
mailing list