Numbers
Wasm has four types of numbers i32, i64, f32, and f64. Each kind has their own operators and can be converted between types.
i32 - 32bit integer i64 - 64bit integer f32 - 32bit float f64 - 64bit float
Define a Const
Common Arithmetic
i32 | i64 | f32 | f64 | |
add | i32.add | i64.add | f32.add | f64.add |
sub | i32.sub | i64.sub | f32.sub | f64.sub |
mul | i32.mul | i64.mul | f32.mul | f64.mul |
div | i32.div_s //signed | i64.div_s | f32.div | f64.div |
I32.div_u //unsigned | i64.div_u | |||
modulus | i32.rem_s | i64.rem_s | ||
i32.rem_u | i64.rem_u | |||
abs | f32.abs | f64.abs | ||
neg | f32.neg | f64.neg | ||
ceiling | f32.ceil | f64.ceil | ||
floor | f32.floor | f64.floor | ||
square root | f32.sqrt | f64.sqrt | ||
min | f32.min | f64.min | ||
max | f64.max | f64.max |
Common Logic
i32 | i64 | f32 | f64 | |
equals one | i32.eqz | i64.eqz | ||
equals | i32.eq | i64.eq | f32.eq | f64.eq |
not equal | i32.ne | i64.ne | f32.ne | f64.ne |
less than | i32.lt_s //signed | i64.lt_s | f32.lt | f64.lt |
i32.lt_u //unsigned | i64.lt_u | |||
greater than | i32.gt_s | i64.gt_s | f32.gt | f64.gt |
i32.gt_u | i64.gt_u | |||
less then or equal | i32.le_s | i64.le_s | f32.le | f64.le |
i32.le_u | i64.le_u | |||
greater than or equal | i32.ge_s | i64.ge_s | f32.ge | f64.ge |
i32.ge_u | i64.ge_u | |||
and | i32.and | i64.and | ||
or | i32.or | i64.or | ||
xor | i32.xor | i64.xor |
Conversions
x to y | i32 | i64 | f32 | f64 |
i32 | i32.wrap_i64 | i32.trunc_f32_s | i32.trunc_f64_s | |
i64 | i64.extend_i32_s | i64.trunc_f32_u | i64.trunc_f64_s | |
f32 | f32.convert_i32 | f32.convert_i64_s | f32.demote_f64 | |
f64 | f64.convert_i32_s | f64.convert_i64_s | f64.promote_f32 |
Last updated