#[repr(C, align(32))]pub struct mask8x32<S: Simd> {
pub(crate) val: S::mask8x32,
pub simd: S,
}Expand description
A SIMD mask of 32 8-bit elements.
When created from a comparison operation, and as it should be used in a Self::select operation, each element will be all ones if it’s “true”, and all zeroes if it’s “false”.
Fields§
§val: S::mask8x32§simd: STrait Implementations§
Source§impl<S: Simd> BitAndAssign<i8> for mask8x32<S>
impl<S: Simd> BitAndAssign<i8> for mask8x32<S>
Source§fn bitand_assign(&mut self, rhs: i8)
fn bitand_assign(&mut self, rhs: i8)
Performs the
&= operation. Read moreSource§impl<S: Simd> BitAndAssign for mask8x32<S>
impl<S: Simd> BitAndAssign for mask8x32<S>
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
Compute the logical AND of two masks.
Source§impl<S: Simd> BitOrAssign<i8> for mask8x32<S>
impl<S: Simd> BitOrAssign<i8> for mask8x32<S>
Source§fn bitor_assign(&mut self, rhs: i8)
fn bitor_assign(&mut self, rhs: i8)
Performs the
|= operation. Read moreSource§impl<S: Simd> BitOrAssign for mask8x32<S>
impl<S: Simd> BitOrAssign for mask8x32<S>
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
Compute the logical OR of two masks.
Source§impl<S: Simd> BitXorAssign<i8> for mask8x32<S>
impl<S: Simd> BitXorAssign<i8> for mask8x32<S>
Source§fn bitxor_assign(&mut self, rhs: i8)
fn bitxor_assign(&mut self, rhs: i8)
Performs the
^= operation. Read moreSource§impl<S: Simd> BitXorAssign for mask8x32<S>
impl<S: Simd> BitXorAssign for mask8x32<S>
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
Compute the logical XOR of two masks.
Source§impl<S: Simd> Bytes for mask8x32<S>
impl<S: Simd> Bytes for mask8x32<S>
Source§impl<S: Simd> SimdBase<S> for mask8x32<S>
impl<S: Simd> SimdBase<S> for mask8x32<S>
Source§const N: usize = 32
const N: usize = 32
This vector type’s lane count. This is useful when you’re
working with a native-width vector (e.g.
Simd::f32s) and
want to process data in native-width chunks.Source§type Array = [i8; 32]
type Array = [i8; 32]
The array type that this vector type corresponds to, which will
always be
[Self::Element; Self::N]. It has the same layout as
this vector type, but likely has a lower alignment.fn as_slice(&self) -> &[i8]
fn as_mut_slice(&mut self) -> &mut [i8]
Source§fn from_slice(simd: S, slice: &[i8]) -> Self
fn from_slice(simd: S, slice: &[i8]) -> Self
Create a SIMD vector from a slice. Read more
Source§fn store_slice(&self, slice: &mut [i8])
fn store_slice(&self, slice: &mut [i8])
Store a SIMD vector into a slice. Read more
Source§fn splat(simd: S, val: i8) -> Self
fn splat(simd: S, val: i8) -> Self
Create a SIMD vector with all elements set to the given value.
Source§fn block_splat(block: Self::Block) -> Self
fn block_splat(block: Self::Block) -> Self
Create a SIMD vector from a 128-bit vector of the same scalar
type, repeated.
Source§fn from_fn(simd: S, f: impl FnMut(usize) -> i8) -> Self
fn from_fn(simd: S, f: impl FnMut(usize) -> i8) -> Self
Create a SIMD vector where each element is produced by
calling
f with that element’s lane index (from 0 to
SimdBase::N - 1).Source§fn slide_within_blocks<const SHIFT: usize>(
self,
rhs: impl SimdInto<Self, S>,
) -> Self
fn slide_within_blocks<const SHIFT: usize>( self, rhs: impl SimdInto<Self, S>, ) -> Self
Like
slide, but operates independently on each 128-bit block.Source§impl<S: Simd> SimdCombine<S> for mask8x32<S>
impl<S: Simd> SimdCombine<S> for mask8x32<S>
Source§impl<S: Simd> SimdMask<S> for mask8x32<S>
impl<S: Simd> SimdMask<S> for mask8x32<S>
Source§fn simd_eq(self, rhs: impl SimdInto<Self, S>) -> Self::Mask
fn simd_eq(self, rhs: impl SimdInto<Self, S>) -> Self::Mask
Compare two vectors element-wise for equality. Read more
Source§fn any_true(self) -> bool
fn any_true(self) -> bool
Returns true if any elements in this mask are true (all ones). Read more
Source§fn all_true(self) -> bool
fn all_true(self) -> bool
Returns true if all elements in this mask are true (all ones). Read more
impl<S: Copy + Simd> Copy for mask8x32<S>
Auto Trait Implementations§
impl<S> Freeze for mask8x32<S>
impl<S> RefUnwindSafe for mask8x32<S>
impl<S> Send for mask8x32<S>
impl<S> Sync for mask8x32<S>
impl<S> Unpin for mask8x32<S>
impl<S> UnsafeUnpin for mask8x32<S>
impl<S> UnwindSafe for mask8x32<S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more