pub struct ScalarFallback;Expand description
Scalar fallback SIMD implementation.
Implementations§
Trait Implementations§
Source§impl Clone for ScalarFallback
impl Clone for ScalarFallback
Source§fn clone(&self) -> ScalarFallback
fn clone(&self) -> ScalarFallback
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 Debug for ScalarFallback
impl Debug for ScalarFallback
Source§impl Default for ScalarFallback
impl Default for ScalarFallback
Source§impl SimdOps for ScalarFallback
impl SimdOps for ScalarFallback
Source§fn is_available(&self) -> bool
fn is_available(&self) -> bool
Check if this implementation is available on the current CPU.
Source§fn sub_i16x8(&self, a: I16x8, b: I16x8) -> I16x8
fn sub_i16x8(&self, a: I16x8, b: I16x8) -> I16x8
Element-wise subtraction of two i16x8 vectors.
Source§fn mul_i16x8(&self, a: I16x8, b: I16x8) -> I16x8
fn mul_i16x8(&self, a: I16x8, b: I16x8) -> I16x8
Element-wise multiplication of two i16x8 vectors.
Source§fn sub_i32x4(&self, a: I32x4, b: I32x4) -> I32x4
fn sub_i32x4(&self, a: I32x4, b: I32x4) -> I32x4
Element-wise subtraction of two i32x4 vectors.
Source§fn clamp_i16x8(&self, v: I16x8, min: i16, max: i16) -> I16x8
fn clamp_i16x8(&self, v: I16x8, min: i16, max: i16) -> I16x8
Element-wise clamp of i16x8 vector.
Source§fn clamp_u8x16(&self, v: U8x16, min: u8, max: u8) -> U8x16
fn clamp_u8x16(&self, v: U8x16, min: u8, max: u8) -> U8x16
Element-wise clamp of u8x16 vector.
Source§fn horizontal_sum_i16x8(&self, v: I16x8) -> i32
fn horizontal_sum_i16x8(&self, v: I16x8) -> i32
Horizontal sum of all elements in an i16x8 vector.
Source§fn horizontal_sum_i32x4(&self, v: I32x4) -> i32
fn horizontal_sum_i32x4(&self, v: I32x4) -> i32
Horizontal sum of all elements in an i32x4 vector.
Source§fn sad_u8x16(&self, a: U8x16, b: U8x16) -> u32
fn sad_u8x16(&self, a: U8x16, b: U8x16) -> u32
Sum of absolute differences between two u8x16 vectors. Read more
Source§fn widen_low_u8_to_i16(&self, v: U8x16) -> I16x8
fn widen_low_u8_to_i16(&self, v: U8x16) -> I16x8
Widen u8x16 low half to i16x8.
Source§fn widen_high_u8_to_i16(&self, v: U8x16) -> I16x8
fn widen_high_u8_to_i16(&self, v: U8x16) -> I16x8
Widen u8x16 high half to i16x8.
Source§fn narrow_i32x4_to_i16x8(&self, low: I32x4, high: I32x4) -> I16x8
fn narrow_i32x4_to_i16x8(&self, low: I32x4, high: I32x4) -> I16x8
Narrow two i32x4 to i16x8 with saturation.
Source§fn madd_i16x8(&self, a: I16x8, b: I16x8, c: I16x8) -> I16x8
fn madd_i16x8(&self, a: I16x8, b: I16x8, c: I16x8) -> I16x8
Multiply and add: a * b + c for i16x8.
Source§fn pmaddwd(&self, a: I16x8, b: I16x8) -> I32x4
fn pmaddwd(&self, a: I16x8, b: I16x8) -> I32x4
Multiply pairs and add adjacent results (pmaddwd equivalent). Read more
Source§fn shr_i16x8(&self, v: I16x8, shift: u32) -> I16x8
fn shr_i16x8(&self, v: I16x8, shift: u32) -> I16x8
Arithmetic right shift of i16x8 by immediate.
Source§impl SimdOpsExt for ScalarFallback
impl SimdOpsExt for ScalarFallback
Source§fn load4_u8_to_i16x8(&self, src: &[u8]) -> I16x8
fn load4_u8_to_i16x8(&self, src: &[u8]) -> I16x8
Load 4 bytes from memory and zero-extend to i16x8.
Source§fn load8_u8_to_i16x8(&self, src: &[u8]) -> I16x8
fn load8_u8_to_i16x8(&self, src: &[u8]) -> I16x8
Load 8 bytes from memory and zero-extend to i16x8.
Source§fn store4_i16x8_as_u8(&self, v: I16x8, dst: &mut [u8])
fn store4_i16x8_as_u8(&self, v: I16x8, dst: &mut [u8])
Store lower 4 elements of i16x8 to memory as saturated u8.
Source§fn store8_i16x8_as_u8(&self, v: I16x8, dst: &mut [u8])
fn store8_i16x8_as_u8(&self, v: I16x8, dst: &mut [u8])
Store lower 8 elements of i16x8 to memory as saturated u8.
Source§fn transpose_4x4_i16(&self, rows: &[I16x8; 4]) -> [I16x8; 4]
fn transpose_4x4_i16(&self, rows: &[I16x8; 4]) -> [I16x8; 4]
Transpose 4x4 block of i16 values. Read more
Source§fn transpose_8x8_i16(&self, rows: &[I16x8; 8]) -> [I16x8; 8]
fn transpose_8x8_i16(&self, rows: &[I16x8; 8]) -> [I16x8; 8]
Transpose 8x8 block of i16 values.
impl Copy for ScalarFallback
Auto Trait Implementations§
impl Freeze for ScalarFallback
impl RefUnwindSafe for ScalarFallback
impl Send for ScalarFallback
impl Sync for ScalarFallback
impl Unpin for ScalarFallback
impl UnsafeUnpin for ScalarFallback
impl UnwindSafe for ScalarFallback
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more