diff options
Diffstat (limited to 'include/llvm/ADT/APInt.h')
| -rw-r--r-- | include/llvm/ADT/APInt.h | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/include/llvm/ADT/APInt.h b/include/llvm/ADT/APInt.h index e5f0c35534ac9..a1cce6e5fe170 100644 --- a/include/llvm/ADT/APInt.h +++ b/include/llvm/ADT/APInt.h @@ -401,7 +401,11 @@ public:    /// \brief Determine if this is a value of 1.    ///    /// This checks to see if the value of this APInt is one. -  bool isOneValue() const { return getActiveBits() == 1; } +  bool isOneValue() const { +    if (isSingleWord()) +      return U.VAL == 1; +    return countLeadingZerosSlowCase() == BitWidth - 1; +  }    /// \brief Determine if this is the largest unsigned value.    ///  | 
