LLVM 22.0.0git
llvm::BitmaskEnumDetail Namespace Reference

Functions

template<typename E>
constexpr std::underlying_type_t< EMask ()
 Get a bitmask with 1s in all places up to the high-order bit of E's largest value.
template<typename E>
constexpr std::underlying_type_t< EUnderlying (E Val)
 Check that Val is in range for E, and return Val cast to E's underlying type.
constexpr unsigned bitWidth (uint64_t Value)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr bool operator! (E Val)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr bool any (E Val)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator~ (E Val)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator| (E LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator& (E LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator^ (E LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator<< (E LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
constexpr E operator>> (E LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
Eoperator|= (E &LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
Eoperator&= (E &LHS, E RHS)
template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
Eoperator^= (E &LHS, E RHS)
template<typename e, typename = std::enable_if_t<is_bitmask_enum<e>::value>>
e & operator<<= (e &lhs, e rhs)
template<typename e, typename = std::enable_if_t<is_bitmask_enum<e>::value>>
e & operator>>= (e &lhs, e rhs)

Function Documentation

◆ any()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
bool llvm::BitmaskEnumDetail::any ( E Val)
constexpr

Definition at line 151 of file BitmaskEnum.h.

References E().

◆ bitWidth()

unsigned llvm::BitmaskEnumDetail::bitWidth ( uint64_t Value)
constexpr

Definition at line 141 of file BitmaskEnum.h.

References bitWidth().

Referenced by bitWidth().

◆ Mask()

template<typename E>
std::underlying_type_t< E > llvm::BitmaskEnumDetail::Mask ( )
constexpr

Get a bitmask with 1s in all places up to the high-order bit of E's largest value.

Definition at line 126 of file BitmaskEnum.h.

References llvm::NextPowerOf2().

Referenced by llvm::SelectionDAG::getNode(), operator~(), and Underlying().

◆ operator!()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
bool llvm::BitmaskEnumDetail::operator! ( E Val)
constexpr

Definition at line 146 of file BitmaskEnum.h.

References E().

◆ operator&()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E llvm::BitmaskEnumDetail::operator& ( E LHS,
E RHS )
constexpr

Definition at line 166 of file BitmaskEnum.h.

References E(), LHS, RHS, and Underlying().

◆ operator&=()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E & llvm::BitmaskEnumDetail::operator&= ( E & LHS,
E RHS )

Definition at line 195 of file BitmaskEnum.h.

References E(), LHS, and RHS.

◆ operator<<()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E llvm::BitmaskEnumDetail::operator<< ( E LHS,
E RHS )
constexpr

Definition at line 176 of file BitmaskEnum.h.

References E(), LHS, RHS, and Underlying().

◆ operator<<=()

template<typename e, typename = std::enable_if_t<is_bitmask_enum<e>::value>>
e & llvm::BitmaskEnumDetail::operator<<= ( e & lhs,
e rhs )

Definition at line 207 of file BitmaskEnum.h.

◆ operator>>()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E llvm::BitmaskEnumDetail::operator>> ( E LHS,
E RHS )
constexpr

Definition at line 181 of file BitmaskEnum.h.

References E(), LHS, RHS, and Underlying().

◆ operator>>=()

template<typename e, typename = std::enable_if_t<is_bitmask_enum<e>::value>>
e & llvm::BitmaskEnumDetail::operator>>= ( e & lhs,
e rhs )

Definition at line 213 of file BitmaskEnum.h.

◆ operator^()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E llvm::BitmaskEnumDetail::operator^ ( E LHS,
E RHS )
constexpr

Definition at line 171 of file BitmaskEnum.h.

References E(), LHS, RHS, and Underlying().

◆ operator^=()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E & llvm::BitmaskEnumDetail::operator^= ( E & LHS,
E RHS )

Definition at line 201 of file BitmaskEnum.h.

References E(), LHS, and RHS.

◆ operator|()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E llvm::BitmaskEnumDetail::operator| ( E LHS,
E RHS )
constexpr

Definition at line 161 of file BitmaskEnum.h.

References E(), LHS, RHS, and Underlying().

◆ operator|=()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E & llvm::BitmaskEnumDetail::operator|= ( E & LHS,
E RHS )

Definition at line 189 of file BitmaskEnum.h.

References E(), LHS, and RHS.

◆ operator~()

template<typename E, typename = std::enable_if_t<is_bitmask_enum<E>::value>>
E llvm::BitmaskEnumDetail::operator~ ( E Val)
constexpr

Definition at line 156 of file BitmaskEnum.h.

References E(), Mask(), and Underlying().

◆ Underlying()

template<typename E>
std::underlying_type_t< E > llvm::BitmaskEnumDetail::Underlying ( E Val)
constexpr

Check that Val is in range for E, and return Val cast to E's underlying type.

Definition at line 134 of file BitmaskEnum.h.

References assert(), E(), Mask(), and llvm::to_underlying().

Referenced by operator&(), operator<<(), operator>>(), operator^(), operator|(), and operator~().