Lines Matching refs:value

64 inline constexpr uint32_t CountLeadingZeros(T value)
67 static_assert(std::is_integral<T>::value, "T must be integral");
68 static_assert(std::is_unsigned<T>::value, "T must be unsigned");
71 if (value == 0) {
75 return __builtin_clzll(static_cast<uint64_t>(value));
78 return __builtin_clz(static_cast<uint32_t>(value)) - (32 - std::numeric_limits<T>::digits);
81 inline constexpr uint32_t CountLeadingZeros32(uint32_t value)
83 return CountLeadingZeros(value);
86 inline constexpr uint32_t CountLeadingZeros64(uint64_t value)
88 return CountLeadingZeros(value);
91 inline constexpr uint32_t CountLeadingOnes32(uint32_t value)
93 return CountLeadingZeros(~value);
96 inline constexpr uint32_t CountLeadingOnes64(uint64_t value)
98 return CountLeadingZeros(~value);
102 inline constexpr uint32_t CountTrailingZeros(T value)
105 static_assert(std::is_integral<T>::value, "T must be integral");
106 static_assert(std::is_unsigned<T>::value, "T must be unsigned");
109 if (value == 0) {
113 return __builtin_ctzll(static_cast<uint64_t>(value));
115 return __builtin_ctz(static_cast<uint32_t>(value));
118 inline constexpr unsigned CountTrailingZeros32(uint32_t value)
120 return CountTrailingZeros(value);
123 inline constexpr unsigned CountTrailingZeros64(uint64_t value)
125 return CountTrailingZeros(value);
128 inline constexpr unsigned CountTrailingOnes32(uint32_t value)
130 return CountTrailingZeros(~value);
133 inline constexpr unsigned CountTrailingOnes64(uint64_t value)
135 return CountTrailingZeros(~value);
156 static_assert(std::is_integral<T>::value, "T must be integral");