On this page
Module std::simd
🔬This is a nightly-only experimental API. (
portable_simd
#86656)
Portable SIMD module.
This module offers a portable abstraction for SIMD operations that is not bound to any particular hardware architecture.
Modules
-
preludeExperimentalThe portable SIMD prelude.
Macros
-
simd_swizzleExperimentalConstructs a new SIMD vector by copying elements from selected lanes in other vectors.
Structs
-
LaneCountExperimentalSpecifies the number of lanes in a SIMD vector as a type.
-
MaskExperimentalA SIMD vector mask for
LANES
elements of width specified byElement
. -
SimdExperimentalA SIMD vector with the shape of
[T; N]
but the operations ofT
.
Enums
-
WhichExperimentalSpecifies a lane index into one of two SIMD vectors.
Traits
-
MaskElementExperimentalMarker trait for types that may be used as SIMD mask elements.
-
SimdCastExperimentalSupporting trait for
Simd::cast
. Typically doesn’t need to be used directly. -
SimdConstPtrExperimentalOperations on SIMD vectors of constant pointers.
-
SimdElementExperimentalMarker trait for types that may be used as SIMD vector elements.
-
SimdFloatExperimentalOperations on SIMD vectors of floats.
-
SimdIntExperimentalOperations on SIMD vectors of signed integers.
-
SimdMutPtrExperimentalOperations on SIMD vectors of mutable pointers.
-
SimdOrdExperimentalParallel
Ord
. -
SimdPartialEqExperimentalParallel
PartialEq
. -
SimdPartialOrdExperimentalParallel
PartialOrd
. -
SimdUintExperimentalOperations on SIMD vectors of unsigned integers.
-
StdFloatExperimentalThis 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
. -
SupportedLaneCountExperimentalStatically guarantees that a lane count is marked as supported.
-
SwizzleExperimentalCreate a vector from the elements of another vector.
-
Swizzle2ExperimentalCreate a vector from the elements of two other vectors.
-
ToBitMaskExperimentalConverts masks to and from integer bitmasks.
Type Aliases
-
f32x1ExperimentalA SIMD vector with one element of type
f32
. -
f32x2ExperimentalA SIMD vector with two elements of type
f32
. -
f32x4ExperimentalA SIMD vector with four elements of type
f32
. -
f32x8ExperimentalA SIMD vector with eight elements of type
f32
. -
f32x16ExperimentalA SIMD vector with 16 elements of type
f32
. -
f32x32ExperimentalA SIMD vector with 32 elements of type
f32
. -
f32x64ExperimentalA SIMD vector with 64 elements of type
f32
. -
f64x1ExperimentalA SIMD vector with one element of type
f64
. -
f64x2ExperimentalA SIMD vector with two elements of type
f64
. -
f64x4ExperimentalA SIMD vector with four elements of type
f64
. -
f64x8ExperimentalA SIMD vector with eight elements of type
f64
. -
f64x16ExperimentalA SIMD vector with 16 elements of type
f64
. -
f64x32ExperimentalA SIMD vector with 32 elements of type
f64
. -
f64x64ExperimentalA SIMD vector with 64 elements of type
f64
. -
i8x1ExperimentalA SIMD vector with one element of type
i8
. -
i8x2ExperimentalA SIMD vector with two elements of type
i8
. -
i8x4ExperimentalA SIMD vector with four elements of type
i8
. -
i8x8ExperimentalA SIMD vector with eight elements of type
i8
. -
i8x16ExperimentalA SIMD vector with 16 elements of type
i8
. -
i8x32ExperimentalA SIMD vector with 32 elements of type
i8
. -
i8x64ExperimentalA SIMD vector with 64 elements of type
i8
. -
i16x1ExperimentalA SIMD vector with one element of type
i16
. -
i16x2ExperimentalA SIMD vector with two elements of type
i16
. -
i16x4ExperimentalA SIMD vector with four elements of type
i16
. -
i16x8ExperimentalA SIMD vector with eight elements of type
i16
. -
i16x16ExperimentalA SIMD vector with 16 elements of type
i16
. -
i16x32ExperimentalA SIMD vector with 32 elements of type
i16
. -
i16x64ExperimentalA SIMD vector with 64 elements of type
i16
. -
i32x1ExperimentalA SIMD vector with one element of type
i32
. -
i32x2ExperimentalA SIMD vector with two elements of type
i32
. -
i32x4ExperimentalA SIMD vector with four elements of type
i32
. -
i32x8ExperimentalA SIMD vector with eight elements of type
i32
. -
i32x16ExperimentalA SIMD vector with 16 elements of type
i32
. -
i32x32ExperimentalA SIMD vector with 32 elements of type
i32
. -
i32x64ExperimentalA SIMD vector with 64 elements of type
i32
. -
i64x1ExperimentalA SIMD vector with one element of type
i64
. -
i64x2ExperimentalA SIMD vector with two elements of type
i64
. -
i64x4ExperimentalA SIMD vector with four elements of type
i64
. -
i64x8ExperimentalA SIMD vector with eight elements of type
i64
. -
i64x16ExperimentalA SIMD vector with 16 elements of type
i64
. -
i64x32ExperimentalA SIMD vector with 32 elements of type
i64
. -
i64x64ExperimentalA SIMD vector with 64 elements of type
i64
. -
isizex1ExperimentalA SIMD vector with one element of type
isize
. -
isizex2ExperimentalA SIMD vector with two elements of type
isize
. -
isizex4ExperimentalA SIMD vector with four elements of type
isize
. -
isizex8ExperimentalA SIMD vector with eight elements of type
isize
. -
isizex16ExperimentalA SIMD vector with 16 elements of type
isize
. -
isizex32ExperimentalA SIMD vector with 32 elements of type
isize
. -
isizex64ExperimentalA SIMD vector with 64 elements of type
isize
. -
mask8x1ExperimentalA SIMD mask with one element for vectors with 8-bit element types.
-
mask8x2ExperimentalA SIMD mask with two elements for vectors with 8-bit element types.
-
mask8x4ExperimentalA SIMD mask with four elements for vectors with 8-bit element types.
-
mask8x8ExperimentalA SIMD mask with eight elements for vectors with 8-bit element types.
-
mask8x16ExperimentalA SIMD mask with 16 elements for vectors with 8-bit element types.
-
mask8x32ExperimentalA SIMD mask with 32 elements for vectors with 8-bit element types.
-
mask8x64ExperimentalA SIMD mask with 64 elements for vectors with 8-bit element types.
-
mask16x1ExperimentalA SIMD mask with one element for vectors with 16-bit element types.
-
mask16x2ExperimentalA SIMD mask with two elements for vectors with 16-bit element types.
-
mask16x4ExperimentalA SIMD mask with four elements for vectors with 16-bit element types.
-
mask16x8ExperimentalA SIMD mask with eight elements for vectors with 16-bit element types.
-
mask16x16ExperimentalA SIMD mask with 16 elements for vectors with 16-bit element types.
-
mask16x32ExperimentalA SIMD mask with 32 elements for vectors with 16-bit element types.
-
mask16x64ExperimentalA SIMD mask with 64 elements for vectors with 16-bit element types.
-
mask32x1ExperimentalA SIMD mask with one element for vectors with 32-bit element types.
-
mask32x2ExperimentalA SIMD mask with two elements for vectors with 32-bit element types.
-
mask32x4ExperimentalA SIMD mask with four elements for vectors with 32-bit element types.
-
mask32x8ExperimentalA SIMD mask with eight elements for vectors with 32-bit element types.
-
mask32x16ExperimentalA SIMD mask with 16 elements for vectors with 32-bit element types.
-
mask32x32ExperimentalA SIMD mask with 32 elements for vectors with 32-bit element types.
-
mask32x64ExperimentalA SIMD mask with 64 elements for vectors with 32-bit element types.
-
mask64x1ExperimentalA SIMD mask with one element for vectors with 64-bit element types.
-
mask64x2ExperimentalA SIMD mask with two elements for vectors with 64-bit element types.
-
mask64x4ExperimentalA SIMD mask with four elements for vectors with 64-bit element types.
-
mask64x8ExperimentalA SIMD mask with eight elements for vectors with 64-bit element types.
-
mask64x16ExperimentalA SIMD mask with 16 elements for vectors with 64-bit element types.
-
mask64x32ExperimentalA SIMD mask with 32 elements for vectors with 64-bit element types.
-
mask64x64ExperimentalA SIMD mask with 64 elements for vectors with 64-bit element types.
-
masksizex1ExperimentalA SIMD mask with one element for vectors with pointer-sized element types.
-
masksizex2ExperimentalA SIMD mask with two elements for vectors with pointer-sized element types.
-
masksizex4ExperimentalA SIMD mask with four elements for vectors with pointer-sized element types.
-
masksizex8ExperimentalA SIMD mask with eight elements for vectors with pointer-sized element types.
-
masksizex16ExperimentalA SIMD mask with 16 elements for vectors with pointer-sized element types.
-
masksizex32ExperimentalA SIMD mask with 32 elements for vectors with pointer-sized element types.
-
masksizex64ExperimentalA SIMD mask with 64 elements for vectors with pointer-sized element types.
-
u8x1ExperimentalA SIMD vector with one element of type
u8
. -
u8x2ExperimentalA SIMD vector with two elements of type
u8
. -
u8x4ExperimentalA SIMD vector with four elements of type
u8
. -
u8x8ExperimentalA SIMD vector with eight elements of type
u8
. -
u8x16ExperimentalA SIMD vector with 16 elements of type
u8
. -
u8x32ExperimentalA SIMD vector with 32 elements of type
u8
. -
u8x64ExperimentalA SIMD vector with 64 elements of type
u8
. -
u16x1ExperimentalA SIMD vector with one element of type
u16
. -
u16x2ExperimentalA SIMD vector with two elements of type
u16
. -
u16x4ExperimentalA SIMD vector with four elements of type
u16
. -
u16x8ExperimentalA SIMD vector with eight elements of type
u16
. -
u16x16ExperimentalA SIMD vector with 16 elements of type
u16
. -
u16x32ExperimentalA SIMD vector with 32 elements of type
u16
. -
u16x64ExperimentalA SIMD vector with 64 elements of type
u16
. -
u32x1ExperimentalA SIMD vector with one element of type
u32
. -
u32x2ExperimentalA SIMD vector with two elements of type
u32
. -
u32x4ExperimentalA SIMD vector with four elements of type
u32
. -
u32x8ExperimentalA SIMD vector with eight elements of type
u32
. -
u32x16ExperimentalA SIMD vector with 16 elements of type
u32
. -
u32x32ExperimentalA SIMD vector with 32 elements of type
u32
. -
u32x64ExperimentalA SIMD vector with 64 elements of type
u32
. -
u64x1ExperimentalA SIMD vector with one element of type
u64
. -
u64x2ExperimentalA SIMD vector with two elements of type
u64
. -
u64x4ExperimentalA SIMD vector with four elements of type
u64
. -
u64x8ExperimentalA SIMD vector with eight elements of type
u64
. -
u64x16ExperimentalA SIMD vector with 16 elements of type
u64
. -
u64x32ExperimentalA SIMD vector with 32 elements of type
u64
. -
u64x64ExperimentalA SIMD vector with 64 elements of type
u64
. -
usizex1ExperimentalA SIMD vector with one element of type
usize
. -
usizex2ExperimentalA SIMD vector with two elements of type
usize
. -
usizex4ExperimentalA SIMD vector with four elements of type
usize
. -
usizex8ExperimentalA SIMD vector with eight elements of type
usize
. -
usizex16ExperimentalA SIMD vector with 16 elements of type
usize
. -
usizex32ExperimentalA SIMD vector with 32 elements of type
usize
. -
usizex64ExperimentalA SIMD vector with 64 elements of type
usize
.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/simd/index.html