summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ADT/APIntTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/ADT/APIntTest.cpp')
-rw-r--r--llvm/unittests/ADT/APIntTest.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/llvm/unittests/ADT/APIntTest.cpp b/llvm/unittests/ADT/APIntTest.cpp
index f5f6594b836..64560669342 100644
--- a/llvm/unittests/ADT/APIntTest.cpp
+++ b/llvm/unittests/ADT/APIntTest.cpp
@@ -1263,8 +1263,21 @@ TEST(APIntTest, StringBitsNeeded10) {
EXPECT_EQ(6U, APInt::getBitsNeeded("-19", 10));
EXPECT_EQ(6U, APInt::getBitsNeeded("-20", 10));
- // TODO: INT_MIN cases need 1 less bit (PR40897)
- EXPECT_EQ(9U, APInt::getBitsNeeded("-128", 10));
+ EXPECT_EQ(1U, APInt::getBitsNeeded("-1", 10));
+ EXPECT_EQ(2U, APInt::getBitsNeeded("-2", 10));
+ EXPECT_EQ(3U, APInt::getBitsNeeded("-4", 10));
+ EXPECT_EQ(4U, APInt::getBitsNeeded("-8", 10));
+ EXPECT_EQ(5U, APInt::getBitsNeeded("-16", 10));
+ EXPECT_EQ(6U, APInt::getBitsNeeded("-23", 10));
+ EXPECT_EQ(6U, APInt::getBitsNeeded("-32", 10));
+ EXPECT_EQ(7U, APInt::getBitsNeeded("-64", 10));
+ EXPECT_EQ(8U, APInt::getBitsNeeded("-127", 10));
+ EXPECT_EQ(8U, APInt::getBitsNeeded("-128", 10));
+ EXPECT_EQ(9U, APInt::getBitsNeeded("-255", 10));
+ EXPECT_EQ(9U, APInt::getBitsNeeded("-256", 10));
+ EXPECT_EQ(10U, APInt::getBitsNeeded("-512", 10));
+ EXPECT_EQ(11U, APInt::getBitsNeeded("-1024", 10));
+ EXPECT_EQ(12U, APInt::getBitsNeeded("-1025", 10));
}
TEST(APIntTest, StringBitsNeeded16) {
OpenPOWER on IntegriCloud