1.33.0[][src]Module core::arch::wasm32

This is supported on WebAssembly only.

Platform-specific intrinsics for the wasm32 platform.

See the module documentation for more details.

Structs

v128[
Experimental
] [
WebAssembly
]

WASM-specific 128-bit wide SIMD vector type

Functions

memory_grow[
WebAssembly
]

Corresponding intrinsic to wasm's memory.grow instruction

memory_size[
WebAssembly
]

Corresponding intrinsic to wasm's memory.size instruction

atomic_notify[
Experimental
] [
WebAssembly
]

Corresponding intrinsic to wasm's atomic.notify instruction

f32x4_splat[
Experimental
] [
WebAssembly
]

Create vector with identical lanes

f32x4_extract_lane[
Experimental
] [
WebAssembly
]

Extract lane from a 128-bit vector interpreted as 4 packed f32 numbers.

f32x4_replace_lane[
Experimental
] [
WebAssembly
]

Replace a lane from a 128-bit vector interpreted as 4 packed f32 numbers.

f32x4_eq[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit floating point numbers.

f32x4_ne[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit floating point numbers.

f32x4_lt[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit floating point numbers.

f32x4_gt[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit floating point numbers.

f32x4_le[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit floating point numbers.

f32x4_ge[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit floating point numbers.

f32x4_abs[
Experimental
] [
WebAssembly
]

Calculates the absolute value of each lane of a 128-bit vector interpreted as four 32-bit floating point numbers.

f32x4_neg[
Experimental
] [
WebAssembly
]

Negates each lane of a 128-bit vector interpreted as four 32-bit floating point numbers.

f32x4_sqrt[
Experimental
] [
WebAssembly
]

Calculates the square root of each lane of a 128-bit vector interpreted as four 32-bit floating point numbers.

f32x4_add[
Experimental
] [
WebAssembly
]

Adds pairwise lanes of two 128-bit vectors interpreted as four 32-bit floating point numbers.

f32x4_sub[
Experimental
] [
WebAssembly
]

Subtracts pairwise lanes of two 128-bit vectors interpreted as four 32-bit floating point numbers.

f32x4_mul[
Experimental
] [
WebAssembly
]

Multiplies pairwise lanes of two 128-bit vectors interpreted as four 32-bit floating point numbers.

f32x4_div[
Experimental
] [
WebAssembly
]

Divides pairwise lanes of two 128-bit vectors interpreted as four 32-bit floating point numbers.

f32x4_min[
Experimental
] [
WebAssembly
]

Calculates the minimum of pairwise lanes of two 128-bit vectors interpreted as four 32-bit floating point numbers.

f32x4_max[
Experimental
] [
WebAssembly
]

Calculates the maximum of pairwise lanes of two 128-bit vectors interpreted as four 32-bit floating point numbers.

f32x4_convert_s_i32x4[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as four 32-bit signed integers into a 128-bit vector of four 32-bit floating point numbers.

f32x4_convert_u_i32x4[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as four 32-bit unsigned integers into a 128-bit vector of four 32-bit floating point numbers.

f64x2_splat[
Experimental
] [
WebAssembly
]

Create vector with identical lanes

f64x2_extract_lane[
Experimental
] [
WebAssembly
]

Extract lane from a 128-bit vector interpreted as 2 packed f64 numbers.

f64x2_replace_lane[
Experimental
] [
WebAssembly
]

Replace a lane from a 128-bit vector interpreted as 2 packed f64 numbers.

f64x2_eq[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 2 sixty-four-bit floating point numbers.

f64x2_ne[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 2 sixty-four-bit floating point numbers.

f64x2_lt[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 2 sixty-four-bit floating point numbers.

f64x2_gt[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 2 sixty-four-bit floating point numbers.

f64x2_le[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 2 sixty-four-bit floating point numbers.

f64x2_ge[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 2 sixty-four-bit floating point numbers.

f64x2_abs[
Experimental
] [
WebAssembly
]

Calculates the absolute value of each lane of a 128-bit vector interpreted as two 64-bit floating point numbers.

f64x2_neg[
Experimental
] [
WebAssembly
]

Negates each lane of a 128-bit vector interpreted as two 64-bit floating point numbers.

f64x2_sqrt[
Experimental
] [
WebAssembly
]

Calculates the square root of each lane of a 128-bit vector interpreted as two 64-bit floating point numbers.

f64x2_add[
Experimental
] [
WebAssembly
]

Adds pairwise lanes of two 128-bit vectors interpreted as two 64-bit floating point numbers.

f64x2_sub[
Experimental
] [
WebAssembly
]

Subtracts pairwise lanes of two 128-bit vectors interpreted as two 64-bit floating point numbers.

f64x2_mul[
Experimental
] [
WebAssembly
]

Multiplies pairwise lanes of two 128-bit vectors interpreted as two 64-bit floating point numbers.

f64x2_div[
Experimental
] [
WebAssembly
]

Divides pairwise lanes of two 128-bit vectors interpreted as two 64-bit floating point numbers.

f64x2_min[
Experimental
] [
WebAssembly
]

Calculates the minimum of pairwise lanes of two 128-bit vectors interpreted as two 64-bit floating point numbers.

f64x2_max[
Experimental
] [
WebAssembly
]

Calculates the maximum of pairwise lanes of two 128-bit vectors interpreted as two 64-bit floating point numbers.

f64x2_convert_s_i64x2[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as two 64-bit signed integers into a 128-bit vector of two 64-bit floating point numbers.

f64x2_convert_u_i64x2[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as two 64-bit unsigned integers into a 128-bit vector of two 64-bit floating point numbers.

i32_atomic_wait[
Experimental
] [
WebAssembly
]

Corresponding intrinsic to wasm's i32.atomic.wait instruction

i64_atomic_wait[
Experimental
] [
WebAssembly
]

Corresponding intrinsic to wasm's i64.atomic.wait instruction

i16x8_splat[
Experimental
] [
WebAssembly
]

Create vector with identical lanes

i16x8_extract_lane[
Experimental
] [
WebAssembly
]

Extract lane from a 128-bit vector interpreted as 8 packed i16 numbers.

i16x8_replace_lane[
Experimental
] [
WebAssembly
]

Replace a lane from a 128-bit vector interpreted as 8 packed i16 numbers.

i16x8_eq[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit integers.

i16x8_ne[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit integers.

i16x8_lt_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit signed integers.

i16x8_lt_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit unsigned integers.

i16x8_gt_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit signed integers.

i16x8_gt_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit unsigned integers.

i16x8_le_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit signed integers.

i16x8_le_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit unsigned integers.

i16x8_ge_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit signed integers.

i16x8_ge_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 8 sixteen-bit unsigned integers.

i16x8_neg[
Experimental
] [
WebAssembly
]

Negates a 128-bit vectors intepreted as eight 16-bit signed integers

i16x8_any_true[
Experimental
] [
WebAssembly
]

Returns 1 if any lane is nonzero or 0 if all lanes are zero.

i16x8_all_true[
Experimental
] [
WebAssembly
]

Returns 1 if all lanes are nonzero or 0 if any lane is nonzero.

i16x8_shl[
Experimental
] [
WebAssembly
]

Shifts each lane to the left by the specified number of bits.

i16x8_shr_s[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, sign extending.

i16x8_shr_u[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, shifting in zeros.

i16x8_add[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed eight 16-bit integers.

i16x8_add_saturate_s[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed eight 16-bit signed integers, saturating on overflow to i16::max_value().

i16x8_add_saturate_u[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed eight 16-bit unsigned integers, saturating on overflow to u16::max_value().

i16x8_sub[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed eight 16-bit integers.

i16x8_sub_saturate_s[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed eight 16-bit signed integers, saturating on overflow to i16::min_value().

i16x8_sub_saturate_u[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed eight 16-bit unsigned integers, saturating on overflow to 0.

i16x8_mul[
Experimental
] [
WebAssembly
]

Multiplies two 128-bit vectors as if they were two packed eight 16-bit signed integers.

i32x4_splat[
Experimental
] [
WebAssembly
]

Create vector with identical lanes

i32x4_extract_lane[
Experimental
] [
WebAssembly
]

Extract lane from a 128-bit vector interpreted as 4 packed i32 numbers.

i32x4_replace_lane[
Experimental
] [
WebAssembly
]

Replace a lane from a 128-bit vector interpreted as 4 packed i32 numbers.

i32x4_eq[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit integers.

i32x4_ne[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit integers.

i32x4_lt_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit signed integers.

i32x4_lt_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit unsigned integers.

i32x4_gt_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit signed integers.

i32x4_gt_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit unsigned integers.

i32x4_le_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit signed integers.

i32x4_le_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit unsigned integers.

i32x4_ge_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit signed integers.

i32x4_ge_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 4 thirty-two-bit unsigned integers.

i32x4_neg[
Experimental
] [
WebAssembly
]

Negates a 128-bit vectors intepreted as four 32-bit signed integers

i32x4_any_true[
Experimental
] [
WebAssembly
]

Returns 1 if any lane is nonzero or 0 if all lanes are zero.

i32x4_all_true[
Experimental
] [
WebAssembly
]

Returns 1 if all lanes are nonzero or 0 if any lane is nonzero.

i32x4_shl[
Experimental
] [
WebAssembly
]

Shifts each lane to the left by the specified number of bits.

i32x4_shr_s[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, sign extending.

i32x4_shr_u[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, shifting in zeros.

i32x4_add[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed four 32-bit integers.

i32x4_sub[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed four 32-bit integers.

i32x4_mul[
Experimental
] [
WebAssembly
]

Multiplies two 128-bit vectors as if they were two packed four 32-bit signed integers.

i32x4_trunc_s_f32x4_sat[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as four 32-bit floating point numbers into a 128-bit vector of four 32-bit signed integers.

i32x4_trunc_u_f32x4_sat[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as four 32-bit floating point numbers into a 128-bit vector of four 32-bit unsigned integers.

i64x2_splat[
Experimental
] [
WebAssembly
]

Create vector with identical lanes

i64x2_extract_lane[
Experimental
] [
WebAssembly
]

Extract lane from a 128-bit vector interpreted as 2 packed i64 numbers.

i64x2_replace_lane[
Experimental
] [
WebAssembly
]

Replace a lane from a 128-bit vector interpreted as 2 packed i64 numbers.

i64x2_neg[
Experimental
] [
WebAssembly
]

Negates a 128-bit vectors intepreted as two 64-bit signed integers

i64x2_any_true[
Experimental
] [
WebAssembly
]

Returns 1 if any lane is nonzero or 0 if all lanes are zero.

i64x2_all_true[
Experimental
] [
WebAssembly
]

Returns 1 if all lanes are nonzero or 0 if any lane is nonzero.

i64x2_shl[
Experimental
] [
WebAssembly
]

Shifts each lane to the left by the specified number of bits.

i64x2_shr_s[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, sign extending.

i64x2_shr_u[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, shifting in zeros.

i64x2_add[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed two 64-bit integers.

i64x2_sub[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed two 64-bit integers.

i64x2_trunc_s_f64x2_sat[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as two 64-bit floating point numbers into a 128-bit vector of two 64-bit signed integers.

i64x2_trunc_u_f64x2_sat[
Experimental
] [
WebAssembly
]

Converts a 128-bit vector interpreted as two 64-bit floating point numbers into a 128-bit vector of two 64-bit unsigned integers.

i8x16_splat[
Experimental
] [
WebAssembly
]

Create vector with identical lanes

i8x16_extract_lane[
Experimental
] [
WebAssembly
]

Extract lane from a 128-bit vector interpreted as 16 packed i8 numbers.

i8x16_replace_lane[
Experimental
] [
WebAssembly
]

Replace a lane from a 128-bit vector interpreted as 16 packed i8 numbers.

i8x16_eq[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit integers.

i8x16_ne[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit integers.

i8x16_lt_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit signed integers.

i8x16_lt_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit unsigned integers.

i8x16_gt_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit signed integers.

i8x16_gt_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit unsigned integers.

i8x16_le_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit signed integers.

i8x16_le_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit unsigned integers.

i8x16_ge_s[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit signed integers.

i8x16_ge_u[
Experimental
] [
WebAssembly
]

Compares two 128-bit vectors as if they were two vectors of 16 eight-bit unsigned integers.

i8x16_neg[
Experimental
] [
WebAssembly
]

Negates a 128-bit vectors intepreted as sixteen 8-bit signed integers

i8x16_any_true[
Experimental
] [
WebAssembly
]

Returns 1 if any lane is nonzero or 0 if all lanes are zero.

i8x16_all_true[
Experimental
] [
WebAssembly
]

Returns 1 if all lanes are nonzero or 0 if any lane is nonzero.

i8x16_shl[
Experimental
] [
WebAssembly
]

Shifts each lane to the left by the specified number of bits.

i8x16_shr_s[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, sign extending.

i8x16_shr_u[
Experimental
] [
WebAssembly
]

Shifts each lane to the right by the specified number of bits, shifting in zeros.

i8x16_add[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed sixteen 8-bit integers.

i8x16_add_saturate_s[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed sixteen 8-bit signed integers, saturating on overflow to i8::max_value().

i8x16_add_saturate_u[
Experimental
] [
WebAssembly
]

Adds two 128-bit vectors as if they were two packed sixteen 8-bit unsigned integers, saturating on overflow to u8::max_value().

i8x16_sub[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed sixteen 8-bit integers.

i8x16_sub_saturate_s[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed sixteen 8-bit signed integers, saturating on overflow to i8::min_value().

i8x16_sub_saturate_u[
Experimental
] [
WebAssembly
]

Subtracts two 128-bit vectors as if they were two packed sixteen 8-bit unsigned integers, saturating on overflow to 0.

i8x16_mul[
Experimental
] [
WebAssembly
]

Multiplies two 128-bit vectors as if they were two packed sixteen 8-bit signed integers.

unreachable[
Experimental
] [
WebAssembly
]

Generates the trap instruction UNREACHABLE

v128_load[
Experimental
] [
WebAssembly
]

Load a v128 vector from the given heap address.

v128_store[
Experimental
] [
WebAssembly
]

Store a v128 vector to the given heap address.

v128_const[
Experimental
] [
WebAssembly
]

Materialize a constant SIMD value from the immediate operands.

v128_not[
Experimental
] [
WebAssembly
]

Flips each bit of the 128-bit input vector.

v128_and[
Experimental
] [
WebAssembly
]

Performs a bitwise and of the two input 128-bit vectors, returning the resulting vector.

v128_or[
Experimental
] [
WebAssembly
]

Performs a bitwise or of the two input 128-bit vectors, returning the resulting vector.

v128_xor[
Experimental
] [
WebAssembly
]

Performs a bitwise xor of the two input 128-bit vectors, returning the resulting vector.

v128_bitselect[
Experimental
] [
WebAssembly
]

Use the bitmask in c to select bits from v1 when 1 and v2 when 0.