trunc_sat_f32x4_u: Wasm SIMD conversion instruction

The trunc_sat_f32x4_u SIMD conversion instruction performs a saturating conversion of the lanes of a v128 f32x4 value interpretation into an unsigned i32x4 value interpretation, clamping the output to the range allowed by the value type.

Saturation means that the output values are clamped to the upper and lower values allowed by the value interpretation. Allowed output values are 0 to 4,294,967,295 (the full range of an unsigned 32-bit integer). NaN values are converted to 0.

Try it

(module
  (import "console" "log" (func $log (param i32)))
  (func $main
    v128.const f32x4 1300.5 60.4 0.5 780000.4

    i32x4.trunc_sat_f32x4_u
    i32x4.extract_lane 3
    call $log ;; log the result
  )
  (start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });

Syntax

value_type.trunc_sat_f32x4_u
value_type

The type of value the instruction is being run on. The following v128 value interpretations support trunc_sat_f32x4_u:

  • i32x4
trunc_sat_f32x4_u

The trunc_sat_f32x4_u instruction. Must always be included after the value_type and a period (.).

Type

[input] -> [output]
input

The input v128 f32x4 value interpretation.

output

The output v128 i32x4 value interpretation.

Binary encoding

Instruction Binary format Example text => binary
i32x4.trunc_sat_f32x4_u 0xfd 249:u32 i32x4.trunc_sat_f32x4_u => 0xfd 0xf9 0x01

Specifications

Specification
WebAssembly Core Specification
# vector-instructions%E2%91%A8

Browser compatibility