[Mlir-commits] [mlir] [mlir][arith] Fix SelectOp unsafe int range inference with uninitialized range case (PR #173716)

Krzysztof Drewniak llvmlistbot at llvm.org
Thu Jan 8 14:15:29 PST 2026


================
@@ -329,7 +329,13 @@ void arith::SelectOp::inferResultRangesFromOptional(
       setResultRange(getResult(), trueCase);
     return;
   }
-  setResultRange(getResult(), IntegerValueRange::join(trueCase, falseCase));
+
+  // When one of the ranges is uninitialized, set the whole range to max
+  // otherwise the result will ignore the uninitialized range.
+  if (trueCase.isUninitialized() || falseCase.isUninitialized())
----------------
krzysz00 wrote:

... but yeah, there probably should be a debug assert checking that the integer range inference methods called the relevant callback for all results that could have their result ranges inferred.

https://github.com/llvm/llvm-project/pull/173716


More information about the Mlir-commits mailing list