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 with the shape of [T; N] but the operations of 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.
  • SimdCastExperimental
    Supporting trait for Simd::cast. Typically doesn’t need to be used directly.
  • SimdCastPtrExperimental
    Supporting trait for Simd::cast_ptr. Typically doesn’t need to be used directly.
  • SimdConstPtrExperimental
    Operations on SIMD vectors of constant pointers.
  • 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.
  • SimdMutPtrExperimental
    Operations on SIMD vectors of mutable pointers.
  • 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

  • f32x1Experimental
    A SIMD vector with one element of type f32.
  • f32x2Experimental
    A SIMD vector with two elements of type f32.
  • f32x4Experimental
    A SIMD vector with four elements of type f32.
  • f32x8Experimental
    A SIMD vector with eight elements of type f32.
  • f32x16Experimental
    A SIMD vector with 16 elements of type f32.
  • f32x32Experimental
    A SIMD vector with 32 elements of type f32.
  • f32x64Experimental
    A SIMD vector with 64 elements of type f32.
  • f64x1Experimental
    A SIMD vector with one element of type f64.
  • f64x2Experimental
    A SIMD vector with two elements of type f64.
  • f64x4Experimental
    A SIMD vector with four elements of type f64.
  • f64x8Experimental
    A SIMD vector with eight elements of type f64.
  • f64x16Experimental
    A SIMD vector with 16 elements of type f64.
  • f64x32Experimental
    A SIMD vector with 32 elements of type f64.
  • f64x64Experimental
    A SIMD vector with 64 elements of type f64.
  • i8x1Experimental
    A SIMD vector with one element of type i8.
  • i8x2Experimental
    A SIMD vector with two elements of type i8.
  • i8x4Experimental
    A SIMD vector with four elements of type i8.
  • i8x8Experimental
    A SIMD vector with eight elements of type i8.
  • i8x16Experimental
    A SIMD vector with 16 elements of type i8.
  • i8x32Experimental
    A SIMD vector with 32 elements of type i8.
  • i8x64Experimental
    A SIMD vector with 64 elements of type i8.
  • i16x1Experimental
    A SIMD vector with one element of type i16.
  • i16x2Experimental
    A SIMD vector with two elements of type i16.
  • i16x4Experimental
    A SIMD vector with four elements of type i16.
  • i16x8Experimental
    A SIMD vector with eight elements of type i16.
  • i16x16Experimental
    A SIMD vector with 16 elements of type i16.
  • i16x32Experimental
    A SIMD vector with 32 elements of type i16.
  • i16x64Experimental
    A SIMD vector with 64 elements of type i16.
  • i32x1Experimental
    A SIMD vector with one element of type i32.
  • i32x2Experimental
    A SIMD vector with two elements of type i32.
  • i32x4Experimental
    A SIMD vector with four elements of type i32.
  • i32x8Experimental
    A SIMD vector with eight elements of type i32.
  • i32x16Experimental
    A SIMD vector with 16 elements of type i32.
  • i32x32Experimental
    A SIMD vector with 32 elements of type i32.
  • i32x64Experimental
    A SIMD vector with 64 elements of type i32.
  • i64x1Experimental
    A SIMD vector with one element of type i64.
  • i64x2Experimental
    A SIMD vector with two elements of type i64.
  • i64x4Experimental
    A SIMD vector with four elements of type i64.
  • i64x8Experimental
    A SIMD vector with eight elements of type i64.
  • i64x16Experimental
    A SIMD vector with 16 elements of type i64.
  • i64x32Experimental
    A SIMD vector with 32 elements of type i64.
  • i64x64Experimental
    A SIMD vector with 64 elements of type i64.
  • isizex1Experimental
    A SIMD vector with one element of type isize.
  • 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.
  • isizex16Experimental
    A SIMD vector with 16 elements of type isize.
  • isizex32Experimental
    A SIMD vector with 32 elements of type isize.
  • isizex64Experimental
    A SIMD vector with 64 elements of type isize.
  • mask8x1Experimental
    A SIMD mask with one element for vectors with 8-bit element types.
  • mask8x2Experimental
    A SIMD mask with two elements for vectors with 8-bit element types.
  • mask8x4Experimental
    A SIMD mask with four elements for vectors with 8-bit element types.
  • mask8x8Experimental
    A SIMD mask with eight elements for vectors with 8-bit element types.
  • mask8x16Experimental
    A SIMD mask with 16 elements for vectors with 8-bit element types.
  • mask8x32Experimental
    A SIMD mask with 32 elements for vectors with 8-bit element types.
  • mask8x64Experimental
    A SIMD mask with 64 elements for vectors with 8-bit element types.
  • mask16x1Experimental
    A SIMD mask with one element for vectors with 16-bit element types.
  • mask16x2Experimental
    A SIMD mask with two elements for vectors with 16-bit element types.
  • mask16x4Experimental
    A SIMD mask with four elements for vectors with 16-bit element types.
  • mask16x8Experimental
    A SIMD mask with eight elements for vectors with 16-bit element types.
  • mask16x16Experimental
    A SIMD mask with 16 elements for vectors with 16-bit element types.
  • mask16x32Experimental
    A SIMD mask with 32 elements for vectors with 16-bit element types.
  • mask16x64Experimental
    A SIMD mask with 64 elements for vectors with 16-bit element types.
  • mask32x1Experimental
    A SIMD mask with one element for vectors with 32-bit element types.
  • mask32x2Experimental
    A SIMD mask with two elements for vectors with 32-bit element types.
  • mask32x4Experimental
    A SIMD mask with four elements for vectors with 32-bit element types.
  • mask32x8Experimental
    A SIMD mask with eight elements for vectors with 32-bit element types.
  • mask32x16Experimental
    A SIMD mask with 16 elements for vectors with 32-bit element types.
  • mask32x32Experimental
    A SIMD mask with 32 elements for vectors with 32-bit element types.
  • mask32x64Experimental
    A SIMD mask with 64 elements for vectors with 32-bit element types.
  • mask64x1Experimental
    A SIMD mask with one element for vectors with 64-bit element types.
  • mask64x2Experimental
    A SIMD mask with two elements for vectors with 64-bit element types.
  • mask64x4Experimental
    A SIMD mask with four elements for vectors with 64-bit element types.
  • mask64x8Experimental
    A SIMD mask with eight elements for vectors with 64-bit element types.
  • mask64x16Experimental
    A SIMD mask with 16 elements for vectors with 64-bit element types.
  • mask64x32Experimental
    A SIMD mask with 32 elements for vectors with 64-bit element types.
  • mask64x64Experimental
    A SIMD mask with 64 elements for vectors with 64-bit element types.
  • masksizex1Experimental
    A SIMD mask with one element for vectors with pointer-sized element types.
  • masksizex2Experimental
    A SIMD mask with two elements for vectors with pointer-sized element types.
  • masksizex4Experimental
    A SIMD mask with four elements for vectors with pointer-sized element types.
  • masksizex8Experimental
    A SIMD mask with eight elements for vectors with pointer-sized element types.
  • masksizex16Experimental
    A SIMD mask with 16 elements for vectors with pointer-sized element types.
  • masksizex32Experimental
    A SIMD mask with 32 elements for vectors with pointer-sized element types.
  • masksizex64Experimental
    A SIMD mask with 64 elements for vectors with pointer-sized element types.
  • u8x1Experimental
    A SIMD vector with one element of type u8.
  • u8x2Experimental
    A SIMD vector with two elements of type u8.
  • u8x4Experimental
    A SIMD vector with four elements of type u8.
  • u8x8Experimental
    A SIMD vector with eight elements of type u8.
  • u8x16Experimental
    A SIMD vector with 16 elements of type u8.
  • u8x32Experimental
    A SIMD vector with 32 elements of type u8.
  • u8x64Experimental
    A SIMD vector with 64 elements of type u8.
  • u16x1Experimental
    A SIMD vector with one element of type u16.
  • u16x2Experimental
    A SIMD vector with two elements of type u16.
  • u16x4Experimental
    A SIMD vector with four elements of type u16.
  • u16x8Experimental
    A SIMD vector with eight elements of type u16.
  • u16x16Experimental
    A SIMD vector with 16 elements of type u16.
  • u16x32Experimental
    A SIMD vector with 32 elements of type u16.
  • u16x64Experimental
    A SIMD vector with 64 elements of type u16.
  • u32x1Experimental
    A SIMD vector with one element of type u32.
  • u32x2Experimental
    A SIMD vector with two elements of type u32.
  • u32x4Experimental
    A SIMD vector with four elements of type u32.
  • u32x8Experimental
    A SIMD vector with eight elements of type u32.
  • u32x16Experimental
    A SIMD vector with 16 elements of type u32.
  • u32x32Experimental
    A SIMD vector with 32 elements of type u32.
  • u32x64Experimental
    A SIMD vector with 64 elements of type u32.
  • u64x1Experimental
    A SIMD vector with one element of type u64.
  • u64x2Experimental
    A SIMD vector with two elements of type u64.
  • u64x4Experimental
    A SIMD vector with four elements of type u64.
  • u64x8Experimental
    A SIMD vector with eight elements of type u64.
  • u64x16Experimental
    A SIMD vector with 16 elements of type u64.
  • u64x32Experimental
    A SIMD vector with 32 elements of type u64.
  • u64x64Experimental
    A SIMD vector with 64 elements of type u64.
  • usizex1Experimental
    A SIMD vector with one element of type usize.
  • 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.
  • usizex16Experimental
    A SIMD vector with 16 elements of type usize.
  • usizex32Experimental
    A SIMD vector with 32 elements of type usize.
  • usizex64Experimental
    A SIMD vector with 64 elements of type usize.