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.