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