Lines Matching refs:BitMask
119 // for (int i : BitMask<uint32_t, 16>(0x5)) -> yields 0, 2
120 // for (int i : BitMask<uint64_t, 8, 3>(0x0000000080800000)) -> yields 2, 3
122 class BitMask {
129 using iterator = BitMask;
130 using const_iterator = BitMask;
132 explicit BitMask(T mask) : mask_(mask) {}
133 BitMask& operator++() {
146 BitMask begin() const { return *this; }
147 BitMask end() const { return BitMask(0); }
161 friend bool operator==(const BitMask& a, const BitMask& b) {
164 friend bool operator!=(const BitMask& a, const BitMask& b) {
246 BitMask<uint32_t, kWidth> Match(h2_t hash) const {
248 return BitMask<uint32_t, kWidth>(
253 BitMask<uint32_t, kWidth> MatchEmpty() const {
256 return BitMask<uint32_t, kWidth>(
264 BitMask<uint32_t, kWidth> MatchEmptyOrDeleted() const {
266 return BitMask<uint32_t, kWidth>(
302 BitMask<uint32_t, kWidth> Match(h2_t hash) const {
309 return BitMask<uint32_t, kWidth>(mask);
313 BitMask<uint32_t, kWidth> MatchEmpty() const {
318 BitMask<uint32_t, kWidth> MatchEmptyOrDeleted() const {
319 return BitMask<uint32_t, kWidth>(MatchEmptyOrDeletedMask());
362 BitMask<uint64_t, kWidth, 3> Match(h2_t hash) const {
377 return BitMask<uint64_t, kWidth, 3>((x - kLsbs) & ~x & kMsbs);
381 BitMask<uint64_t, kWidth, 3> MatchEmpty() const {
382 return BitMask<uint64_t, kWidth, 3>((ctrl & (~ctrl << 6)) & kMsbs);
386 BitMask<uint64_t, kWidth, 3> MatchEmptyOrDeleted() const {
387 return BitMask<uint64_t, kWidth, 3>((ctrl & (~ctrl << 7)) & kMsbs);