|
| 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...
|
| |