Skip to main content

mask64x8

Struct mask64x8 

Source
#[repr(C, align(64))]
pub struct mask64x8<S: Simd> { pub(crate) val: S::mask64x8, pub simd: S, }
Expand description

A SIMD mask of 8 64-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::mask64x8§simd: S

Trait Implementations§

Source§

impl<S: Simd> BitAnd<i64> for mask64x8<S>

Source§

type Output = mask64x8<S>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: i64) -> Self::Output

Performs the & operation. Read more
Source§

impl<S: Simd> BitAnd<mask64x8<S>> for i64

Source§

type Output = mask64x8<S>

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: mask64x8<S>) -> Self::Output

Performs the & operation. Read more
Source§

impl<S: Simd> BitAnd for mask64x8<S>

Source§

fn bitand(self, rhs: Self) -> Self::Output

Compute the logical AND of two masks.

Source§

type Output = mask64x8<S>

The resulting type after applying the & operator.
Source§

impl<S: Simd> BitAndAssign<i64> for mask64x8<S>

Source§

fn bitand_assign(&mut self, rhs: i64)

Performs the &= operation. Read more
Source§

impl<S: Simd> BitAndAssign for mask64x8<S>

Source§

fn bitand_assign(&mut self, rhs: Self)

Compute the logical AND of two masks.

Source§

impl<S: Simd> BitOr<i64> for mask64x8<S>

Source§

type Output = mask64x8<S>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: i64) -> Self::Output

Performs the | operation. Read more
Source§

impl<S: Simd> BitOr<mask64x8<S>> for i64

Source§

type Output = mask64x8<S>

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: mask64x8<S>) -> Self::Output

Performs the | operation. Read more
Source§

impl<S: Simd> BitOr for mask64x8<S>

Source§

fn bitor(self, rhs: Self) -> Self::Output

Compute the logical OR of two masks.

Source§

type Output = mask64x8<S>

The resulting type after applying the | operator.
Source§

impl<S: Simd> BitOrAssign<i64> for mask64x8<S>

Source§

fn bitor_assign(&mut self, rhs: i64)

Performs the |= operation. Read more
Source§

impl<S: Simd> BitOrAssign for mask64x8<S>

Source§

fn bitor_assign(&mut self, rhs: Self)

Compute the logical OR of two masks.

Source§

impl<S: Simd> BitXor<i64> for mask64x8<S>

Source§

type Output = mask64x8<S>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: i64) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<S: Simd> BitXor<mask64x8<S>> for i64

Source§

type Output = mask64x8<S>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: mask64x8<S>) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<S: Simd> BitXor for mask64x8<S>

Source§

fn bitxor(self, rhs: Self) -> Self::Output

Compute the logical XOR of two masks.

Source§

type Output = mask64x8<S>

The resulting type after applying the ^ operator.
Source§

impl<S: Simd> BitXorAssign<i64> for mask64x8<S>

Source§

fn bitxor_assign(&mut self, rhs: i64)

Performs the ^= operation. Read more
Source§

impl<S: Simd> BitXorAssign for mask64x8<S>

Source§

fn bitxor_assign(&mut self, rhs: Self)

Compute the logical XOR of two masks.

Source§

impl<S: Simd> Bytes for mask64x8<S>

Source§

type Bytes = u8x64<S>

Source§

fn to_bytes(self) -> Self::Bytes

Convert this type to an array of bytes.
Source§

fn from_bytes(value: Self::Bytes) -> Self

Create an instance of this type from an array of bytes.
Source§

fn bitcast<U: Bytes<Bytes = Self::Bytes>>(self) -> U

Bitcast directly from this type to another one of the same size.
Source§

impl<S: Clone + Simd> Clone for mask64x8<S>
where S::mask64x8: Clone,

Source§

fn clone(&self) -> mask64x8<S>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<S: Simd + Debug> Debug for mask64x8<S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<S: Simd> Deref for mask64x8<S>

Source§

type Target = [i64; 8]

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<S: Simd> DerefMut for mask64x8<S>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<S: Simd> From<mask64x8<S>> for [i64; 8]

