From: Matthias Springer Date: Tue, 4 May 2021 01:43:10 +0000 (+0900) Subject: [mlir] Fix bug in TransferOpReduceRank when all dims are broadcasts X-Git-Tag: llvmorg-14-init~7720 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aa58281979710a1cee6f1635dc1074c4dfc44650;p=platform%2Fupstream%2Fllvm.git [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 --- 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 =