summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/IR/ConstantRange.cpp2
-rw-r--r--llvm/unittests/IR/ConstantRangeTest.cpp10
2 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/IR/ConstantRange.cpp b/llvm/lib/IR/ConstantRange.cpp
index 7e2c6727703..af71fd3ac65 100644
--- a/llvm/lib/IR/ConstantRange.cpp
+++ b/llvm/lib/IR/ConstantRange.cpp
@@ -974,8 +974,6 @@ ConstantRange
ConstantRange::udiv(const ConstantRange &RHS) const {
if (isEmptySet() || RHS.isEmptySet() || RHS.getUnsignedMax().isNullValue())
return getEmpty();
- if (RHS.isFullSet())
- return getFull();
APInt Lower = getUnsignedMin().udiv(RHS.getUnsignedMax());
diff --git a/llvm/unittests/IR/ConstantRangeTest.cpp b/llvm/unittests/IR/ConstantRangeTest.cpp
index 692d151778e..b9d8fe071e3 100644
--- a/llvm/unittests/IR/ConstantRangeTest.cpp
+++ b/llvm/unittests/IR/ConstantRangeTest.cpp
@@ -821,6 +821,16 @@ TEST_F(ConstantRangeTest, UDiv) {
EXPECT_EQ(Some.udiv(Some), ConstantRange(APInt(16, 0), APInt(16, 0x111)));
EXPECT_EQ(Some.udiv(Wrap), ConstantRange(APInt(16, 0), APInt(16, 0xaaa)));
EXPECT_EQ(Wrap.udiv(Wrap), Full);
+
+
+ ConstantRange Zero(APInt(16, 0));
+ EXPECT_EQ(Zero.udiv(One), Zero);
+ EXPECT_EQ(Zero.udiv(Full), Zero);
+
+ EXPECT_EQ(ConstantRange(APInt(16, 0), APInt(16, 99)).udiv(Full),
+ ConstantRange(APInt(16, 0), APInt(16, 99)));
+ EXPECT_EQ(ConstantRange(APInt(16, 10), APInt(16, 99)).udiv(Full),
+ ConstantRange(APInt(16, 0), APInt(16, 99)));
}
TEST_F(ConstantRangeTest, URem) {
OpenPOWER on IntegriCloud