[mlir][Vector] NFC - Fail gracefully on size mismatch instead of assert
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Wed, 15 Feb 2023 00:04:05 +0000 (16:04 -0800)
committerNicolas Vasilache <nicolas.vasilache@gmail.com>
Wed, 15 Feb 2023 00:49:41 +0000 (16:49 -0800)
mlir/lib/Dialect/Vector/IR/VectorOps.cpp

index 8073757..02cee8c 100644 (file)
@@ -4295,6 +4295,11 @@ public:
     }
 
     // Fail if tensor::ExtractSliceOp and tensor::InsertSliceOp sizes differ.
+    if (insertOp.getMixedSizes().size() != extractOp.getMixedSizes().size()) {
+      return rewriter.notifyMatchFailure(
+          insertOp, "InsertSliceOp and ExtractSliceOp ranks differ");
+    }
+
     for (auto [insertSize, extractSize] :
          llvm::zip_equal(insertOp.getMixedSizes(), extractOp.getMixedSizes())) {
       if (!isEqualConstantIntOrValue(insertSize, extractSize)) {
@@ -5343,8 +5348,8 @@ void MaskOp::build(
 }
 
 void MaskOp::build(
-    OpBuilder &builder, OperationState &result, TypeRange resultTypes, Value mask,
-    Value passthru, Operation *maskableOp,
+    OpBuilder &builder, OperationState &result, TypeRange resultTypes,
+    Value mask, Value passthru, Operation *maskableOp,
     function_ref<void(OpBuilder &, Operation *)> maskRegionBuilder) {
   build(builder, result, mask, maskableOp, maskRegionBuilder);
   if (passthru)