Module std::simd

source ·
🔬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 SIMD vector by copying elements from selected lanes in other vectors.

Structs

LaneCountExperimental
Specifies the number of lanes in a SIMD vector as a type.
MaskExperimental
A SIMD vector mask for LANES elements of width specified by Element.
SimdExperimental
A SIMD vector of LANES elements of type T. Simd<T, N> has the same shape as [T; N], but operates like T.

Enums

WhichExperimental
Specifies a lane index into one of two SIMD 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.
SimdFloatExperimental
Operations on SIMD vectors of floats.
SimdIntExperimental
Operations on SIMD vectors of signed integers.
SimdOrdExperimental
Parallel Ord.
SimdPartialEqExperimental
Parallel PartialEq.
SimdPartialOrdExperimental
Parallel PartialOrd.
SimdUintExperimental
Operations on SIMD vectors of unsigned integers.
StdFloatExperimental
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.
SupportedLaneCountExperimental
Statically guarantees that a lane count is marked as supported.
SwizzleExperimental
Create a vector from the elements of another vector.
Swizzle2Experimental
Create a vector from the elements of two other vectors.
ToBitMaskExperimental
Converts masks to and from integer bitmasks.

Type Definitions

f32x2Experimental
A 64-bit SIMD vector with two elements of type f32.
f32x4Experimental
A 128-bit SIMD vector with four elements of type f32.
f32x8Experimental
A 256-bit SIMD vector with eight elements of type f32.
f32x16Experimental
A 512-bit SIMD vector with 16 elements of type f32.
f64x2Experimental
A 128-bit SIMD vector with two elements of type f64.
f64x4Experimental
A 256-bit SIMD vector with four elements of type f64.
f64x8Experimental
A 512-bit SIMD vector with eight elements of type f64.
i8x4Experimental
A 32-bit SIMD vector with four elements of type i8.
i8x8Experimental
A 64-bit SIMD vector with eight elements of type i8.
i8x16Experimental
A 128-bit SIMD vector with 16 elements of type i8.
i8x32Experimental
A 256-bit SIMD vector with 32 elements of type i8.
i8x64Experimental
A 512-bit SIMD vector with 64 elements of type i8.
i16x2Experimental
A 32-bit SIMD vector with two elements of type i16.
i16x4Experimental
A 64-bit SIMD vector with four elements of type i16.
i16x8Experimental
A 128-bit SIMD vector with eight elements of type i16.
i16x16Experimental
A 256-bit SIMD vector with 16 elements of type i16.
i16x32Experimental
A 512-bit SIMD vector with 32 elements of type i16.
i32x2Experimental
A 64-bit SIMD vector with two elements of type i32.
i32x4Experimental
A 128-bit SIMD vector with four elements of type i32.
i32x8Experimental
A 256-bit SIMD vector with eight elements of type i32.
i32x16Experimental
A 512-bit SIMD vector with 16 elements of type i32.
i64x2Experimental
A 128-bit SIMD vector with two elements of type i64.
i64x4Experimental
A 256-bit SIMD vector with four elements of type i64.
i64x8Experimental
A 512-bit SIMD vector with eight elements of type i64.
isizex2Experimental
A SIMD vector with two elements of type isize.
isizex4Experimental
A SIMD vector with four elements of type isize.
isizex8Experimental
A SIMD vector with eight elements of type isize.
mask8x8Experimental
A mask for SIMD vectors with eight elements of 8 bits.
mask8x16Experimental
A mask for SIMD vectors with 16 elements of 8 bits.
mask8x32Experimental
A mask for SIMD vectors with 32 elements of 8 bits.
mask8x64Experimental
A mask for SIMD vectors with 64 elements of 8 bits.
mask16x4Experimental
A mask for SIMD vectors with four elements of 16 bits.
mask16x8Experimental
A mask for SIMD vectors with eight elements of 16 bits.
mask16x16Experimental
A mask for SIMD vectors with 16 elements of 16 bits.
mask16x32Experimental
A mask for SIMD vectors with 32 elements of 16 bits.
mask32x2Experimental
A mask for SIMD vectors with two elements of 32 bits.
mask32x4Experimental
A mask for SIMD vectors with four elements of 32 bits.
mask32x8Experimental
A mask for SIMD vectors with eight elements of 32 bits.
mask32x16Experimental
A mask for SIMD vectors with 16 elements of 32 bits.
mask64x2Experimental
A mask for SIMD vectors with two elements of 64 bits.
mask64x4Experimental
A mask for SIMD vectors with four elements of 64 bits.
mask64x8Experimental
A mask for SIMD vectors with eight elements of 64 bits.
masksizex2Experimental
A mask for SIMD vectors with two elements of pointer width.
masksizex4Experimental
A mask for SIMD vectors with four elements of pointer width.
masksizex8Experimental
A mask for SIMD vectors with eight elements of pointer width.
u8x4Experimental
A 32-bit SIMD vector with four elements of type u8.
u8x8Experimental
A 64-bit SIMD vector with eight elements of type u8.
u8x16Experimental
A 128-bit SIMD vector with 16 elements of type u8.
u8x32Experimental
A 256-bit SIMD vector with 32 elements of type u8.
u8x64Experimental
A 512-bit SIMD vector with 64 elements of type u8.
u16x2Experimental
A 32-bit SIMD vector with two elements of type u16.
u16x4Experimental
A 64-bit SIMD vector with four elements of type u16.
u16x8Experimental
A 128-bit SIMD vector with eight elements of type u16.
u16x16Experimental
A 256-bit SIMD vector with 16 elements of type u16.
u16x32Experimental
A 512-bit SIMD vector with 32 elements of type u16.
u32x2Experimental
A 64-bit SIMD vector with two elements of type u32.
u32x4Experimental
A 128-bit SIMD vector with four elements of type u32.
u32x8Experimental
A 256-bit SIMD vector with eight elements of type u32.
u32x16Experimental
A 512-bit SIMD vector with 16 elements of type u32.
u64x2Experimental
A 128-bit SIMD vector with two elements of type u64.
u64x4Experimental
A 256-bit SIMD vector with four elements of type u64.
u64x8Experimental
A 512-bit SIMD vector with eight elements of type u64.
usizex2Experimental
A SIMD vector with two elements of type usize.
usizex4Experimental
A SIMD vector with four elements of type usize.
usizex8Experimental
A SIMD vector with eight elements of type usize.