vsimd

Trait Scalable

Source
pub unsafe trait Scalable<V: POD>: InstructionSet {
Show 30 methods // Required methods fn u16xn_shl<const IMM8: i32>(self, a: V) -> V; fn u16xn_shr<const IMM8: i32>(self, a: V) -> V; fn u32xn_shr<const IMM8: i32>(self, a: V) -> V; fn u8xn_avgr(self, a: V, b: V) -> V; fn u8x16xn_swizzle(self, a: V, b: V) -> V; fn all_zero(self, a: V) -> bool; fn mask8xn_all(self, a: V) -> bool; fn mask8xn_any(self, a: V) -> bool; fn u8xn_highbit_all(self, a: V) -> bool; fn u8xn_highbit_any(self, a: V) -> bool; fn u16xn_bswap(self, a: V) -> V; fn u32xn_bswap(self, a: V) -> V; fn u64xn_bswap(self, a: V) -> V; // Provided methods fn and(self, a: V, b: V) -> V { ... } fn or(self, a: V, b: V) -> V { ... } fn xor(self, a: V, b: V) -> V { ... } fn andnot(self, a: V, b: V) -> V { ... } fn u8xn_splat(self, x: u8) -> V { ... } fn i8xn_splat(self, x: i8) -> V { ... } fn u32xn_splat(self, x: u32) -> V { ... } fn u8xn_add(self, a: V, b: V) -> V { ... } fn u8xn_sub(self, a: V, b: V) -> V { ... } fn u32xn_sub(self, a: V, b: V) -> V { ... } fn u8xn_add_sat(self, a: V, b: V) -> V { ... } fn i8xn_add_sat(self, a: V, b: V) -> V { ... } fn u8xn_sub_sat(self, a: V, b: V) -> V { ... } fn u8xn_eq(self, a: V, b: V) -> V { ... } fn i8xn_lt(self, a: V, b: V) -> V { ... } fn u32xn_lt(self, a: V, b: V) -> V { ... } fn u32xn_max(self, a: V, b: V) -> V { ... }
}

Required Methods§

Source

fn u16xn_shl<const IMM8: i32>(self, a: V) -> V

Source

fn u16xn_shr<const IMM8: i32>(self, a: V) -> V

Source

fn u32xn_shr<const IMM8: i32>(self, a: V) -> V

Source

fn u8xn_avgr(self, a: V, b: V) -> V

Source

fn u8x16xn_swizzle(self, a: V, b: V) -> V

Source

fn all_zero(self, a: V) -> bool

Source

fn mask8xn_all(self, a: V) -> bool

Source

fn mask8xn_any(self, a: V) -> bool

Source

fn u8xn_highbit_all(self, a: V) -> bool

Source

fn u8xn_highbit_any(self, a: V) -> bool

Source

fn u16xn_bswap(self, a: V) -> V

Source

fn u32xn_bswap(self, a: V) -> V

Source

fn u64xn_bswap(self, a: V) -> V

Provided Methods§

Source

fn and(self, a: V, b: V) -> V

Source

fn or(self, a: V, b: V) -> V

Source

fn xor(self, a: V, b: V) -> V

Source

fn andnot(self, a: V, b: V) -> V

Source

fn u8xn_splat(self, x: u8) -> V

Source

fn i8xn_splat(self, x: i8) -> V

Source

fn u32xn_splat(self, x: u32) -> V

Source

fn u8xn_add(self, a: V, b: V) -> V

Source

fn u8xn_sub(self, a: V, b: V) -> V

Source

fn u32xn_sub(self, a: V, b: V) -> V

Source

fn u8xn_add_sat(self, a: V, b: V) -> V

Source

fn i8xn_add_sat(self, a: V, b: V) -> V

Source

fn u8xn_sub_sat(self, a: V, b: V) -> V

Source

fn u8xn_eq(self, a: V, b: V) -> V

Source

fn i8xn_lt(self, a: V, b: V) -> V

Source

fn u32xn_lt(self, a: V, b: V) -> V

Source

fn u32xn_max(self, a: V, b: V) -> V

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<S> Scalable<V128> for S
where S: SIMD128,

Source§

impl<S> Scalable<V256> for S
where S: SIMD256,