Source§

fn from(value: mask64x8<S>) -> Self

Converts to this type from the input type.
Source§

impl<S: Simd> Index<usize> for mask64x8<S>

Source§

type Output = i64

The returned type after indexing.
Source§

fn index(&self, i: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
Source§

impl<S: Simd> IndexMut<usize> for mask64x8<S>

Source§

fn index_mut(&mut self, i: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl<S: Simd> Not for mask64x8<S>

Source§

fn not(self) -> Self::Output

Compute the logical NOT of the mask.

Source§

type Output = mask64x8<S>

The resulting type after applying the ! operator.
Source§

impl<S: Simd> Select<f64x8<S>> for mask64x8<S>

Source§

fn select(self, if_true: f64x8<S>, if_false: f64x8<S>) -> f64x8<S>

For each element of this mask, select the first operand if the element is all ones, and select the second operand if the element is all zeroes. Read more
Source§

impl<S: Simd> Select<mask64x8<S>> for mask64x8<S>

Source§

fn select(self, if_true: mask64x8<S>, if_false: mask64x8<S>) -> mask64x8<S>

For each element of this mask, select the first operand if the element is all ones, and select the second operand if the element is all zeroes. Read more
Source§

impl<S: Simd> SimdBase<S> for mask64x8<S>

Source§

const N: usize = 8

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 Element = i64

The type of this vector’s elements.
Source§

type Mask = mask64x8<S>

A SIMD vector mask with the same number of elements. Read more
Source§

type Block = mask64x2<S>

A 128-bit SIMD vector of the same scalar type.
Source§

type Array = [i64; 8]

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.
Source§

fn witness(&self) -> S

Get the Simd implementation associated with this type.
Source§

fn as_slice(&self) -> &[i64]

Source§

fn as_mut_slice(&mut self) -> &mut [i64]

Source§

fn from_slice(simd: S, slice: &[i64]) -> Self

Create a SIMD vector from a slice. Read more
Source§

fn store_slice(&self, slice: &mut [i64])

Store a SIMD vector into a slice. Read more
Source§

fn splat(simd: S, val: i64) -> Self

Create a SIMD vector with all elements set to the given value.
Source§

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) -> i64) -> 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<const SHIFT: usize>(self, rhs: impl SimdInto<Self, S>) -> Self

Concatenate [self, rhs] and extract Self::N elements starting at index SHIFT. Read more
Source§

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> SimdFrom<[i64; 8], S> for mask64x8<S>

Source§

fn simd_from(simd: S, val: [i64; 8]) -> Self

Source§

impl<S: Simd> SimdFrom<i64, S> for mask64x8<S>

Source§

fn simd_from(simd: S, value: i64) -> Self

Source§

impl<S: Simd> SimdMask<S> for mask64x8<S>

Source§

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

Returns true if any elements in this mask are true (all ones). Read more
Source§

fn all_true(self) -> bool

Returns true if all elements in this mask are true (all ones). Read more
Source§

fn any_false(self) -> bool

Returns true if any elements in this mask are false (all zeroes). Read more
Source§

fn all_false(self) -> bool

Returns true if all elements in this mask are false (all zeroes). Read more
Source§

impl<S: Simd> SimdSplit<S> for mask64x8<S>

Source§

type Split = mask64x4<S>

Source§

fn split(self) -> (Self::Split, Self::Split)

Split this vector into left and right halves.
Source§

impl<S: Copy + Simd> Copy for mask64x8<S>
where S::mask64x8: Copy,

Auto Trait Implementations§

§

impl<S> Freeze for mask64x8<S>
where <S as ArchTypes>::mask64x8: Freeze, S: Freeze,

§

impl<S> RefUnwindSafe for mask64x8<S>

§

impl<S> Send for mask64x8<S>

§

impl<S> Sync for mask64x8<S>

§

impl<S> Unpin for mask64x8<S>
where <S as ArchTypes>::mask64x8: Unpin, S: Unpin,

§

impl<S> UnsafeUnpin for mask64x8<S>

§

impl<S> UnwindSafe for mask64x8<S>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.