|
LLVM 22.0.0git
|
This file implements the C++20 <bit> header. More...
#include "llvm/Support/Compiler.h"#include <cstddef>#include <cstdint>#include <limits>#include <type_traits>#include <cstring>#include <machine/endian.h>Go to the source code of this file.
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Enumerations | |
| enum class | llvm::endianness { llvm::big , llvm::little , llvm::native = little } |
Functions | |
| template<typename To, typename From, typename = std::enable_if_t<sizeof(To) == sizeof(From)>, typename = std::enable_if_t<std::is_trivially_constructible<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<From>::value>> | |
| To | llvm::bit_cast (const From &from) noexcept |
| template<typename T, typename = std::enable_if_t<std::is_integral_v<T>>> | |
| constexpr T | llvm::byteswap (T V) noexcept |
| Reverses the bytes in the given integer value V. | |
| template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>> | |
| constexpr bool | llvm::has_single_bit (T Value) noexcept |
| template<typename T> | |
| constexpr int | llvm::popcount (T Value) noexcept |
| Count the number of set bits in a value. | |
| template<typename T> | |
| constexpr int | llvm::countr_zero_constexpr (T Val) |
| Count number of 0's from the least significant bit to the most stopping at the first 1. | |
| template<typename T> | |
| int | llvm::countr_zero (T Val) |
| Count number of 0's from the least significant bit to the most stopping at the first 1. | |
| template<typename T> | |
| int | llvm::countl_zero (T Val) |
| Count number of 0's from the most significant bit to the least stopping at the first 1. | |
| template<typename T> | |
| int | llvm::countl_one (T Value) |
| Count the number of ones from the most significant bit to the first zero bit. | |
| template<typename T> | |
| int | llvm::countr_one (T Value) |
| Count the number of ones from the least significant bit to the first zero bit. | |
| template<typename T> | |
| int | llvm::bit_width (T Value) |
| Returns the number of bits needed to represent Value if Value is nonzero. | |
| template<typename T> | |
| constexpr int | llvm::bit_width_constexpr (T Value) |
| Returns the number of bits needed to represent Value if Value is nonzero. | |
| template<typename T> | |
| T | llvm::bit_floor (T Value) |
| Returns the largest integral power of two no greater than Value if Value is nonzero. | |
| template<typename T> | |
| T | llvm::bit_ceil (T Value) |
| Returns the smallest integral power of two no smaller than Value if Value is nonzero. | |
| template<typename T> | |
| constexpr T | llvm::bit_ceil_constexpr (T Value) |
| Returns the smallest integral power of two no smaller than Value if Value is nonzero. | |
| template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>> | |
| constexpr T | llvm::rotl (T V, int R) |
| template<typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>> | |
| constexpr T | llvm::rotr (T V, int R) |
This file implements the C++20 <bit> header.
Definition in file bit.h.