pub struct GenericIsa { /* private fields */ }Implementations§
Source§impl GenericIsa
impl GenericIsa
Trait Implementations§
Source§impl Clone for GenericIsa
impl Clone for GenericIsa
Source§fn clone(&self) -> GenericIsa
fn clone(&self) -> GenericIsa
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Concat<i32> for GenericIsa
impl Concat<i32> for GenericIsa
Source§fn concat_low(self, a: I32x4, b: I32x4) -> I32x4
fn concat_low(self, a: I32x4, b: I32x4) -> I32x4
Concatenate elements from the low halves of two vectors.
Source§fn concat_high(self, a: I32x4, b: I32x4) -> I32x4
fn concat_high(self, a: I32x4, b: I32x4) -> I32x4
Concatenate elements from the high halves of two vectors.
Source§impl Default for GenericIsa
impl Default for GenericIsa
Source§impl Extend<i16> for GenericIsa
impl Extend<i16> for GenericIsa
Source§impl Extend<i8> for GenericIsa
impl Extend<i8> for GenericIsa
Source§impl Extend<u8> for GenericIsa
impl Extend<u8> for GenericIsa
Source§impl FloatOps<f32> for GenericIsa
impl FloatOps<f32> for GenericIsa
Source§fn round_ties_even(self, x: F32x4) -> F32x4
fn round_ties_even(self, x: F32x4) -> F32x4
Round
x to the nearest integer value, with ties to even. Read moreSource§fn to_int_trunc(self, x: F32x4) -> Self::Int
fn to_int_trunc(self, x: F32x4) -> Self::Int
Convert each lane to an integer of the same width, rounding towards zero.
Source§fn to_int_round(self, x: F32x4) -> Self::Int
fn to_int_round(self, x: F32x4) -> Self::Int
Convert each lane to an integer of the same width, rounding to nearest
with ties to even.
Source§fn reciprocal(self, x: Self::Simd) -> Self::Simd
fn reciprocal(self, x: Self::Simd) -> Self::Simd
Compute 1. / x
Source§impl IntOps<i16> for GenericIsa
impl IntOps<i16> for GenericIsa
Source§fn shift_left<const SHIFT: i32>(self, x: I16x8) -> I16x8
fn shift_left<const SHIFT: i32>(self, x: I16x8) -> I16x8
Shift each lane in
x left by SHIFT bits.Source§fn shift_right<const SHIFT: i32>(self, x: I16x8) -> I16x8
fn shift_right<const SHIFT: i32>(self, x: I16x8) -> I16x8
Source§impl IntOps<i32> for GenericIsa
impl IntOps<i32> for GenericIsa
Source§fn shift_left<const SHIFT: i32>(self, x: I32x4) -> I32x4
fn shift_left<const SHIFT: i32>(self, x: I32x4) -> I32x4
Shift each lane in
x left by SHIFT bits.Source§fn shift_right<const SHIFT: i32>(self, x: I32x4) -> I32x4
fn shift_right<const SHIFT: i32>(self, x: I32x4) -> I32x4
Source§impl IntOps<i8> for GenericIsa
impl IntOps<i8> for GenericIsa
Source§fn shift_left<const SHIFT: i32>(self, x: I8x16) -> I8x16
fn shift_left<const SHIFT: i32>(self, x: I8x16) -> I8x16
Shift each lane in
x left by SHIFT bits.Source§fn shift_right<const SHIFT: i32>(self, x: I8x16) -> I8x16
fn shift_right<const SHIFT: i32>(self, x: I8x16) -> I8x16
Source§impl IntOps<u16> for GenericIsa
impl IntOps<u16> for GenericIsa
Source§fn shift_left<const SHIFT: i32>(self, x: U16x8) -> U16x8
fn shift_left<const SHIFT: i32>(self, x: U16x8) -> U16x8
Shift each lane in
x left by SHIFT bits.Source§fn shift_right<const SHIFT: i32>(self, x: U16x8) -> U16x8
fn shift_right<const SHIFT: i32>(self, x: U16x8) -> U16x8
Source§impl IntOps<u8> for GenericIsa
impl IntOps<u8> for GenericIsa
Source§fn shift_left<const SHIFT: i32>(self, x: U8x16) -> U8x16
fn shift_left<const SHIFT: i32>(self, x: U8x16) -> U8x16
Shift each lane in
x left by SHIFT bits.Source§fn shift_right<const SHIFT: i32>(self, x: U8x16) -> U8x16
fn shift_right<const SHIFT: i32>(self, x: U8x16) -> U8x16
Source§impl Interleave<i16> for GenericIsa
impl Interleave<i16> for GenericIsa
Source§fn interleave_low(self, a: I16x8, b: I16x8) -> I16x8
fn interleave_low(self, a: I16x8, b: I16x8) -> I16x8
Interleave elements from the low halves of two vectors.
Source§fn interleave_high(self, a: I16x8, b: I16x8) -> I16x8
fn interleave_high(self, a: I16x8, b: I16x8) -> I16x8
Interleave elements from the high halves of two vectors.
Source§impl Interleave<i8> for GenericIsa
impl Interleave<i8> for GenericIsa
Source§fn interleave_low(self, a: I8x16, b: I8x16) -> I8x16
fn interleave_low(self, a: I8x16, b: I8x16) -> I8x16
Interleave elements from the low halves of two vectors.
Source§fn interleave_high(self, a: I8x16, b: I8x16) -> I8x16
fn interleave_high(self, a: I8x16, b: I8x16) -> I8x16
Interleave elements from the high halves of two vectors.
Source§impl Interleave<u8> for GenericIsa
impl Interleave<u8> for GenericIsa
Source§fn interleave_low(self, a: U8x16, b: U8x16) -> U8x16
fn interleave_low(self, a: U8x16, b: U8x16) -> U8x16
Interleave elements from the low halves of two vectors.
Source§fn interleave_high(self, a: U8x16, b: U8x16) -> U8x16
fn interleave_high(self, a: U8x16, b: U8x16) -> U8x16
Interleave elements from the high halves of two vectors.
Source§impl Isa for GenericIsa
impl Isa for GenericIsa
Source§type Bits = I32x4
type Bits = I32x4
SIMD vector with an unspecified element type. This is used for
bitwise casting between different vector types.
Source§fn f32(self) -> impl FloatOps<f32, Simd = Self::F32, Int = Self::I32>
fn f32(self) -> impl FloatOps<f32, Simd = Self::F32, Int = Self::I32>
Operations on SIMD vectors with
f32 elements.Source§fn i32(
self,
) -> impl SignedIntOps<i32, Simd = Self::I32> + NarrowSaturate<i32, i16, Output = Self::I16> + Concat<i32> + ToFloat<i32, Output = Self::F32>
fn i32( self, ) -> impl SignedIntOps<i32, Simd = Self::I32> + NarrowSaturate<i32, i16, Output = Self::I16> + Concat<i32> + ToFloat<i32, Output = Self::F32>
Operations on SIMD vectors with
i32 elements.Source§fn i16(
self,
) -> impl SignedIntOps<i16, Simd = Self::I16> + NarrowSaturate<i16, u8, Output = Self::U8> + Extend<i16, Output = Self::I32> + Interleave<i16>
fn i16( self, ) -> impl SignedIntOps<i16, Simd = Self::I16> + NarrowSaturate<i16, u8, Output = Self::U8> + Extend<i16, Output = Self::I32> + Interleave<i16>
Operations on SIMD vectors with
i16 elements.Source§fn i8(
self,
) -> impl SignedIntOps<i8, Simd = Self::I8> + Extend<i8, Output = Self::I16> + Interleave<i8>
fn i8( self, ) -> impl SignedIntOps<i8, Simd = Self::I8> + Extend<i8, Output = Self::I16> + Interleave<i8>
Operations on SIMD vectors with
i8 elements.Source§fn u8(
self,
) -> impl IntOps<u8, Simd = Self::U8> + Extend<u8, Output = Self::U16> + Interleave<u8>
fn u8( self, ) -> impl IntOps<u8, Simd = Self::U8> + Extend<u8, Output = Self::U16> + Interleave<u8>
Operations on SIMD vectors with
u8 elements.Source§impl NarrowSaturate<i16, u8> for GenericIsa
impl NarrowSaturate<i16, u8> for GenericIsa
Source§impl NarrowSaturate<i32, i16> for GenericIsa
impl NarrowSaturate<i32, i16> for GenericIsa
Source§impl NumOps<f32> for GenericIsa
impl NumOps<f32> for GenericIsa
Source§fn first_n_mask(self, n: usize) -> M32
fn first_n_mask(self, n: usize) -> M32
Return a mask with the first
n lanes set to true.Source§unsafe fn load_ptr_mask(
self,
ptr: *const <F32x4 as Simd>::Elem,
mask: <F32x4 as Simd>::Mask,
) -> F32x4
unsafe fn load_ptr_mask( self, ptr: *const <F32x4 as Simd>::Elem, mask: <F32x4 as Simd>::Mask, ) -> F32x4
Load vector elements from
ptr using a mask. Read moreSource§unsafe fn store_ptr_mask(
self,
x: F32x4,
ptr: *mut <F32x4 as Simd>::Elem,
mask: <F32x4 as Simd>::Mask,
)
unsafe fn store_ptr_mask( self, x: F32x4, ptr: *mut <F32x4 as Simd>::Elem, mask: <F32x4 as Simd>::Mask, )
Store the values in this vector to a memory location, where the
corresponding mask element is set. Read more
Source§fn eq(self, x: F32x4, y: F32x4) -> M32
fn eq(self, x: F32x4, y: F32x4) -> M32
Return a mask indicating whether elements in
x are equal to y.Source§fn ge(self, x: F32x4, y: F32x4) -> M32
fn ge(self, x: F32x4, y: F32x4) -> M32
Return a mask indicating whether elements in
x are greater or equal to y.Source§fn gt(self, x: F32x4, y: F32x4) -> M32
fn gt(self, x: F32x4, y: F32x4) -> M32
Return a mask indicating whether elements in
x are greater than y.Source§unsafe fn load_ptr(self, ptr: *const f32) -> F32x4
unsafe fn load_ptr(self, ptr: *const f32) -> F32x4
Load vector of elements from
ptr. Read moreSource§unsafe fn store_ptr(self, x: F32x4, ptr: *mut f32)
unsafe fn store_ptr(self, x: F32x4, ptr: *mut f32)
Store the values in this vector to a memory location. Read more
Source§fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
Convert
x to an untyped vector of the same width.Source§fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
Broadcast the element from one lane of a vector to all lanes of a new
vector.
Source§fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
Evaluate a polynomial using Horner’s method. Read more
Source§fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less than y.Source§fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less or equal to y.Source§fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
Clamp values in
x to minimum and maximum values from corresponding
lanes in min and max.Source§fn fold_splat<F: Fn(T, T) -> T>(
self,
x: Self::Simd,
accum: T,
f: F,
) -> Self::Simd
fn fold_splat<F: Fn(T, T) -> T>( self, x: Self::Simd, accum: T, f: F, ) -> Self::Simd
Reduce the elements in
x to a single value using f, then
return a new vector with the accumulated value broadcast to each lane.Source§fn load(self, xs: &[T]) -> Self::Simd
fn load(self, xs: &[T]) -> Self::Simd
Load the first
self.len() elements from a slice into a vector. Read moreSource§fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
Load elements from
xs into a vector. Read moreSource§fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
Source§fn prefetch_write(self, ptr: *mut T)
fn prefetch_write(self, ptr: *mut T)
Pre-fetch the cache line containing
ptr for writing.Source§impl NumOps<i16> for GenericIsa
impl NumOps<i16> for GenericIsa
Source§fn first_n_mask(self, n: usize) -> M16
fn first_n_mask(self, n: usize) -> M16
Return a mask with the first
n lanes set to true.Source§unsafe fn load_ptr_mask(
self,
ptr: *const <I16x8 as Simd>::Elem,
mask: <I16x8 as Simd>::Mask,
) -> I16x8
unsafe fn load_ptr_mask( self, ptr: *const <I16x8 as Simd>::Elem, mask: <I16x8 as Simd>::Mask, ) -> I16x8
Load vector elements from
ptr using a mask. Read moreSource§unsafe fn store_ptr_mask(
self,
x: I16x8,
ptr: *mut <I16x8 as Simd>::Elem,
mask: <I16x8 as Simd>::Mask,
)
unsafe fn store_ptr_mask( self, x: I16x8, ptr: *mut <I16x8 as Simd>::Elem, mask: <I16x8 as Simd>::Mask, )
Store the values in this vector to a memory location, where the
corresponding mask element is set. Read more
Source§fn eq(self, x: I16x8, y: I16x8) -> M16
fn eq(self, x: I16x8, y: I16x8) -> M16
Return a mask indicating whether elements in
x are equal to y.Source§fn ge(self, x: I16x8, y: I16x8) -> M16
fn ge(self, x: I16x8, y: I16x8) -> M16
Return a mask indicating whether elements in
x are greater or equal to y.Source§fn gt(self, x: I16x8, y: I16x8) -> M16
fn gt(self, x: I16x8, y: I16x8) -> M16
Return a mask indicating whether elements in
x are greater than y.Source§unsafe fn load_ptr(self, ptr: *const i16) -> I16x8
unsafe fn load_ptr(self, ptr: *const i16) -> I16x8
Load vector of elements from
ptr. Read moreSource§unsafe fn store_ptr(self, x: I16x8, ptr: *mut i16)
unsafe fn store_ptr(self, x: I16x8, ptr: *mut i16)
Store the values in this vector to a memory location. Read more
Source§fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
Convert
x to an untyped vector of the same width.Source§fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
Broadcast the element from one lane of a vector to all lanes of a new
vector.
Source§fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
Evaluate a polynomial using Horner’s method. Read more
Source§fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less than y.Source§fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less or equal to y.Source§fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
Clamp values in
x to minimum and maximum values from corresponding
lanes in min and max.Source§fn fold_splat<F: Fn(T, T) -> T>(
self,
x: Self::Simd,
accum: T,
f: F,
) -> Self::Simd
fn fold_splat<F: Fn(T, T) -> T>( self, x: Self::Simd, accum: T, f: F, ) -> Self::Simd
Reduce the elements in
x to a single value using f, then
return a new vector with the accumulated value broadcast to each lane.Source§fn load(self, xs: &[T]) -> Self::Simd
fn load(self, xs: &[T]) -> Self::Simd
Load the first
self.len() elements from a slice into a vector. Read moreSource§fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
Load elements from
xs into a vector. Read moreSource§fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
Source§fn prefetch_write(self, ptr: *mut T)
fn prefetch_write(self, ptr: *mut T)
Pre-fetch the cache line containing
ptr for writing.Source§impl NumOps<i32> for GenericIsa
impl NumOps<i32> for GenericIsa
Source§fn first_n_mask(self, n: usize) -> M32
fn first_n_mask(self, n: usize) -> M32
Return a mask with the first
n lanes set to true.Source§unsafe fn load_ptr_mask(
self,
ptr: *const <I32x4 as Simd>::Elem,
mask: <I32x4 as Simd>::Mask,
) -> I32x4
unsafe fn load_ptr_mask( self, ptr: *const <I32x4 as Simd>::Elem, mask: <I32x4 as Simd>::Mask, ) -> I32x4
Load vector elements from
ptr using a mask. Read moreSource§unsafe fn store_ptr_mask(
self,
x: I32x4,
ptr: *mut <I32x4 as Simd>::Elem,
mask: <I32x4 as Simd>::Mask,
)
unsafe fn store_ptr_mask( self, x: I32x4, ptr: *mut <I32x4 as Simd>::Elem, mask: <I32x4 as Simd>::Mask, )
Store the values in this vector to a memory location, where the
corresponding mask element is set. Read more
Source§fn eq(self, x: I32x4, y: I32x4) -> M32
fn eq(self, x: I32x4, y: I32x4) -> M32
Return a mask indicating whether elements in
x are equal to y.Source§fn ge(self, x: I32x4, y: I32x4) -> M32
fn ge(self, x: I32x4, y: I32x4) -> M32
Return a mask indicating whether elements in
x are greater or equal to y.Source§fn gt(self, x: I32x4, y: I32x4) -> M32
fn gt(self, x: I32x4, y: I32x4) -> M32
Return a mask indicating whether elements in
x are greater than y.Source§unsafe fn load_ptr(self, ptr: *const i32) -> I32x4
unsafe fn load_ptr(self, ptr: *const i32) -> I32x4
Load vector of elements from
ptr. Read moreSource§unsafe fn store_ptr(self, x: I32x4, ptr: *mut i32)
unsafe fn store_ptr(self, x: I32x4, ptr: *mut i32)
Store the values in this vector to a memory location. Read more
Source§fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
Convert
x to an untyped vector of the same width.Source§fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
Broadcast the element from one lane of a vector to all lanes of a new
vector.
Source§fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
Evaluate a polynomial using Horner’s method. Read more
Source§fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less than y.Source§fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less or equal to y.Source§fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
Clamp values in
x to minimum and maximum values from corresponding
lanes in min and max.Source§fn fold_splat<F: Fn(T, T) -> T>(
self,
x: Self::Simd,
accum: T,
f: F,
) -> Self::Simd
fn fold_splat<F: Fn(T, T) -> T>( self, x: Self::Simd, accum: T, f: F, ) -> Self::Simd
Reduce the elements in
x to a single value using f, then
return a new vector with the accumulated value broadcast to each lane.Source§fn load(self, xs: &[T]) -> Self::Simd
fn load(self, xs: &[T]) -> Self::Simd
Load the first
self.len() elements from a slice into a vector. Read moreSource§fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
Load elements from
xs into a vector. Read moreSource§fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
Source§fn prefetch_write(self, ptr: *mut T)
fn prefetch_write(self, ptr: *mut T)
Pre-fetch the cache line containing
ptr for writing.Source§impl NumOps<i8> for GenericIsa
impl NumOps<i8> for GenericIsa
Source§fn first_n_mask(self, n: usize) -> M8
fn first_n_mask(self, n: usize) -> M8
Return a mask with the first
n lanes set to true.Source§unsafe fn load_ptr_mask(
self,
ptr: *const <I8x16 as Simd>::Elem,
mask: <I8x16 as Simd>::Mask,
) -> I8x16
unsafe fn load_ptr_mask( self, ptr: *const <I8x16 as Simd>::Elem, mask: <I8x16 as Simd>::Mask, ) -> I8x16
Load vector elements from
ptr using a mask. Read moreSource§unsafe fn store_ptr_mask(
self,
x: I8x16,
ptr: *mut <I8x16 as Simd>::Elem,
mask: <I8x16 as Simd>::Mask,
)
unsafe fn store_ptr_mask( self, x: I8x16, ptr: *mut <I8x16 as Simd>::Elem, mask: <I8x16 as Simd>::Mask, )
Store the values in this vector to a memory location, where the
corresponding mask element is set. Read more
Source§fn eq(self, x: I8x16, y: I8x16) -> M8
fn eq(self, x: I8x16, y: I8x16) -> M8
Return a mask indicating whether elements in
x are equal to y.Source§fn ge(self, x: I8x16, y: I8x16) -> M8
fn ge(self, x: I8x16, y: I8x16) -> M8
Return a mask indicating whether elements in
x are greater or equal to y.Source§fn gt(self, x: I8x16, y: I8x16) -> M8
fn gt(self, x: I8x16, y: I8x16) -> M8
Return a mask indicating whether elements in
x are greater than y.Source§unsafe fn store_ptr(self, x: I8x16, ptr: *mut i8)
unsafe fn store_ptr(self, x: I8x16, ptr: *mut i8)
Store the values in this vector to a memory location. Read more
Source§fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
Convert
x to an untyped vector of the same width.Source§fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
Broadcast the element from one lane of a vector to all lanes of a new
vector.
Source§fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
Evaluate a polynomial using Horner’s method. Read more
Source§fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less than y.Source§fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less or equal to y.Source§fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
Clamp values in
x to minimum and maximum values from corresponding
lanes in min and max.Source§fn fold_splat<F: Fn(T, T) -> T>(
self,
x: Self::Simd,
accum: T,
f: F,
) -> Self::Simd
fn fold_splat<F: Fn(T, T) -> T>( self, x: Self::Simd, accum: T, f: F, ) -> Self::Simd
Reduce the elements in
x to a single value using f, then
return a new vector with the accumulated value broadcast to each lane.Source§fn load(self, xs: &[T]) -> Self::Simd
fn load(self, xs: &[T]) -> Self::Simd
Load the first
self.len() elements from a slice into a vector. Read moreSource§fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
Load elements from
xs into a vector. Read moreSource§fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
Source§fn prefetch_write(self, ptr: *mut T)
fn prefetch_write(self, ptr: *mut T)
Pre-fetch the cache line containing
ptr for writing.Source§impl NumOps<u16> for GenericIsa
impl NumOps<u16> for GenericIsa
Source§fn first_n_mask(self, n: usize) -> M16
fn first_n_mask(self, n: usize) -> M16
Return a mask with the first
n lanes set to true.Source§unsafe fn load_ptr_mask(
self,
ptr: *const <U16x8 as Simd>::Elem,
mask: <U16x8 as Simd>::Mask,
) -> U16x8
unsafe fn load_ptr_mask( self, ptr: *const <U16x8 as Simd>::Elem, mask: <U16x8 as Simd>::Mask, ) -> U16x8
Load vector elements from
ptr using a mask. Read moreSource§unsafe fn store_ptr_mask(
self,
x: U16x8,
ptr: *mut <U16x8 as Simd>::Elem,
mask: <U16x8 as Simd>::Mask,
)
unsafe fn store_ptr_mask( self, x: U16x8, ptr: *mut <U16x8 as Simd>::Elem, mask: <U16x8 as Simd>::Mask, )
Store the values in this vector to a memory location, where the
corresponding mask element is set. Read more
Source§fn eq(self, x: U16x8, y: U16x8) -> M16
fn eq(self, x: U16x8, y: U16x8) -> M16
Return a mask indicating whether elements in
x are equal to y.Source§fn ge(self, x: U16x8, y: U16x8) -> M16
fn ge(self, x: U16x8, y: U16x8) -> M16
Return a mask indicating whether elements in
x are greater or equal to y.Source§fn gt(self, x: U16x8, y: U16x8) -> M16
fn gt(self, x: U16x8, y: U16x8) -> M16
Return a mask indicating whether elements in
x are greater than y.Source§unsafe fn load_ptr(self, ptr: *const u16) -> U16x8
unsafe fn load_ptr(self, ptr: *const u16) -> U16x8
Load vector of elements from
ptr. Read moreSource§unsafe fn store_ptr(self, x: U16x8, ptr: *mut u16)
unsafe fn store_ptr(self, x: U16x8, ptr: *mut u16)
Store the values in this vector to a memory location. Read more
Source§fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
Convert
x to an untyped vector of the same width.Source§fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
Broadcast the element from one lane of a vector to all lanes of a new
vector.
Source§fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
Evaluate a polynomial using Horner’s method. Read more
Source§fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less than y.Source§fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less or equal to y.Source§fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
Clamp values in
x to minimum and maximum values from corresponding
lanes in min and max.Source§fn fold_splat<F: Fn(T, T) -> T>(
self,
x: Self::Simd,
accum: T,
f: F,
) -> Self::Simd
fn fold_splat<F: Fn(T, T) -> T>( self, x: Self::Simd, accum: T, f: F, ) -> Self::Simd
Reduce the elements in
x to a single value using f, then
return a new vector with the accumulated value broadcast to each lane.Source§fn load(self, xs: &[T]) -> Self::Simd
fn load(self, xs: &[T]) -> Self::Simd
Load the first
self.len() elements from a slice into a vector. Read moreSource§fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
Load elements from
xs into a vector. Read moreSource§fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
Source§fn prefetch_write(self, ptr: *mut T)
fn prefetch_write(self, ptr: *mut T)
Pre-fetch the cache line containing
ptr for writing.Source§impl NumOps<u8> for GenericIsa
impl NumOps<u8> for GenericIsa
Source§fn first_n_mask(self, n: usize) -> M8
fn first_n_mask(self, n: usize) -> M8
Return a mask with the first
n lanes set to true.Source§unsafe fn load_ptr_mask(
self,
ptr: *const <U8x16 as Simd>::Elem,
mask: <U8x16 as Simd>::Mask,
) -> U8x16
unsafe fn load_ptr_mask( self, ptr: *const <U8x16 as Simd>::Elem, mask: <U8x16 as Simd>::Mask, ) -> U8x16
Load vector elements from
ptr using a mask. Read moreSource§unsafe fn store_ptr_mask(
self,
x: U8x16,
ptr: *mut <U8x16 as Simd>::Elem,
mask: <U8x16 as Simd>::Mask,
)
unsafe fn store_ptr_mask( self, x: U8x16, ptr: *mut <U8x16 as Simd>::Elem, mask: <U8x16 as Simd>::Mask, )
Store the values in this vector to a memory location, where the
corresponding mask element is set. Read more
Source§fn eq(self, x: U8x16, y: U8x16) -> M8
fn eq(self, x: U8x16, y: U8x16) -> M8
Return a mask indicating whether elements in
x are equal to y.Source§fn ge(self, x: U8x16, y: U8x16) -> M8
fn ge(self, x: U8x16, y: U8x16) -> M8
Return a mask indicating whether elements in
x are greater or equal to y.Source§fn gt(self, x: U8x16, y: U8x16) -> M8
fn gt(self, x: U8x16, y: U8x16) -> M8
Return a mask indicating whether elements in
x are greater than y.Source§unsafe fn store_ptr(self, x: U8x16, ptr: *mut u8)
unsafe fn store_ptr(self, x: U8x16, ptr: *mut u8)
Store the values in this vector to a memory location. Read more
Source§fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
fn from_bits(self, x: <<Self::Simd as Simd>::Isa as Isa>::Bits) -> Self::Simd
Convert
x to an untyped vector of the same width.Source§fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
fn broadcast_lane<const LANE: i32>(self, x: Self::Simd) -> Self::Simd
Broadcast the element from one lane of a vector to all lanes of a new
vector.
Source§fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
fn poly_eval(self, x: Self::Simd, coeffs: &[Self::Simd]) -> Self::Simd
Evaluate a polynomial using Horner’s method. Read more
Source§fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn lt(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less than y.Source§fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
fn le(self, x: Self::Simd, y: Self::Simd) -> <Self::Simd as Simd>::Mask
Return a mask indicating whether elements in
x are less or equal to y.Source§fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
fn clamp(self, x: Self::Simd, min: Self::Simd, max: Self::Simd) -> Self::Simd
Clamp values in
x to minimum and maximum values from corresponding
lanes in min and max.Source§fn fold_splat<F: Fn(T, T) -> T>(
self,
x: Self::Simd,
accum: T,
f: F,
) -> Self::Simd
fn fold_splat<F: Fn(T, T) -> T>( self, x: Self::Simd, accum: T, f: F, ) -> Self::Simd
Reduce the elements in
x to a single value using f, then
return a new vector with the accumulated value broadcast to each lane.Source§fn load(self, xs: &[T]) -> Self::Simd
fn load(self, xs: &[T]) -> Self::Simd
Load the first
self.len() elements from a slice into a vector. Read moreSource§fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
fn load_pad(self, xs: &[T]) -> (Self::Simd, <Self::Simd as Simd>::Mask)
Load elements from
xs into a vector. Read moreSource§fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
fn store_uninit(self, x: Self::Simd, xs: &mut [MaybeUninit<T>]) -> &mut [T]
Source§fn prefetch_write(self, ptr: *mut T)
fn prefetch_write(self, ptr: *mut T)
Pre-fetch the cache line containing
ptr for writing.Source§impl SignedIntOps<i16> for GenericIsa
impl SignedIntOps<i16> for GenericIsa
Source§impl SignedIntOps<i32> for GenericIsa
impl SignedIntOps<i32> for GenericIsa
Source§impl SignedIntOps<i8> for GenericIsa
impl SignedIntOps<i8> for GenericIsa
Source§impl ToFloat<i32> for GenericIsa
impl ToFloat<i32> for GenericIsa
impl Copy for GenericIsa
Auto Trait Implementations§
impl Freeze for GenericIsa
impl RefUnwindSafe for GenericIsa
impl Send for GenericIsa
impl Sync for GenericIsa
impl Unpin for GenericIsa
impl UnwindSafe for GenericIsa
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