when !isSingleWord() but getActiveBits() is small,
we were using the pointer value instead of the low
word of the integer value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78821
91177308-0d34-0410-b5e6-
96231b3b80d8
// Handle the simple case where the value is contained in one uint64_t.
if (isSingleWord() || getActiveBits() <= APINT_BITS_PER_WORD) {
if (isSigned) {
- int64_t sext = (int64_t(VAL) << (64-BitWidth)) >> (64-BitWidth);
+ int64_t sext = (int64_t(getWord(0)) << (64-BitWidth)) >> (64-BitWidth);
return double(sext);
} else
- return double(VAL);
+ return double(getWord(0));
}
// Determine if the value is negative.