trunc_sat_f32x4_s: Wasm SIMD conversion instruction
The trunc_sat_f32x4_s SIMD conversion instruction performs a saturating conversion of the lanes of a v128 f32x4 value interpretation into a signed 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 −2,147,483,648 to 2,147,483,647 (the full range of a signed 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_s
i32x4.extract_lane 2
call $log ;; log the result
)
(start $main)
)
WebAssembly.instantiateStreaming(fetch("{%wasm-url%}"), { console });
Syntax
value_type.trunc_sat_f32x4_s
value_type-
The type of value the instruction is being run on. The following
v128value interpretations supporttrunc_sat_f32x4_s:i32x4
trunc_sat_f32x4_s-
The
trunc_sat_f32x4_sinstruction. Must always be included after thevalue_typeand a period (.).
Type
[input] -> [output]
Binary encoding
| Instruction | Binary format | Example text => binary |
|---|---|---|
i32x4.trunc_sat_f32x4_s |
0xfd 248:u32 |
i32x4.trunc_sat_f32x4_s => 0xfd 0xf8 0x01 |
Specifications
| Specification |
|---|
| WebAssembly Core Specification> # vector-instructions%E2%91%A8> |