Lines Matching refs:bits
258 constexpr T GetIntLimit(size_t bits) { in GetIntLimit() argument
259 DCHECK_NE(bits, 0u); in GetIntLimit()
260 DCHECK_LT(bits, BitSizeOf<T>()); in GetIntLimit()
261 return static_cast<T>(1) << (bits - 1); in GetIntLimit()
305 constexpr T MaxInt(size_t bits) { in MaxInt() argument
306 DCHECK(std::is_unsigned<T>::value || bits > 0u) << "bits cannot be zero for signed."; in MaxInt()
307 DCHECK_LE(bits, BitSizeOf<T>()); in MaxInt()
309 return bits == BitSizeOf<T>() in MaxInt()
312 ? ((bits == 1u) ? 0 : static_cast<T>(MaxInt<unsigned_type>(bits - 1))) in MaxInt()
313 : static_cast<T>(UINT64_C(1) << bits) - static_cast<T>(1); in MaxInt()
317 constexpr T MinInt(size_t bits) { in MinInt() argument
318 DCHECK(std::is_unsigned<T>::value || bits > 0) << "bits cannot be zero for signed."; in MinInt()
319 DCHECK_LE(bits, BitSizeOf<T>()); in MinInt()
320 return bits == BitSizeOf<T>() in MinInt()
323 ? ((bits == 1u) ? -1 : static_cast<T>(-1) - MaxInt<T>(bits)) in MinInt()
391 inline static constexpr std::make_unsigned_t<T> MaskLeastSignificant(size_t bits) { in MaskLeastSignificant() argument
392 DCHECK_GE(BitSizeOf<T>(), bits) << "Bits out of range for type T"; in MaskLeastSignificant()
394 if (bits >= BitSizeOf<T>()) { in MaskLeastSignificant()
398 return static_cast<unsigned_T>((kOne << bits) - kOne); in MaskLeastSignificant()