pub(crate) struct Group(__m128i);
Expand description
Abstraction over a group of control tags which can be scanned in parallel.
This implementation uses a 128-bit SSE value.
Tuple Fields§
§0: __m128i
Implementations§
Source§impl Group
impl Group
Sourcepub(crate) const fn static_empty() -> &'static [Tag; 16]
pub(crate) const fn static_empty() -> &'static [Tag; 16]
Returns a full group of empty tags, suitable for use as the initial value for an empty hash table.
This is guaranteed to be aligned to the group size.
Sourcepub(crate) unsafe fn load(ptr: *const Tag) -> Self
pub(crate) unsafe fn load(ptr: *const Tag) -> Self
Loads a group of tags starting at the given address.
Sourcepub(crate) unsafe fn load_aligned(ptr: *const Tag) -> Self
pub(crate) unsafe fn load_aligned(ptr: *const Tag) -> Self
Loads a group of tags starting at the given address, which must be
aligned to mem::align_of::<Group>()
.
Sourcepub(crate) unsafe fn store_aligned(self, ptr: *mut Tag)
pub(crate) unsafe fn store_aligned(self, ptr: *mut Tag)
Stores the group of tags to the given address, which must be
aligned to mem::align_of::<Group>()
.
Sourcepub(crate) fn match_tag(self, tag: Tag) -> BitMask
pub(crate) fn match_tag(self, tag: Tag) -> BitMask
Returns a BitMask
indicating all tags in the group which have
the given value.
Sourcepub(crate) fn match_empty(self) -> BitMask
pub(crate) fn match_empty(self) -> BitMask
Returns a BitMask
indicating all tags in the group which are
EMPTY
.
Sourcepub(crate) fn match_empty_or_deleted(self) -> BitMask
pub(crate) fn match_empty_or_deleted(self) -> BitMask
Returns a BitMask
indicating all tags in the group which are
EMPTY
or DELETED
.
Sourcepub(crate) fn match_full(&self) -> BitMask
pub(crate) fn match_full(&self) -> BitMask
Returns a BitMask
indicating all tags in the group which are full.
Sourcepub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self
pub(crate) fn convert_special_to_empty_and_full_to_deleted(self) -> Self
Performs the following transformation on all tags in the group:
EMPTY => EMPTY
DELETED => EMPTY
FULL => DELETED