From aa58281979710a1cee6f1635dc1074c4dfc44650 Mon Sep 17 00:00:00 2001 From: Matthias Springer Date: Tue, 4 May 2021 10:43:10 +0900 Subject: [PATCH] [mlir] Fix bug in TransferOpReduceRank when all dims are broadcasts TransferReadOps that are a scalar read + broadcast are handled by TransferReadToVectorLoadLowering. Differential Revision: https://reviews.llvm.org/D101808 --- mlir/lib/Dialect/Vector/VectorTransforms.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mlir/lib/Dialect/Vector/VectorTransforms.cpp b/mlir/lib/Dialect/Vector/VectorTransforms.cpp index 2c8b3379..3804295 100644 --- a/mlir/lib/Dialect/Vector/VectorTransforms.cpp +++ b/mlir/lib/Dialect/Vector/VectorTransforms.cpp @@ -2970,6 +2970,9 @@ struct TransferOpReduceRank : public OpRewritePattern { return failure(); SmallVector newShape = llvm::to_vector<4>( originalVecType.getShape().take_back(reducedShapeRank)); + // Vector rank cannot be zero. Handled by TransferReadToVectorLoadLowering. + if (newShape.empty()) + return failure(); VectorType newReadType = VectorType::get(newShape, originalVecType.getElementType()); ArrayAttr newInBounds = -- 2.7.4