Expand description
Portable SIMD module.
This module offers a portable abstraction for SIMD operations that is not bound to any particular hardware architecture.
Macros
Constructs a new vector by selecting values from the lanes of the source vector or vectors to use.
Structs
A type representing a vector lane count.
A SIMD vector mask for LANES
elements of width specified by Element
.
A SIMD vector of LANES
elements of type T
.
Enums
An index into one of two vectors.
Traits
Marker trait for types that may be used as SIMD mask elements.
Marker trait for types that may be used as SIMD vector elements.
SAFETY: This trait, when implemented, asserts the compiler can monomorphize
#[repr(simd)]
structs with the marked type as an element.
Strictly, it is valid to impl if the vector will not be miscompiled.
Practically, it is user-unfriendly to impl it if the vector won’t compile,
even when no soundness guarantees are broken by allowing the user to try.
This trait provides a possibly-temporary implementation of float functions
that may, in the absence of hardware support, canonicalize to calling an
operating system’s math.h
dynamically-loaded library (also known as a
shared object). As these conditionally require runtime support, they
should only appear in binaries built assuming OS support: std
.
Helper trait for vector lane counts.
Create a vector from the elements of another vector.
Create a vector from the elements of two other vectors.
Type Definitions
Vector of two f32
values
Vector of four f32
values
Vector of eight f32
values
Vector of 16 f32
values
Vector of two f64
values
Vector of four f64
values
Vector of eight f64
values
Vector of four i8
values
Vector of eight i8
values
Vector of 16 i8
values
Vector of 32 i8
values
Vector of 64 i8
values
Vector of two i16
values
Vector of four i16
values
Vector of eight i16
values
Vector of 16 i16
values
Vector of 32 i16
values
Vector of two i32
values
Vector of four i32
values
Vector of eight i32
values
Vector of 16 i32
values
Vector of two i64
values
Vector of four i64
values
Vector of eight i64
values
Vector of two isize
values
Vector of four isize
values
Vector of eight isize
values
Vector of eight 8-bit masks
Vector of 16 8-bit masks
Vector of 32 8-bit masks
Vector of 16 8-bit masks
Vector of four 16-bit masks
Vector of eight 16-bit masks
Vector of 16 16-bit masks
Vector of 32 16-bit masks
Vector of two 32-bit masks
Vector of four 32-bit masks
Vector of eight 32-bit masks
Vector of 16 32-bit masks
Vector of two 64-bit masks
Vector of four 64-bit masks
Vector of eight 64-bit masks
Vector of two pointer-width masks
Vector of four pointer-width masks
Vector of eight pointer-width masks
Vector of four u8
values
Vector of eight u8
values
Vector of 16 u8
values
Vector of 32 u8
values
Vector of 64 u8
values
Vector of two u16
values
Vector of four u16
values
Vector of eight u16
values
Vector of 16 u16
values
Vector of 32 u16
values
Vector of two u32
values
Vector of four u32
values
Vector of eight u32
values
Vector of 16 u32
values
Vector of two u64
values
Vector of four u64
values
Vector of eight u64
values
Vector of two usize
values
Vector of four usize
values
Vector of eight usize
values