mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44296 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8314a0cd0f
commit
9e513acd31
@ -896,10 +896,9 @@ public:
|
|||||||
/// countLeadingZeros - This function is an APInt version of the
|
/// countLeadingZeros - This function is an APInt version of the
|
||||||
/// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number
|
/// countLeadingZeros_{32,64} functions in MathExtras.h. It counts the number
|
||||||
/// of zeros from the most significant bit to the first one bit.
|
/// of zeros from the most significant bit to the first one bit.
|
||||||
/// @returns getNumWords() * APINT_BITS_PER_WORD if the value is zero.
|
/// @returns BitWidth if the value is zero.
|
||||||
/// @returns the number of zeros from the most significant bit to the first
|
/// @returns the number of zeros from the most significant bit to the first
|
||||||
/// one bits.
|
/// one bits.
|
||||||
/// @brief Count the number of leading one bits.
|
|
||||||
uint32_t countLeadingZeros() const;
|
uint32_t countLeadingZeros() const;
|
||||||
|
|
||||||
/// countLeadingOnes - This function counts the number of contiguous 1 bits
|
/// countLeadingOnes - This function counts the number of contiguous 1 bits
|
||||||
@ -911,8 +910,8 @@ public:
|
|||||||
|
|
||||||
/// countTrailingZeros - This function is an APInt version of the
|
/// countTrailingZeros - This function is an APInt version of the
|
||||||
/// countTrailingZoers_{32,64} functions in MathExtras.h. It counts
|
/// countTrailingZoers_{32,64} functions in MathExtras.h. It counts
|
||||||
/// the number of zeros from the least significant bit to the first one bit.
|
/// the number of zeros from the least significant bit to the first set bit.
|
||||||
/// @returns getNumWords() * APINT_BITS_PER_WORD if the value is zero.
|
/// @returns BitWidth if the value is zero.
|
||||||
/// @returns the number of zeros from the least significant bit to the first
|
/// @returns the number of zeros from the least significant bit to the first
|
||||||
/// one bit.
|
/// one bit.
|
||||||
/// @brief Count the number of trailing zero bits.
|
/// @brief Count the number of trailing zero bits.
|
||||||
|
@ -745,7 +745,7 @@ uint32_t APInt::countLeadingZeros() const {
|
|||||||
uint32_t remainder = BitWidth % APINT_BITS_PER_WORD;
|
uint32_t remainder = BitWidth % APINT_BITS_PER_WORD;
|
||||||
if (remainder)
|
if (remainder)
|
||||||
Count -= APINT_BITS_PER_WORD - remainder;
|
Count -= APINT_BITS_PER_WORD - remainder;
|
||||||
return Count;
|
return std::min(Count, BitWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t countLeadingOnes_64(uint64_t V, uint32_t skip) {
|
static uint32_t countLeadingOnes_64(uint64_t V, uint32_t skip) {
|
||||||
|
8
test/Transforms/ConstProp/2007-11-23-cttz.ll
Normal file
8
test/Transforms/ConstProp/2007-11-23-cttz.ll
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
; RUN: llvm-as < %s | opt -constprop | llvm-dis | grep {ret i13 13}
|
||||||
|
; PR1816
|
||||||
|
declare i13 @llvm.cttz.i13(i13)
|
||||||
|
|
||||||
|
define i13 @test() {
|
||||||
|
%X = call i13 @llvm.cttz.i13(i13 0)
|
||||||
|
ret i13 %X
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user