Module std::simd

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

便携式 SIMD 模块。

该模块为 SIMD 操作提供了一个可移植的抽象,它不受任何特定硬件架构的约束。

Macros

  • simd_swizzleExperimental
    通过将选定 lanes 中的元素复制到其他 vectors 中,创建一个新的 SIMD vector。

Structs

  • LaneCountExperimental
    将 SIMD vector 中的 lanes 的数量指定为类型。
  • MaskExperimental
    Element 指定宽度的 LANES 元素的 SIMD vector 掩码。
  • SimdExperimental
    具有 [T; N] 形状但 T 操作的 SIMD vector。

Enums

  • WhichExperimental
    将 lane 索引指定为两个 SIMD vectors 之一。

Traits

  • MaskElementExperimental
    可用作 SIMD 掩码元素的类型的标记 trait。
  • SimdCastExperimental
    支持 Simd::cast 的 trait。通常不需要直接使用。
  • SimdCastPtrExperimental
    支持 Simd::cast_ptr 的 trait。通常不需要直接使用。
  • SimdConstPtrExperimental
    对常量指针的 SIMD vectors 的操作。
  • SimdElementExperimental
    可用作 SIMD vector 元素的类型的标记 trait。
  • SimdFloatExperimental
    对浮点数的 SIMD vectors 的操作。
  • SimdIntExperimental
    对有符号整数的 SIMD vectors 的操作。
  • SimdMutPtrExperimental
    对可变指针的 SIMD vectors 的操作。
  • SimdOrdExperimental
    Parallel Ord.
  • SimdPartialEqExperimental
    Parallel PartialEq.
  • SimdPartialOrdExperimental
    Parallel PartialOrd.
  • SimdUintExperimental
    对无符号整数的 SIMD vectors 的操作。
  • StdFloatExperimental
    这个 trait 提供了 float 函数的可能临时实现,在没有硬件支持的情况下,该实现可以规范地调用操作系统的 math.h 动态加载库 (也称为共享对象)。
  • SupportedLaneCountExperimental
    静态保证 lane 计数被标记为受支持。
  • SwizzleExperimental
    从另一个 vector 的元素创建一个 vector。
  • Swizzle2Experimental
    从另外两个 vectors 的元素创建一个 vector。
  • ToBitMaskExperimental
    将掩码转换为整数位掩码和从整数位掩码转换。

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.