|
template<typename T > |
std::size_t | llvm::countTrailingZeros (T Val, ZeroBehavior ZB=ZB_Width) |
| Count number of 0's from the least significant bit to the most stopping at the first 1. More...
|
|
template<typename T > |
std::size_t | llvm::countLeadingZeros (T Val, ZeroBehavior ZB=ZB_Width) |
| Count number of 0's from the most significant bit to the least stopping at the first 1. More...
|
|
template<typename T > |
T | llvm::findFirstSet (T Val, ZeroBehavior ZB=ZB_Max) |
| Get the index of the first set bit starting from the least significant bit. More...
|
|
template<typename T > |
T | llvm::maskTrailingOnes (unsigned N) |
| Create a bitmask with the N right-most bits set to 1, and all other bits set to 0. More...
|
|
template<typename T > |
T | llvm::maskLeadingOnes (unsigned N) |
| Create a bitmask with the N left-most bits set to 1, and all other bits set to 0. More...
|
|
template<typename T > |
T | llvm::maskTrailingZeros (unsigned N) |
| Create a bitmask with the N right-most bits set to 0, and all other bits set to 1. More...
|
|
template<typename T > |
T | llvm::maskLeadingZeros (unsigned N) |
| Create a bitmask with the N left-most bits set to 0, and all other bits set to 1. More...
|
|
template<typename T > |
T | llvm::findLastSet (T Val, ZeroBehavior ZB=ZB_Max) |
| Get the index of the last set bit starting from the least significant bit. More...
|
|
template<typename T > |
T | llvm::reverseBits (T Val) |
| Reverse the bits in Val . More...
|
|
constexpr uint32_t | llvm::Hi_32 (uint64_t Value) |
| Return the high 32 bits of a 64 bit value. More...
|
|
constexpr uint32_t | llvm::Lo_32 (uint64_t Value) |
| Return the low 32 bits of a 64 bit value. More...
|
|
constexpr uint64_t | llvm::Make_64 (uint32_t High, uint32_t Low) |
| Make a 64-bit integer from a high / low pair of 32-bit integers. More...
|
|
template<unsigned N> |
constexpr bool | llvm::isInt (int64_t x) |
| Checks if an integer fits into the given bit width. More...
|
|
template<> |
constexpr bool | llvm::isInt< 8 > (int64_t x) |
|
template<> |
constexpr bool | llvm::isInt< 16 > (int64_t x) |
|
template<> |
constexpr bool | llvm::isInt< 32 > (int64_t x) |
|
template<unsigned N, unsigned S> |
constexpr bool | llvm::isShiftedInt (int64_t x) |
| Checks if a signed integer is an N bit number shifted left by S. More...
|
|
template<unsigned N> |
constexpr std::enable_if<(N< 64), bool >::type | llvm::isUInt (uint64_t X) |
| Checks if an unsigned integer fits into the given bit width. More...
|
|
template<unsigned N> |
constexpr bool ::type | llvm::isUInt (uint64_t X) |
|
template<> |
constexpr bool | llvm::isUInt< 8 > (uint64_t x) |
|
template<> |
constexpr bool | llvm::isUInt< 16 > (uint64_t x) |
|
template<> |
constexpr bool | llvm::isUInt< 32 > (uint64_t x) |
|
template<unsigned N, unsigned S> |
constexpr bool | llvm::isShiftedUInt (uint64_t x) |
| Checks if a unsigned integer is an N bit number shifted left by S. More...
|
|
uint64_t | llvm::maxUIntN (uint64_t N) |
| Gets the maximum value for a N-bit unsigned integer. More...
|
|
int64_t | llvm::minIntN (int64_t N) |
| Gets the minimum value for a N-bit signed integer. More...
|
|
int64_t | llvm::maxIntN (int64_t N) |
| Gets the maximum value for a N-bit signed integer. More...
|
|
bool | llvm::isUIntN (unsigned N, uint64_t x) |
| Checks if an unsigned integer fits into the given (dynamic) bit width. More...
|
|
bool | llvm::isIntN (unsigned N, int64_t x) |
| Checks if an signed integer fits into the given (dynamic) bit width. More...
|
|
constexpr bool | llvm::isMask_32 (uint32_t Value) |
| Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (32 bit version). More...
|
|
constexpr bool | llvm::isMask_64 (uint64_t Value) |
| Return true if the argument is a non-empty sequence of ones starting at the least significant bit with the remainder zero (64 bit version). More...
|
|
constexpr bool | llvm::isShiftedMask_32 (uint32_t Value) |
| Return true if the argument contains a non-empty sequence of ones with the remainder zero (32 bit version.) Ex. More...
|
|
constexpr bool | llvm::isShiftedMask_64 (uint64_t Value) |
| Return true if the argument contains a non-empty sequence of ones with the remainder zero (64 bit version.) More...
|
|
constexpr bool | llvm::isPowerOf2_32 (uint32_t Value) |
| Return true if the argument is a power of two > 0. More...
|
|
constexpr bool | llvm::isPowerOf2_64 (uint64_t Value) |
| Return true if the argument is a power of two > 0 (64 bit edition.) More...
|
|
uint16_t | llvm::ByteSwap_16 (uint16_t Value) |
| Return a byte-swapped representation of the 16-bit argument. More...
|
|
uint32_t | llvm::ByteSwap_32 (uint32_t Value) |
| Return a byte-swapped representation of the 32-bit argument. More...
|
|
uint64_t | llvm::ByteSwap_64 (uint64_t Value) |
| Return a byte-swapped representation of the 64-bit argument. More...
|
|
template<typename T > |
std::size_t | llvm::countLeadingOnes (T Value, ZeroBehavior ZB=ZB_Width) |
| Count the number of ones from the most significant bit to the first zero bit. More...
|
|
template<typename T > |
std::size_t | llvm::countTrailingOnes (T Value, ZeroBehavior ZB=ZB_Width) |
| Count the number of ones from the least significant bit to the first zero bit. More...
|
|
template<typename T > |
unsigned | llvm::countPopulation (T Value) |
| Count the number of set bits in a value. More...
|
|
double | llvm::Log2 (double Value) |
| Return the log base 2 of the specified value. More...
|
|
unsigned | llvm::Log2_32 (uint32_t Value) |
| Return the floor log base 2 of the specified value, -1 if the value is zero. More...
|
|
unsigned | llvm::Log2_64 (uint64_t Value) |
| Return the floor log base 2 of the specified value, -1 if the value is zero. More...
|
|
unsigned | llvm::Log2_32_Ceil (uint32_t Value) |
| Return the ceil log base 2 of the specified value, 32 if the value is zero. More...
|
|
unsigned | llvm::Log2_64_Ceil (uint64_t Value) |
| Return the ceil log base 2 of the specified value, 64 if the value is zero. More...
|
|
uint64_t | llvm::GreatestCommonDivisor64 (uint64_t A, uint64_t B) |
| Return the greatest common divisor of the values using Euclid's algorithm. More...
|
|
double | llvm::BitsToDouble (uint64_t Bits) |
| This function takes a 64-bit integer and returns the bit equivalent double. More...
|
|
float | llvm::BitsToFloat (uint32_t Bits) |
| This function takes a 32-bit integer and returns the bit equivalent float. More...
|
|
uint64_t | llvm::DoubleToBits (double Double) |
| This function takes a double and returns the bit equivalent 64-bit integer. More...
|
|
uint32_t | llvm::FloatToBits (float Float) |
| This function takes a float and returns the bit equivalent 32-bit integer. More...
|
|
constexpr uint64_t | llvm::MinAlign (uint64_t A, uint64_t B) |
| A and B are either alignments or offsets. More...
|
|
uintptr_t | llvm::alignAddr (const void *Addr, size_t Alignment) |
| Aligns Addr to Alignment bytes, rounding up. More...
|
|
size_t | llvm::alignmentAdjustment (const void *Ptr, size_t Alignment) |
| Returns the necessary adjustment for aligning Ptr to Alignment bytes, rounding up. More...
|
|
uint64_t | llvm::NextPowerOf2 (uint64_t A) |
| Returns the next power of two (in 64-bits) that is strictly greater than A. More...
|
|
uint64_t | llvm::PowerOf2Floor (uint64_t A) |
| Returns the power of two which is less than or equal to the given value. More...
|
|
uint64_t | llvm::PowerOf2Ceil (uint64_t A) |
| Returns the power of two which is greater than or equal to the given value. More...
|
|
uint64_t | llvm::alignTo (uint64_t Value, uint64_t Align, uint64_t Skew=0) |
| Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align . More...
|
|
template<uint64_t Align> |
constexpr uint64_t | llvm::alignTo (uint64_t Value) |
| Returns the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align . More...
|
|
uint64_t | llvm::divideCeil (uint64_t Numerator, uint64_t Denominator) |
| Returns the integer ceil(Numerator / Denominator). More...
|
|
uint64_t | llvm::alignDown (uint64_t Value, uint64_t Align, uint64_t Skew=0) |
| Returns the largest uint64_t less than or equal to Value and is Skew mod Align . More...
|
|
uint64_t | llvm::OffsetToAlignment (uint64_t Value, uint64_t Align) |
| Returns the offset to the next integer (mod 2**64) that is greater than or equal to Value and is a multiple of Align . More...
|
|
template<unsigned B> |
constexpr int32_t | llvm::SignExtend32 (uint32_t X) |
| Sign-extend the number in the bottom B bits of X to a 32-bit integer. More...
|
|
int32_t | llvm::SignExtend32 (uint32_t X, unsigned B) |
| Sign-extend the number in the bottom B bits of X to a 32-bit integer. More...
|
|
template<unsigned B> |
constexpr int64_t | llvm::SignExtend64 (uint64_t x) |
| Sign-extend the number in the bottom B bits of X to a 64-bit integer. More...
|
|
int64_t | llvm::SignExtend64 (uint64_t X, unsigned B) |
| Sign-extend the number in the bottom B bits of X to a 64-bit integer. More...
|
|
template<typename T > |
std::enable_if< std::is_unsigned< T >::value, T >::type | llvm::AbsoluteDifference (T X, T Y) |
| Subtract two unsigned integers, X and Y, of type T and return the absolute value of the result. More...
|
|
template<typename T > |
std::enable_if< std::is_unsigned< T >::value, T >::type | llvm::SaturatingAdd (T X, T Y, bool *ResultOverflowed=nullptr) |
| Add two unsigned integers, X and Y, of type T. More...
|
|
template<typename T > |
std::enable_if< std::is_unsigned< T >::value, T >::type | llvm::SaturatingMultiply (T X, T Y, bool *ResultOverflowed=nullptr) |
| Multiply two unsigned integers, X and Y, of type T. More...
|
|
template<typename T > |
std::enable_if< std::is_unsigned< T >::value, T >::type | llvm::SaturatingMultiplyAdd (T X, T Y, T A, bool *ResultOverflowed=nullptr) |
| Multiply two unsigned integers, X and Y, and add the unsigned integer, A to the product. More...
|
|