diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp --- a/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp @@ -373,8 +373,9 @@ // Contiguity check is valid on tensors only. if (!sourceType) return failure(); - if (vectorType.getRank() == 1 && sourceType.getRank() == 1) - // Already 1D, nothing to do. + if ((vectorType.getRank() == 0 && sourceType.getRank() == 0) || + (vectorType.getRank() == 1 && sourceType.getRank() == 1)) + // Already 0D/1D, nothing to do. return failure(); if (!isStaticShapeAndContiguousRowMajor(sourceType)) return failure(); @@ -425,8 +426,9 @@ // Contiguity check is valid on tensors only. if (!sourceType) return failure(); - if (vectorType.getRank() == 1 && sourceType.getRank() == 1) - // Already 1D, nothing to do. + if ((vectorType.getRank() == 0 && sourceType.getRank() == 0) || + (vectorType.getRank() == 1 && sourceType.getRank() == 1)) + // Already 0D/1D, nothing to do. return failure(); if (!isStaticShapeAndContiguousRowMajor(sourceType)) return failure();