🔬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`

.## 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`

.