mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 14:47:00 +00:00
[APInt] Implement operator==(uint64_t) similar to ugt/ult(uint64_t) to remove one of the out of line EqualsSlowCase methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300799 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
25d6dbfc6a
commit
ba583aa026
@ -200,9 +200,6 @@ private:
|
||||
/// out-of-line slow case for operator==
|
||||
bool EqualSlowCase(const APInt &RHS) const LLVM_READONLY;
|
||||
|
||||
/// out-of-line slow case for operator==
|
||||
bool EqualSlowCase(uint64_t Val) const LLVM_READONLY;
|
||||
|
||||
/// out-of-line slow case for countLeadingZeros
|
||||
unsigned countLeadingZerosSlowCase() const LLVM_READONLY;
|
||||
|
||||
@ -1031,9 +1028,7 @@ public:
|
||||
///
|
||||
/// \returns true if *this == Val
|
||||
bool operator==(uint64_t Val) const {
|
||||
if (isSingleWord())
|
||||
return VAL == Val;
|
||||
return EqualSlowCase(Val);
|
||||
return (isSingleWord() || getActiveBits() <= 64) && getZExtValue() == Val;
|
||||
}
|
||||
|
||||
/// \brief Equality comparison.
|
||||
|
@ -364,14 +364,6 @@ bool APInt::EqualSlowCase(const APInt& RHS) const {
|
||||
return std::equal(pVal, pVal + getNumWords(), RHS.pVal);
|
||||
}
|
||||
|
||||
bool APInt::EqualSlowCase(uint64_t Val) const {
|
||||
unsigned n = getActiveBits();
|
||||
if (n <= APINT_BITS_PER_WORD)
|
||||
return pVal[0] == Val;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
bool APInt::ult(const APInt& RHS) const {
|
||||
assert(BitWidth == RHS.BitWidth && "Bit widths must be same for comparison");
|
||||
if (isSingleWord())
|
||||
|
Loading…
Reference in New Issue
Block a user