[Mlir-commits] [mlir] [mlir][linalg] Add test for ReduceOp empty-input verifier; remove dead empty-output check (PR #189614)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Tue Mar 31 04:28:22 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-linalg
Author: Mehdi Amini (joker-eph)
<details>
<summary>Changes</summary>
Add a FileCheck test covering the 'expected at least one input' error in ReduceOp::verify(). The companion 'expected at least one output' check was dead code: SameVariadicOperandSize fires first whenever inputs.size() \!= inits.size(), and when both are empty the input check fires first; remove the unreachable branch.
Assisted-by: Claude Code
---
Full diff: https://github.com/llvm/llvm-project/pull/189614.diff
2 Files Affected:
- (modified) mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (-2)
- (modified) mlir/test/Dialect/Linalg/invalid.mlir (+12)
``````````diff
diff --git a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
index e9698365765e7..f9c8589683ba7 100644
--- a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
+++ b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
@@ -1897,8 +1897,6 @@ LogicalResult ReduceOp::verify() {
if (getInputs().empty())
return emitOpError() << "expected at least one input";
- if (getInits().empty())
- return emitOpError() << "expected at least one output";
for (int64_t i = 1; i < getNumDpsInputs(); ++i) {
if (llvm::cast<ShapedType>(getInputs()[i].getType()).getShape() !=
diff --git a/mlir/test/Dialect/Linalg/invalid.mlir b/mlir/test/Dialect/Linalg/invalid.mlir
index d9192cbda14e7..25dba5d11cc77 100644
--- a/mlir/test/Dialect/Linalg/invalid.mlir
+++ b/mlir/test/Dialect/Linalg/invalid.mlir
@@ -2194,3 +2194,15 @@ func.func @reduce_unequal_input_output_count(
%ext = tensor.extract %reduced[] : tensor<i32>
return %ext : i32
}
+
+// -----
+
+func.func @reduce_no_inputs() {
+ // expected-error @+1 {{'linalg.reduce' op expected at least one input}}
+ linalg.reduce
+ dimensions = []
+ () {
+ linalg.yield
+ }
+ func.return
+}
``````````
</details>
https://github.com/llvm/llvm-project/pull/189614
More information about the Mlir-commits
mailing list