Struct thermite::backends::avx2::i64x8 [−][src]
#[repr(transparent)]pub struct i64x8<S: Simd> { /* fields omitted */ }
Trait Implementations
Performs the +=
operation. Read more
Performs the +=
operation. Read more
Performs the &=
operation. Read more
Performs the &=
operation. Read more
Performs the |=
operation. Read more
Performs the |=
operation. Read more
Performs the ^=
operation. Read more
Performs the ^=
operation. Read more
Performs the /=
operation. Read more
Performs the /=
operation. Read more
Performs the *=
operation. Read more
Performs the *=
operation. Read more
Performs the %=
operation. Read more
Performs the %=
operation. Read more
Performs the <<=
operation. Read more
Performs the >>=
operation. Read more
Computes !self & other
, may be more performant than the naive version
Bitmask corresponding to all lanes of the mask being truthy.
Returns an integer where each bit corresponds to the binary truthy-ness of each lane from the mask.
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Casts one vector to another, performing proper numeric conversions on each element. Read more
Saturating addition, will not wrap
Saturating subtraction, will not wrap
Sum all lanes together, wrapping the result if it can’t fit in T
Multiply all lanes together, wrapping the result if it can’t fit in T
Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in the corresponding lane of cnt
Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in the corresponding lane of cnt
Reverses the bits of each lane in the vector.
Counts the number of 1 bits in each lane of the vector.
Counts the number of leading zeros in each lane of the vector.
Counts the number of trailing zeros in each lane of the vector.
Rotates the bits in each lane to the left (towards HSB) by the number of bits specified in cnt
Rotates the bits in each lane to the right (towards LSB) by the number of bits specified in cnt
Counts the number of 0 bits in each lane of the vector.
Counts the number of leading ones in each lane of the vector.
Counts the number of trailing ones in each lane of the vector.
Minimum positive number
Test if positive, greater or equal to zero
Test if negative, less than zero
On platforms with true “select” instructions, they often only check the HSB,
which happens to correspond to the “sign” bit for both floats and twos-compliment integers,
so we can save a cmpgt(self, zero)
by calling this Read more
For each lane, if the mask is true, negate the value.
Returns a vector where the first lane is zero, and each subsequent lane is one plus the previous lane. Read more
Find the minimum value across all lanes
Find the maximum value across all lanes
Loads values from arbitrary addresses in memory based on offsets from a base address.
Stores values to arbitrary addresses in memory based on offsets from a base address.
fn gather_masked(
src: &[Self::Element],
indices: S::Vu32,
mask: Mask<S, Self>,
default: Self
) -> Self
[src]Add self
and value
only if the corresponding lane in the given mask is true.
Subtracts value
from self
only if the corresponding lane in the given mask is true.
type Element = i64
Creates a new vector with all lanes set to the given value
Returns a vector containing possibly undefined or uninitialized data
Loads a vector from the given aligned address. Read more
Stores a vector to the given aligned address. Read more
Extracts an element at the given lane index. Read more
Returns a new vector with the given value at the given lane index. Read more
unsafe fn shuffle_unchecked<INDICES: SimdShuffleIndices>(
self,
b: Self,
indices: INDICES
) -> Self
[src]
unsafe fn shuffle_unchecked<INDICES: SimdShuffleIndices>(
self,
b: Self,
indices: INDICES
) -> Self
[src]Shuffles between two vectors based on the static indices provided in INDICES
Read more
Like Self::gather
, but individual lanes are loaded based on the corresponding lane of the mask.
If the mask lane is truthy, the source lane is loaded, otherwise it’s given the lane value from default
. Read more
Size of element type in bytes
Same as splat
, but is more convenient for initializing with data that can be converted into the element type.
Splats a value by casting to the element type via value as Element
. Read more
fn map_scalar<F>(self, func: F) -> Self where
F: FnMut(usize, Self::Element) -> Self::Element,
[src]
fn map_scalar<F>(self, func: F) -> Self where
F: FnMut(usize, Self::Element) -> Self::Element,
[src]Maps each lane of the vector to a new vector using a scalar function
Shuffles between two vectors based on the static indices provided in INDICES
Read more
Shuffles between two vectors based on the dynamic indices provided. Read more
Like Self::shuffle_dyn
, but does not check for valid indices or input length. Read more
Extracts an element at the given lane index. Read more
Returns a new vector with the given value at the given lane index. Read more
Loads a vector from a slice that has an alignment of at least Self::ALIGNMENT
Read more
Loads a vector from a slice Read more
Stores a vector into a slice with an alignment of at least Self::ALIGNMENT
Read more
Stores a vector into a slice. Read more
Loads a vector from a given address (does not have to be aligned). Read more
Stores a vector to a given address (does not have to be aligned). Read more
unsafe fn scatter_masked_unchecked(
self,
base_ptr: *mut Self::Element,
indices: S::Vi32,
mask: Mask<S, Self>
)
[src]
unsafe fn scatter_masked_unchecked(
self,
base_ptr: *mut Self::Element,
indices: S::Vi32,
mask: Mask<S, Self>
)
[src]Like self.scatter()
, but individual lanes are stored based on the corresponding lane of the mask.
If the mask lane is truthy, the destination lane is written to, otherwise it is a no-op. Read more
Performs the -=
operation. Read more
Performs the -=
operation. Read more
Auto Trait Implementations
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<S, V, T> SimdBitsFrom<S, V> for T where
S: Simd + ?Sized,
T: SimdVectorBase<S>,
V: SimdIntoBits<S, T>,
[src]
impl<S, V, T> SimdBitsFrom<S, V> for T where
S: Simd + ?Sized,
T: SimdVectorBase<S>,
V: SimdIntoBits<S, T>,
[src]impl<S, V, T> SimdBitsInto<S, V> for T where
S: Simd + ?Sized,
T: SimdVectorBase<S>,
V: SimdFromBits<S, T>,
[src]
impl<S, V, T> SimdBitsInto<S, V> for T where
S: Simd + ?Sized,
T: SimdVectorBase<S>,
V: SimdFromBits<S, T>,
[src]Casts one vector to another, performing proper numeric conversions on each element. Read more