diff options
-rw-r--r-- | mlir/lib/Interfaces/InferIntRangeInterface.cpp | 3 | ||||
-rw-r--r-- | mlir/test/Dialect/Arith/int-range-interface.mlir | 20 |
2 files changed, 4 insertions, 19 deletions
diff --git a/mlir/lib/Interfaces/InferIntRangeInterface.cpp b/mlir/lib/Interfaces/InferIntRangeInterface.cpp index 9f3e97d..1801e3f 100644 --- a/mlir/lib/Interfaces/InferIntRangeInterface.cpp +++ b/mlir/lib/Interfaces/InferIntRangeInterface.cpp @@ -134,6 +134,9 @@ raw_ostream &mlir::operator<<(raw_ostream &os, const ConstantIntRanges &range) { IntegerValueRange IntegerValueRange::getMaxRange(Value value) { unsigned width = ConstantIntRanges::getStorageBitwidth(value.getType()); + if (width == 0) + return {}; + APInt umin = APInt::getMinValue(width); APInt umax = APInt::getMaxValue(width); APInt smin = width != 0 ? APInt::getSignedMinValue(width) : umin; diff --git a/mlir/test/Dialect/Arith/int-range-interface.mlir b/mlir/test/Dialect/Arith/int-range-interface.mlir index 2128d36..090af3e 100644 --- a/mlir/test/Dialect/Arith/int-range-interface.mlir +++ b/mlir/test/Dialect/Arith/int-range-interface.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -allow-unregistered-dialect -int-range-optimizations -canonicalize %s | FileCheck %s +// RUN: mlir-opt -int-range-optimizations -canonicalize %s | FileCheck %s // CHECK-LABEL: func @add_min_max // CHECK: %[[c3:.*]] = arith.constant 3 : index @@ -1013,21 +1013,3 @@ func.func @zero_trip_loop2() { } return } - -// CHECK-LABEL: @noninteger_operation_result -func.func @noninteger_operation_result(%lb: index, %ub: index, %step: index, %cond: i1) { - %c1_i32 = arith.constant 1 : i32 - - %0 = "some_fp_op"() : () -> f32 - // CHECK: [[OUTS:%.*]]:2 = scf.for - %outs:2 = scf.for %i = %lb to %ub step %step iter_args(%a = %c1_i32, %b = %0) -> (i32, f32) { - %1:2 = "some_op"() : () -> (i32, f32) - scf.yield %1#0, %1#1 : i32, f32 - } - - // CHECK: [[RESULT:%.*]] = arith.select %{{.*}}, %c1_i32, [[OUTS]]#0 - %result = arith.select %cond, %c1_i32, %outs#0 : i32 - // CHECK: "use"([[RESULT]], [[OUTS]]#1) - "use"(%result, %outs#1) : (i32, f32) -> () - return -} |