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

i32.const 1
i64.const 1
f32.const 1
f64.const 1

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