(module (type $v (func)) (type $FUNCSIG$dd (func (param f64) (result f64))) (type $FUNCSIG$ff (func (param f32) (result f32))) (memory $0 0) (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $binary/b (mut i32) (i32.const 0)) (global $binary/i (mut i32) (i32.const 0)) (global $binary/I (mut i64) (i64.const 0)) (global $binary/f (mut f32) (f32.const 0)) (global $binary/F (mut f64) (f64.const 0)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $~lib/math/NativeMath.pow (; 0 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) get_local $0 i64.reinterpret/f64 tee_local $2 i32.wrap/i64 set_local $3 get_local $2 i64.const 32 i64.shr_u i32.wrap/i64 tee_local $4 i32.const 2147483647 i32.and tee_local $5 i32.const 2146435072 i32.gt_s tee_local $1 i32.eqz if get_local $5 i32.const 2146435072 i32.eq tee_local $1 if get_local $3 i32.const 0 i32.ne set_local $1 end end get_local $1 i32.eqz if i32.const 0 set_local $1 end get_local $1 i32.eqz if i32.const 0 set_local $1 end get_local $1 if get_local $0 f64.const 1 f64.add return end get_local $0 ) (func $~lib/math/NativeMathf.mod (; 1 ;) (type $FUNCSIG$ff) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) get_local $0 i32.reinterpret/f32 tee_local $1 i32.const 23 i32.shr_u i32.const 255 i32.and set_local $2 get_local $1 i32.const -2147483648 i32.and set_local $4 get_local $2 i32.const 255 i32.eq tee_local $3 i32.eqz if i32.const 0 set_local $3 end get_local $3 if get_local $0 get_local $0 f32.div return end block $folding-inner0 get_local $1 i32.const 1 i32.shl tee_local $3 i32.const 2130706432 i32.le_u if get_local $3 i32.const 2130706432 i32.eq br_if $folding-inner0 get_local $0 return end get_local $2 if (result i32) get_local $1 i32.const 8388607 i32.and i32.const 8388608 i32.or else get_local $1 i32.const 1 get_local $2 get_local $1 i32.const 9 i32.shl i32.clz i32.sub tee_local $2 i32.sub i32.shl end set_local $1 loop $continue|0 get_local $2 i32.const 127 i32.gt_s if get_local $1 i32.const 8388608 i32.ge_u if get_local $1 i32.const 8388608 i32.eq br_if $folding-inner0 get_local $1 i32.const 8388608 i32.sub set_local $1 end get_local $1 i32.const 1 i32.shl set_local $1 get_local $2 i32.const 1 i32.sub set_local $2 br $continue|0 end end get_local $1 i32.const 8388608 i32.ge_u if get_local $1 i32.const 8388608 i32.eq br_if $folding-inner0 get_local $1 i32.const 8388608 i32.sub set_local $1 end get_local $1 get_local $1 i32.const 8 i32.shl i32.clz tee_local $3 i32.shl set_local $1 get_local $4 get_local $2 get_local $3 i32.sub tee_local $2 i32.const 0 i32.gt_s if (result i32) get_local $1 i32.const 8388608 i32.sub get_local $2 i32.const 23 i32.shl i32.or else get_local $1 i32.const 1 get_local $2 i32.sub i32.shr_u end tee_local $1 i32.or f32.reinterpret/i32 return end f32.const 0 get_local $0 f32.mul ) (func $~lib/math/NativeMath.mod (; 2 ;) (type $FUNCSIG$dd) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 i64) (local $4 i32) (local $5 i64) get_local $0 i64.reinterpret/f64 tee_local $1 i64.const 52 i64.shr_u i64.const 2047 i64.and set_local $2 get_local $1 i64.const 63 i64.shr_u set_local $5 get_local $2 i64.const 2047 i64.eq tee_local $4 i32.eqz if i32.const 0 set_local $4 end get_local $4 if get_local $0 get_local $0 f64.div return end block $folding-inner0 get_local $1 i64.const 1 i64.shl tee_local $3 i64.const 9214364837600034816 i64.le_u if get_local $3 i64.const 9214364837600034816 i64.eq br_if $folding-inner0 get_local $0 return end get_local $2 i64.eqz if (result i64) get_local $1 i64.const 0 get_local $2 get_local $1 i64.const 12 i64.shl i64.clz i64.sub tee_local $2 i64.sub i64.const 1 i64.add i64.shl else get_local $1 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or end set_local $1 loop $continue|0 get_local $2 i64.const 1023 i64.gt_s if get_local $1 i64.const 4503599627370496 i64.ge_u if get_local $1 i64.const 4503599627370496 i64.eq br_if $folding-inner0 get_local $1 i64.const 4503599627370496 i64.sub set_local $1 end get_local $1 i64.const 1 i64.shl set_local $1 get_local $2 i64.const 1 i64.sub set_local $2 br $continue|0 end end get_local $1 i64.const 4503599627370496 i64.ge_u if get_local $1 i64.const 4503599627370496 i64.eq br_if $folding-inner0 get_local $1 i64.const 4503599627370496 i64.sub set_local $1 end get_local $1 get_local $1 i64.const 11 i64.shl i64.clz tee_local $3 i64.shl set_local $1 get_local $2 get_local $3 i64.sub tee_local $2 i64.const 0 i64.gt_s if (result i64) get_local $1 i64.const 4503599627370496 i64.sub get_local $2 i64.const 52 i64.shl i64.or else get_local $1 i64.const 0 get_local $2 i64.sub i64.const 1 i64.add i64.shr_u end tee_local $1 get_local $5 i64.const 63 i64.shl i64.or f64.reinterpret/i64 return end f64.const 0 get_local $0 f64.mul ) (func $start (; 3 ;) (type $v) (local $0 f32) (local $1 i32) get_global $binary/i i32.const 1 i32.rem_s drop get_global $binary/i f64.convert_s/i32 call $~lib/math/NativeMath.pow drop get_global $binary/i i32.const 1 i32.lt_s set_global $binary/b get_global $binary/i i32.const 1 i32.gt_s set_global $binary/b get_global $binary/i i32.const 1 i32.le_s set_global $binary/b get_global $binary/i i32.const 1 i32.ge_s set_global $binary/b get_global $binary/i i32.const 1 i32.eq set_global $binary/b get_global $binary/i i32.const 1 i32.eq set_global $binary/b get_global $binary/i i32.const 1 i32.add set_global $binary/i get_global $binary/i i32.const 1 i32.sub set_global $binary/i get_global $binary/i i32.const 1 i32.rem_s set_global $binary/i get_global $binary/i f64.convert_s/i32 call $~lib/math/NativeMath.pow i32.trunc_s/f64 set_global $binary/i get_global $binary/i i32.const 1 i32.shl set_global $binary/i get_global $binary/i i32.const 1 i32.shr_s set_global $binary/i get_global $binary/i i32.const 1 i32.shr_u set_global $binary/i get_global $binary/i i32.const 1 i32.and set_global $binary/i get_global $binary/i i32.const 1 i32.or set_global $binary/i get_global $binary/i i32.const 1 i32.xor set_global $binary/i get_global $binary/i i32.const 1 i32.add set_global $binary/i get_global $binary/i i32.const 1 i32.sub set_global $binary/i get_global $binary/i i32.const 1 i32.rem_s set_global $binary/i get_global $binary/i i32.const 1 i32.shl set_global $binary/i get_global $binary/i i32.const 1 i32.shr_s set_global $binary/i get_global $binary/i i32.const 1 i32.shr_u set_global $binary/i get_global $binary/i i32.const 1 i32.and set_global $binary/i get_global $binary/i i32.const 1 i32.or set_global $binary/i get_global $binary/i i32.const 1 i32.xor set_global $binary/i get_global $binary/I i64.const 1 i64.rem_s drop get_global $binary/I f64.convert_s/i64 call $~lib/math/NativeMath.pow drop get_global $binary/I i64.const 1 i64.lt_s set_global $binary/b get_global $binary/I i64.const 1 i64.gt_s set_global $binary/b get_global $binary/I i64.const 1 i64.le_s set_global $binary/b get_global $binary/I i64.const 1 i64.ge_s set_global $binary/b get_global $binary/I i64.const 1 i64.eq set_global $binary/b get_global $binary/I i64.const 1 i64.eq set_global $binary/b get_global $binary/I i64.const 1 i64.add set_global $binary/I get_global $binary/I i64.const 1 i64.sub set_global $binary/I get_global $binary/I i64.const 1 i64.rem_s set_global $binary/I get_global $binary/I f64.convert_s/i64 call $~lib/math/NativeMath.pow i64.trunc_s/f64 set_global $binary/I get_global $binary/I i64.const 1 i64.shl set_global $binary/I get_global $binary/I i64.const 1 i64.shr_s set_global $binary/I get_global $binary/I i64.const 1 i64.shr_u set_global $binary/I get_global $binary/I i64.const 1 i64.and set_global $binary/I get_global $binary/I i64.const 1 i64.or set_global $binary/I get_global $binary/I i64.const 1 i64.xor set_global $binary/I get_global $binary/I i64.const 1 i64.add set_global $binary/I get_global $binary/I i64.const 1 i64.sub set_global $binary/I get_global $binary/I i64.const 1 i64.rem_s set_global $binary/I get_global $binary/I i64.const 1 i64.shl set_global $binary/I get_global $binary/I i64.const 1 i64.shr_s set_global $binary/I get_global $binary/I i64.const 1 i64.shr_u set_global $binary/I get_global $binary/I i64.const 1 i64.and set_global $binary/I get_global $binary/I i64.const 1 i64.or set_global $binary/I get_global $binary/I i64.const 1 i64.xor set_global $binary/I get_global $binary/f call $~lib/math/NativeMathf.mod drop get_global $binary/f tee_local $0 i32.reinterpret/f32 i32.const 2147483647 i32.and i32.const 2139095040 i32.gt_s tee_local $1 i32.eqz if i32.const 0 set_local $1 end block $__inlined_func$~lib/math/NativeMathf.pow get_local $1 br_if $__inlined_func$~lib/math/NativeMathf.pow end get_global $binary/f f32.const 1 f32.lt set_global $binary/b get_global $binary/f f32.const 1 f32.gt set_global $binary/b get_global $binary/f f32.const 1 f32.le set_global $binary/b get_global $binary/f f32.const 1 f32.ge set_global $binary/b get_global $binary/f f32.const 1 f32.eq set_global $binary/b get_global $binary/f f32.const 1 f32.eq set_global $binary/b get_global $binary/f f32.const 1 f32.add set_global $binary/f get_global $binary/f f32.const 1 f32.sub set_global $binary/f get_global $binary/f call $~lib/math/NativeMathf.mod set_global $binary/f get_global $binary/f tee_local $0 i32.reinterpret/f32 i32.const 2147483647 i32.and i32.const 2139095040 i32.gt_s tee_local $1 i32.eqz if i32.const 0 set_local $1 end get_local $1 if get_local $0 f32.const 1 f32.add set_local $0 end get_local $0 set_global $binary/f get_global $binary/f f32.const 1 f32.add set_global $binary/f get_global $binary/f f32.const 1 f32.sub set_global $binary/f get_global $binary/f call $~lib/math/NativeMathf.mod set_global $binary/f get_global $binary/f tee_local $0 i32.reinterpret/f32 i32.const 2147483647 i32.and i32.const 2139095040 i32.gt_s tee_local $1 i32.eqz if i32.const 0 set_local $1 end get_local $1 if get_local $0 f32.const 1 f32.add set_local $0 end get_local $0 set_global $binary/f get_global $binary/F call $~lib/math/NativeMath.mod drop get_global $binary/F call $~lib/math/NativeMath.pow drop get_global $binary/F f64.const 1 f64.lt set_global $binary/b get_global $binary/F f64.const 1 f64.gt set_global $binary/b get_global $binary/F f64.const 1 f64.le set_global $binary/b get_global $binary/F f64.const 1 f64.ge set_global $binary/b get_global $binary/F f64.const 1 f64.eq set_global $binary/b get_global $binary/F f64.const 1 f64.eq set_global $binary/b get_global $binary/F f64.const 1 f64.add set_global $binary/F get_global $binary/F f64.const 1 f64.sub set_global $binary/F get_global $binary/F call $~lib/math/NativeMath.mod set_global $binary/F get_global $binary/F call $~lib/math/NativeMath.pow set_global $binary/F get_global $binary/F f64.const 1 f64.add set_global $binary/F get_global $binary/F f64.const 1 f64.sub set_global $binary/F get_global $binary/F call $~lib/math/NativeMath.mod set_global $binary/F get_global $binary/F call $~lib/math/NativeMath.pow set_global $binary/F ) (func $null (; 4 ;) (type $v) nop ) )