🔬 This is a nightly-only experimental API. (portable_simd #86656)
Expand description

Portable SIMD module.

This module offers a portable abstraction for SIMD operations that is not bound to any particular hardware architecture.

Macros

simd_swizzleExperimental

Constructs a new vector by selecting values from the lanes of the source vector or vectors to use.

Structs

LaneCountExperimental

A type representing a vector lane count.

MaskExperimental

A SIMD vector mask for LANES elements of width specified by Element.

SimdExperimental

A SIMD vector of LANES elements of type T.

Enums

WhichExperimental

An index into one of two vectors.

Traits

MaskElementExperimental

Marker trait for types that may be used as SIMD mask elements.

SimdElementExperimental

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.

SupportedLaneCountExperimental

Helper trait for vector lane counts.

SwizzleExperimental

Create a vector from the elements of another vector.

Swizzle2Experimental

Create a vector from the elements of two other vectors.

Type Definitions

f32x2Experimental

Vector of two f32 values

f32x4Experimental

Vector of four f32 values

f32x8Experimental

Vector of eight f32 values

f32x16Experimental

Vector of 16 f32 values

f64x2Experimental

Vector of two f64 values

f64x4Experimental

Vector of four f64 values

f64x8Experimental

Vector of eight f64 values

i8x4Experimental

Vector of four i8 values

i8x8Experimental

Vector of eight i8 values

i8x16Experimental

Vector of 16 i8 values

i8x32Experimental

Vector of 32 i8 values

i8x64Experimental

Vector of 64 i8 values

i16x2Experimental

Vector of two i16 values

i16x4Experimental

Vector of four i16 values

i16x8Experimental

Vector of eight i16 values

i16x16Experimental

Vector of 16 i16 values

i16x32Experimental

Vector of 32 i16 values

i32x2Experimental

Vector of two i32 values

i32x4Experimental

Vector of four i32 values

i32x8Experimental

Vector of eight i32 values

i32x16Experimental

Vector of 16 i32 values

i64x2Experimental

Vector of two i64 values

i64x4Experimental

Vector of four i64 values

i64x8Experimental

Vector of eight i64 values

isizex2Experimental

Vector of two isize values

isizex4Experimental

Vector of four isize values

isizex8Experimental

Vector of eight isize values

mask8x8Experimental

Vector of eight 8-bit masks

mask8x16Experimental

Vector of 16 8-bit masks

mask8x32Experimental

Vector of 32 8-bit masks

mask8x64Experimental

Vector of 16 8-bit masks

mask16x4Experimental

Vector of four 16-bit masks

mask16x8Experimental

Vector of eight 16-bit masks

mask16x16Experimental

Vector of 16 16-bit masks

mask16x32Experimental

Vector of 32 16-bit masks

mask32x2Experimental

Vector of two 32-bit masks

mask32x4Experimental

Vector of four 32-bit masks

mask32x8Experimental

Vector of eight 32-bit masks

mask32x16Experimental

Vector of 16 32-bit masks

mask64x2Experimental

Vector of two 64-bit masks

mask64x4Experimental

Vector of four 64-bit masks

mask64x8Experimental

Vector of eight 64-bit masks

masksizex2Experimental

Vector of two pointer-width masks

masksizex4Experimental

Vector of four pointer-width masks

masksizex8Experimental

Vector of eight pointer-width masks

u8x4Experimental

Vector of four u8 values

u8x8Experimental

Vector of eight u8 values

u8x16Experimental

Vector of 16 u8 values

u8x32Experimental

Vector of 32 u8 values

u8x64Experimental

Vector of 64 u8 values

u16x2Experimental

Vector of two u16 values

u16x4Experimental

Vector of four u16 values

u16x8Experimental

Vector of eight u16 values

u16x16Experimental

Vector of 16 u16 values

u16x32Experimental

Vector of 32 u16 values

u32x2Experimental

Vector of two u32 values

u32x4Experimental

Vector of four u32 values

u32x8Experimental

Vector of eight u32 values

u32x16Experimental

Vector of 16 u32 values

u64x2Experimental

Vector of two u64 values

u64x4Experimental

Vector of four u64 values

u64x8Experimental

Vector of eight u64 values

usizex2Experimental

Vector of two usize values

usizex4Experimental

Vector of four usize values

usizex8Experimental

Vector of eight usize values