diff --git a/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td b/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td --- a/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td +++ b/mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td @@ -2036,6 +2036,8 @@ `:` type($target) }]; + let hasVerifier = 1; + let extraClassDeclaration = [{ // TODO: applyToOne. ::mlir::DiagnosedSilenceableFailure apply( diff --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp --- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp +++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp @@ -3065,6 +3065,14 @@ return getMixedValues(getStaticVectorSizes(), getVectorSizes(), b); } +LogicalResult transform::MaskedVectorizeOp::verify() { + if (getStaticVectorSizes().size() != getScalableSizes().size()) + return emitOpError("expected same number of vector sizes (") + << getStaticVectorSizes().size() << ") and scalable sizes (" + << getScalableSizes().size() << ")"; + return success(); +} + //===----------------------------------------------------------------------===// // HoistRedundantVectorTransfersOp //===----------------------------------------------------------------------===//