vsimd::isa

Struct SSSE3

Source
pub struct SSSE3(/* private fields */);

Trait Implementations§

Source§

impl Clone for SSSE3

Source§

fn clone(&self) -> SSSE3

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SSSE3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl InstructionSet for SSSE3

Source§

const ID: InstructionSetTypeId = InstructionSetTypeId::SSSE3

Source§

const ARCH: bool = true

Source§

unsafe fn new() -> Self

Source§

fn is_enabled() -> bool

Source§

impl SIMD128 for SSSE3

Source§

unsafe fn v128_load(self, addr: *const u8) -> V128

T1: SSE2, NEON, WASM128
Source§

unsafe fn v128_load_unaligned(self, addr: *const u8) -> V128

T1: SSE2, NEON, WASM128
Source§

unsafe fn v128_store(self, addr: *mut u8, a: V128)

T1: SSE2, NEON, WASM128
Source§

unsafe fn v128_store_unaligned(self, addr: *mut u8, a: V128)

T1: SSE2, NEON, WASM128
Source§

fn v128_create_zero(self) -> V128

T1: SSE2, NEON, WASM128
Source§

fn v128_not(self, a: V128) -> V128

T1: NEON, WASM128 Read more
Source§

fn v128_and(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn v128_or(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn v128_xor(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn v128_andnot(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn v128_all_zero(self, a: V128) -> bool

T1: SSE41, NEON-A64, WASM128 Read more
Source§

fn u8x16_splat(self, x: u8) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_splat(self, x: u16) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_splat(self, x: u32) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u64x2_splat(self, x: u64) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i8x16_splat(self, x: i8) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i16x8_splat(self, x: i16) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i32x4_splat(self, x: i32) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i64x2_splat(self, x: i64) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_add(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_add(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_add(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u64x2_add(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_sub(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_sub(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_sub(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u64x2_sub(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_sub_sat(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_sub_sat(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i8x16_sub_sat(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i16x8_sub_sat(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i16x8_mul_lo(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i32x4_mul_lo(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u16x8_shl<const IMM8: i32>(self, a: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_shl<const IMM8: i32>(self, a: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_shr<const IMM8: i32>(self, a: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_shr<const IMM8: i32>(self, a: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_eq(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_eq(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_eq(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_lt(self, a: V128, b: V128) -> V128

T1: NEON, WASM128 Read more
Source§

fn u16x8_lt(self, a: V128, b: V128) -> V128

T1: NEON, WASM128 Read more
Source§

fn u32x4_lt(self, a: V128, b: V128) -> V128

T1: NEON, WASM128 Read more
Source§

fn i8x16_lt(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i16x8_lt(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i32x4_lt(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_max(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_max(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u32x4_max(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn i8x16_max(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn i16x8_max(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i32x4_max(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u8x16_min(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_min(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u32x4_min(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn i8x16_min(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn i16x8_min(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i32x4_min(self, a: V128, b: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u8x16_swizzle(self, a: V128, b: V128) -> V128

T1: SSSE3, NEON-A64, WASM128 Read more
Source§

fn u16x8_bswap(self, a: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u32x4_bswap(self, a: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u64x2_bswap(self, a: V128) -> V128

T1: SSE41, NEON, WASM128
Source§

fn u8x16_any_zero(self, a: V128) -> bool

T1: NEON-A64, WASM128 Read more
Source§

fn u8x16_bitmask(self, a: V128) -> u16

T1: SSE2, WASM128
Source§

fn u8x16_reduce_max(self, a: V128) -> u8

T1: NEON-A64
Source§

fn u8x16_reduce_min(self, a: V128) -> u8

T1: NEON-A64
Source§

fn v128_bsl(self, a: V128, b: V128, c: V128) -> V128

T1: NEON Read more
Source§

fn u8x16_zip_lo(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_zip_hi(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_zip_lo(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u16x8_zip_hi(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_zip_lo(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u32x4_zip_hi(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u64x2_zip_lo(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u64x2_zip_hi(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_unzip_even(self, a: V128, b: V128) -> V128

T1: NEON, WASM128
Source§

fn u8x16_unzip_odd(self, a: V128, b: V128) -> V128

T1: NEON, WASM128
Source§

fn u16x8_mul_hi(self, a: V128, b: V128) -> V128

T1: SSE2
Source§

fn i16x8_mul_hi(self, a: V128, b: V128) -> V128

T1: SSE2
Source§

fn i16x8_maddubs(self, a: V128, b: V128) -> V128

T1: SSSE3
Source§

fn u16x8_blend<const IMM8: i32>(self, a: V128, b: V128) -> V128

T1: SSE41
Source§

fn u8x16_blendv(self, a: V128, b: V128, c: V128) -> V128

if highbit(c) { b } else { a } Read more
Source§

fn i16x8_madd(self, a: V128, b: V128) -> V128

T1: SSE2
Source§

fn u8x16_avgr(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i8x16_add_sat(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn u8x16_add_sat(self, a: V128, b: V128) -> V128

T1: SSE2, NEON, WASM128
Source§

fn i16x8_packus(self, a: V128, b: V128) -> V128

T1: SSE2
Source§

impl SIMD256 for SSSE3

Source§

unsafe fn v256_load(self, addr: *const u8) -> V256

Source§

unsafe fn v256_load_unaligned(self, addr: *const u8) -> V256

Source§

unsafe fn v256_store(self, addr: *mut u8, a: V256)

Source§

unsafe fn v256_store_unaligned(self, addr: *mut u8, a: V256)

Source§

fn v256_create_zero(self) -> V256

Source§

fn v256_not(self, a: V256) -> V256

Source§

fn v256_and(self, a: V256, b: V256) -> V256

Source§

fn v256_or(self, a: V256, b: V256) -> V256

Source§

fn v256_xor(self, a: V256, b: V256) -> V256

Source§

fn v256_andnot(self, a: V256, b: V256) -> V256

Source§

fn v256_all_zero(self, a: V256) -> bool

Source§

fn u8x32_splat(self, x: u8) -> V256

Source§

fn u16x16_splat(self, x: u16) -> V256

Source§

fn u32x8_splat(self, x: u32) -> V256

Source§

fn u64x4_splat(self, x: u64) -> V256

Source§

fn i8x32_splat(self, x: i8) -> V256

Source§

fn i16x16_splat(self, x: i16) -> V256

Source§

fn i32x8_splat(self, x: i32) -> V256

Source§

fn i64x4_splat(self, x: i64) -> V256

Source§

fn u8x32_add(self, a: V256, b: V256) -> V256

Source§

fn u16x16_add(self, a: V256, b: V256) -> V256

Source§

fn u32x8_add(self, a: V256, b: V256) -> V256

Source§

fn u64x4_add(self, a: V256, b: V256) -> V256

Source§

fn u8x32_sub(self, a: V256, b: V256) -> V256

Source§

fn u16x16_sub(self, a: V256, b: V256) -> V256

Source§

fn u32x8_sub(self, a: V256, b: V256) -> V256

Source§

fn u64x4_sub(self, a: V256, b: V256) -> V256

Source§

fn u8x32_sub_sat(self, a: V256, b: V256) -> V256

Source§

fn u16x16_sub_sat(self, a: V256, b: V256) -> V256

Source§

fn i8x32_sub_sat(self, a: V256, b: V256) -> V256

Source§

fn i16x16_sub_sat(self, a: V256, b: V256) -> V256

Source§

fn i16x16_mul_lo(self, a: V256, b: V256) -> V256

Source§

fn i32x8_mul_lo(self, a: V256, b: V256) -> V256

Source§

fn u16x16_shl<const IMM8: i32>(self, a: V256) -> V256

Source§

fn u32x8_shl<const IMM8: i32>(self, a: V256) -> V256

Source§

fn u16x16_shr<const IMM8: i32>(self, a: V256) -> V256

Source§

fn u32x8_shr<const IMM8: i32>(self, a: V256) -> V256

Source§

fn u8x32_eq(self, a: V256, b: V256) -> V256

Source§

fn u16x16_eq(self, a: V256, b: V256) -> V256

Source§

fn u32x8_eq(self, a: V256, b: V256) -> V256

Source§

fn u8x32_lt(self, a: V256, b: V256) -> V256

Source§

fn u16x16_lt(self, a: V256, b: V256) -> V256

Source§

fn u32x8_lt(self, a: V256, b: V256) -> V256

Source§

fn i8x32_lt(self, a: V256, b: V256) -> V256

Source§

fn i16x16_lt(self, a: V256, b: V256) -> V256

Source§

fn i32x8_lt(self, a: V256, b: V256) -> V256

Source§

fn u8x32_max(self, a: V256, b: V256) -> V256

Source§

fn u16x16_max(self, a: V256, b: V256) -> V256

Source§

fn u32x8_max(self, a: V256, b: V256) -> V256

Source§

fn i8x32_max(self, a: V256, b: V256) -> V256

Source§

fn i16x16_max(self, a: V256, b: V256) -> V256

Source§

fn i32x8_max(self, a: V256, b: V256) -> V256

Source§

fn u8x32_min(self, a: V256, b: V256) -> V256

Source§

fn u16x16_min(self, a: V256, b: V256) -> V256

Source§

fn u32x8_min(self, a: V256, b: V256) -> V256

Source§

fn i8x32_min(self, a: V256, b: V256) -> V256

Source§

fn i16x16_min(self, a: V256, b: V256) -> V256

Source§

fn i32x8_min(self, a: V256, b: V256) -> V256

Source§

fn u8x16x2_swizzle(self, a: V256, b: V256) -> V256

Source§

fn u16x16_bswap(self, a: V256) -> V256

Source§

fn u32x8_bswap(self, a: V256) -> V256

Source§

fn u64x4_bswap(self, a: V256) -> V256

Source§

fn u8x32_swizzle(self, a: V256, b: V256) -> V256

Source§

fn u8x32_any_zero(self, a: V256) -> bool

Source§

fn u8x32_bitmask(self, a: V256) -> u32

Source§

fn u8x32_reduce_max(self, a: V256) -> u8

Source§

fn u8x32_reduce_min(self, a: V256) -> u8

Source§

fn v256_bsl(self, a: V256, b: V256, c: V256) -> V256

for each bit: if a == 1 { b } else { c } Read more
Source§

fn u16x16_from_u8x16(self, a: V128) -> V256

Source§

fn u8x16x2_zip_lo(self, a: V256, b: V256) -> V256

Source§

fn u8x16x2_zip_hi(self, a: V256, b: V256) -> V256

Source§

fn u16x8x2_zip_lo(self, a: V256, b: V256) -> V256

Source§

fn u16x8x2_zip_hi(self, a: V256, b: V256) -> V256

Source§

fn u32x4x2_zip_lo(self, a: V256, b: V256) -> V256

Source§

fn u32x4x2_zip_hi(self, a: V256, b: V256) -> V256

Source§

fn u64x2x2_zip_lo(self, a: V256, b: V256) -> V256

Source§

fn u64x2x2_zip_hi(self, a: V256, b: V256) -> V256

Source§

fn v128x2_zip_lo(self, a: V256, b: V256) -> V256

Source§

fn v128x2_zip_hi(self, a: V256, b: V256) -> V256

Source§

fn u64x4_permute<const IMM8: i32>(self, a: V256) -> V256

Source§

fn u8x32_unzip_even(self, a: V256, b: V256) -> V256

Source§

fn u8x32_unzip_odd(self, a: V256, b: V256) -> V256

Source§

fn u64x4_unzip_even(self, a: V256, b: V256) -> V256

Source§

fn u64x4_unzip_odd(self, a: V256, b: V256) -> V256

Source§

fn u16x16_mul_hi(self, a: V256, b: V256) -> V256

Source§

fn i16x16_mul_hi(self, a: V256, b: V256) -> V256

Source§

fn i16x16_maddubs(self, a: V256, b: V256) -> V256

Source§

fn u32x8_blend<const IMM8: i32>(self, a: V256, b: V256) -> V256

Source§

fn u8x32_blendv(self, a: V256, b: V256, c: V256) -> V256

if highbit(c) { b } else { a }
Source§

fn i16x16_madd(self, a: V256, b: V256) -> V256

Source§

fn u8x32_avgr(self, a: V256, b: V256) -> V256

Source§

fn i8x32_add_sat(self, a: V256, b: V256) -> V256

Source§

fn u8x32_add_sat(self, a: V256, b: V256) -> V256

Source§

impl SIMD64 for SSSE3

Source§

fn u8x8_unzip_even(self, a: V64, b: V64) -> V64

Source§

impl Copy for SSSE3

Auto Trait Implementations§

§

impl Freeze for SSSE3

§

impl RefUnwindSafe for SSSE3

§

impl Send for SSSE3

§

impl Sync for SSSE3

§

impl Unpin for SSSE3

§

impl UnwindSafe for SSSE3

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.