From cadf450e175fa6b65e28dcbb1f41d9c1bcf6b85a Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Fri, 13 Dec 2013 22:00:19 +0000 Subject: Remove APInt::extractBit since it is already implemented via operator[]. Change tests for extractBit to test operator[]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197277 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/APInt.h | 5 +---- lib/Support/APInt.cpp | 8 -------- unittests/ADT/APIntTest.cpp | 6 +++--- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/include/llvm/ADT/APInt.h b/include/llvm/ADT/APInt.h index 2bb5c3e2a1..8bfdcbfa36 100644 --- a/include/llvm/ADT/APInt.h +++ b/include/llvm/ADT/APInt.h @@ -1244,9 +1244,6 @@ public: /// as "bitPosition". void flipBit(unsigned bitPosition); - /// \brief Returns true if the bit in bitPosition is set. - bool extractBit(unsigned bitPosition) const; - /// @} /// \name Value Characterization Functions /// @{ @@ -1517,7 +1514,7 @@ public: // UINT32_MAX. Finally extractBit of MSB - 1 will be UINT32_MAX implying // that we get BitWidth - 1. unsigned lg = logBase2(); - return lg + unsigned(extractBit(std::min(lg - 1, BitWidth - 1))); + return lg + unsigned((*this)[std::min(lg - 1, BitWidth - 1)]); } /// \returns the log base 2 of this APInt if its an exact power of two, -1 diff --git a/lib/Support/APInt.cpp b/lib/Support/APInt.cpp index 731c8cc9ca..89f96bd577 100644 --- a/lib/Support/APInt.cpp +++ b/lib/Support/APInt.cpp @@ -607,14 +607,6 @@ void APInt::flipBit(unsigned bitPosition) { else setBit(bitPosition); } -bool APInt::extractBit(unsigned bitPosition) const { - assert(bitPosition < BitWidth && "Out of the bit-width range!"); - if (isSingleWord()) - return VAL & maskBit(bitPosition); - else - return pVal[whichWord(bitPosition)] & maskBit(bitPosition); -} - unsigned APInt::getBitsNeeded(StringRef str, uint8_t radix) { assert(!str.empty() && "Invalid string length"); assert((radix == 10 || radix == 8 || radix == 16 || radix == 2 || diff --git a/unittests/ADT/APIntTest.cpp b/unittests/ADT/APIntTest.cpp index 36cbd868a2..5043aa0eec 100644 --- a/unittests/ADT/APIntTest.cpp +++ b/unittests/ADT/APIntTest.cpp @@ -598,13 +598,13 @@ TEST(APIntTest, tcDecrement) { } } -TEST(APIntTest, extractBit) { +TEST(APIntTest, arrayAccess) { // Single word check. uint64_t E1 = 0x2CA7F46BF6569915ULL; APInt A1(64, E1); for (unsigned i = 0, e = 64; i < e; ++i) { EXPECT_EQ(bool(E1 & (1ULL << i)), - A1.extractBit(i)); + A1[i]); } // Multiword check. @@ -618,7 +618,7 @@ TEST(APIntTest, extractBit) { for (unsigned i = 0; i < 4; ++i) { for (unsigned j = 0; j < integerPartWidth; ++j) { EXPECT_EQ(bool(E2[i] & (1ULL << j)), - A2.extractBit(i*integerPartWidth + j)); + A2[i*integerPartWidth + j]); } } } -- cgit v1.2.3