struct BitPatterns

Declaration

template <typename T, unsigned int Bits>
struct BitPatterns { /* full declaration omitted */ };

Description

A struct defining useful bit patterns for n-bits integer types.

Declared at: llvm/include/llvm/ADT/Bitfields.h:94

Templates

T
unsigned int Bits

Member Variables

public static const unsigned int TypeBits = sizeof(typename make_unsigned<type-parameter-0-0>::type) * 8
public static const llvm::bitfields_details::BitPatterns:: Unsigned AllZeros = typename make_unsigned<type-parameter-0-0>::type(0)
e.g. with TypeBits == 8 and Bits == 6.
public static const llvm::bitfields_details::BitPatterns:: Unsigned AllOnes = ~ typename make_unsigned<type-parameter-0-0>::type(0)
public static const llvm::bitfields_details::BitPatterns:: Unsigned Umin = AllZeros
public static const llvm::bitfields_details::BitPatterns:: Unsigned Umax = AllOnes >> (TypeBits - Bits)
public static const llvm::bitfields_details::BitPatterns:: Unsigned SignBitMask = typename make_unsigned<type-parameter-0-0>::type(1) << (Bits - 1)
public static const llvm::bitfields_details::BitPatterns:: Unsigned Smax = Umax >> 1U
public static const llvm::bitfields_details::BitPatterns:: Unsigned Smin = ~ Smax
public static const llvm::bitfields_details::BitPatterns:: Unsigned SignExtend = typename make_unsigned<type-parameter-0-0>::type(Smin << 1U)