i64.trunc_sat_f32_s
Pops a f32 value off the stack, converts it into an i64 value, and then pushes it back on to the stack. This looks at the i64 value as a signed integer (can be negative). Any decimal parts of the number will be lost. The value must exist within the range -9223372036854775808 to +9223372036854775807 (2^63). If the value is outside this range then, instead of throwning a runtime error, it sets the resulting value to the upper or lower limit.

Syntax

i64.trunc_sat_f32_s

Stack In

f32 The value to be converted.

Stack Out

i64 The i64 version of the f32 value.

Examples

;; Convert f32 1234.567 into an i64 value
f32.const 1234.567
i64.trunc_sat_f32_s

;; The stack contains an i64 value of 1234
;; Convert f32 -3.142 into an i64 value
f32.const -3.142
i64.trunc_sat_f32_s

;; The stack contains an i64 value of -3
;; Convert f32 930000000000000000 into an i64 value
f32.const 930000000000000000
i64.trunc_sat_f32_s

;; The stack contains an i64 value of 9223372036854775807 (upper limit)