WebAssembly SIMD conversion instructions
WebAssembly SIMD conversion instructions.
Convert between types
convert_low_i32x4_s-
Converts the lanes of a
v128f64x2value interpretation into a signedi32x4value interpretation. convert_low_i32x4_u-
Converts the lanes of a
v128f64x2value interpretation into an unsignedi32x4value interpretation. convert_i32x4_s-
Converts the lanes of a
v128f32x4value interpretation into a signedi32x4value interpretation. convert_i32x4_u-
Converts the lanes of a
v128f32x4value interpretation into an unsignedi32x4value interpretation. demote_f64x2_zero-
Converts the lanes of a
v128f64x2value interpretation into anf32x4value interpretation. The two higher lanes of the result are initialized to zero. promote_low_f32x4-
Converts the first two lanes of a
v128f32x4value interpretation into anf64x2value interpretation.
Convert from narrower to wider type
extend_high_i8x16_s-
Converts lanes 8–15 of a signed
v128i8x16value interpretation into ani16x8value interpretation. extend_high_i8x16_u-
Converts lanes 8–15 of an unsigned
v128i8x16value interpretation into ani16x8value interpretation. extend_high_i16x8_s-
Converts lanes 4–7 of a signed
v128i16x8value interpretation into ani32x4value interpretation. extend_high_i16x8_u-
Converts lanes 4–7 of an unsigned
v128i16x8value interpretation into ani32x4value interpretation. extend_high_i32x4_s-
Converts lanes 2–3 of a signed
v128i32x4value interpretation into ani64x2value interpretation. extend_high_i32x4_u-
Converts lanes 2–3 of an unsigned
v128i32x4value interpretation into ani64x2value interpretation. extend_low_i8x16_s-
Converts lanes 0–7 of a signed
v128i8x16value interpretation into ani16x8value interpretation. extend_low_i8x16_u-
Converts lanes 0–7 of an unsigned
v128i8x16value interpretation into ani16x8value interpretation. extend_low_i16x8_s-
Converts lanes 0–3 of a signed
v128i16x8value interpretation into ani32x4value interpretation. extend_low_i16x8_u-
Converts lanes 0–3 of an unsigned
v128i16x8value interpretation into ani32x4value interpretation. extend_low_i32x4_s-
Converts lanes 0–1 of a signed
v128i32x4value interpretation into ani64x2value interpretation. extend_low_i32x4_u-
Converts lanes 0–1 of an unsigned
v128i32x4value interpretation into ani64x2value interpretation.
Convert from wider to narrower type
narrow_i16x8_s-
Converts two signed
v128i16x8value interpretations into ani8x16value interpretation. narrow_i16x8_u-
Converts two signed
v128i16x8value interpretations into ani8x16value interpretation using unsigned saturation. narrow_i32x4_s-
Converts two signed
v128i32x4value interpretations into ani16x8value interpretation. narrow_i32x4_u-
Converts two signed
v128i32x4value interpretations into ani16x8value interpretation using unsigned saturation.
Value replacement
replace_lane-
Replaces the specified lane of a
v128value interpretation with a new value and returns the resultingv128value interpretation. shuffle-
Returns a new
v128value interpretation with its lane values selected from two inputv128values, determined by provided index values. splat-
Copies the same value to all lanes of a
v128value interpretation. swizzle-
Returns a new
v128value interpretation with its lane values selected from an inputv128value, determined by indices provided in a second inputv128.
SIMD-specific trunc instructions
trunc_sat_f32x4_s-
Performs a saturating conversion of the lanes of a
v128f32x4value interpretation into a signedi32x4value interpretation, clamping the output to the range allowed by the value type. trunc_sat_f32x4_u-
Performs a saturating conversion of the lanes of a
v128f32x4value interpretation into an unsignedi32x4value interpretation, clamping the output to the range allowed by the value type. trunc_sat_f64x2_s_zero-
Performs a saturating conversion of the lanes of a
v128f64x2value interpretation into a signedi32x4value interpretation, clamping the output to the range allowed by the value type. The two higher lanes of the result are initialized to zero. trunc_sat_f64x2_u_zero-
Performs a saturating conversion of the lanes of a
v128f64x2value interpretation into an unsignedi32x4value interpretation, clamping the output to the range allowed by the value type. The two higher lanes of the result are initialized to zero.
Note:
See also the non-SIMD-specific trunc instruction.