diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/IR/ConstantRange.cpp | 2 | ||||
| -rw-r--r-- | llvm/unittests/IR/ConstantRangeTest.cpp | 10 | 
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) {  | 

