Files
failnix/targets/wasm-tacle/kernel/cubic/generated/default/cubic.wat

3117 lines
67 KiB
Plaintext

(module $cubic.wasm
(type (;0;) (func (param i32 i32)))
(type (;1;) (func))
(type (;2;) (func (param f32 f32 f32 f32 i32 i32)))
(type (;3;) (func (result i32)))
(type (;4;) (func (param f32) (result f32)))
(type (;5;) (func (param f32 f32) (result f32)))
(type (;6;) (func (param f32 i32) (result f32)))
(type (;7;) (func (param f32 i32) (result i32)))
(import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
(func $__wasm_apply_data_relocs (type 1))
(func $cubic_main (type 1)
(local f32)
i32.const 0
f32.load offset=1184
i32.const 0
f32.load offset=1188
i32.const 0
f32.load offset=1192
i32.const 0
f32.load offset=1196
i32.const 1260
i32.const 1264
call $cubic_solveCubic
i32.const 0
i32.const 0
i32.load offset=1256
i32.const 0
i32.load offset=1260
i32.add
i32.store offset=1256
i32.const 0
f32.load offset=1200
i32.const 0
f32.load offset=1204
i32.const 0
f32.load offset=1208
i32.const 0
f32.load offset=1212
i32.const 1260
i32.const 1264
call $cubic_solveCubic
i32.const 0
i32.const 0
i32.load offset=1256
i32.const 0
i32.load offset=1260
i32.add
i32.store offset=1256
i32.const 0
f32.load offset=1216
i32.const 0
f32.load offset=1220
i32.const 0
f32.load offset=1224
i32.const 0
f32.load offset=1228
i32.const 1260
i32.const 1264
call $cubic_solveCubic
i32.const 0
i32.const 0
i32.load offset=1256
i32.const 0
i32.load offset=1260
i32.add
i32.store offset=1256
i32.const 0
f32.load offset=1232
i32.const 0
f32.load offset=1236
i32.const 0
f32.load offset=1240
i32.const 0
f32.load offset=1244
i32.const 1260
i32.const 1264
call $cubic_solveCubic
i32.const 0
i32.const 0
i32.load offset=1256
i32.const 0
i32.load offset=1260
i32.add
i32.store offset=1256
i32.const 5
i32.const 5
call $__pragma_loopbound
i32.const 0
i32.const 1065353216
i32.store offset=1184
loop ;; label = @1
i32.const 5
i32.const 5
call $__pragma_loopbound
i32.const 0
i32.const 1092616192
i32.store offset=1188
loop ;; label = @2
i32.const 7
i32.const 7
call $__pragma_loopbound
i32.const 0
i32.const 1084227584
i32.store offset=1192
loop ;; label = @3
i32.const 5
i32.const 5
call $__pragma_loopbound
i32.const 0
i32.const -1082130432
i32.store offset=1196
f32.const -0x1p+0 (;=-1;)
local.set 0
loop ;; label = @4
i32.const 0
f32.load offset=1184
i32.const 0
f32.load offset=1188
i32.const 0
f32.load offset=1192
local.get 0
i32.const 1260
i32.const 1264
call $cubic_solveCubic
i32.const 0
i32.const 0
i32.load offset=1256
i32.const 0
i32.load offset=1260
i32.add
i32.store offset=1256
i32.const 0
i32.const 0
f32.load offset=1196
f32.const -0x1p+1 (;=-2;)
f32.add
local.tee 0
f32.store offset=1196
local.get 0
f32.const -0x1.6p+3 (;=-11;)
f32.gt
br_if 0 (;@4;)
end
i32.const 0
i32.const 0
f32.load offset=1192
f32.const 0x1.8p+0 (;=1.5;)
f32.add
local.tee 0
f32.store offset=1192
local.get 0
f32.const 0x1.ep+3 (;=15;)
f32.lt
br_if 0 (;@3;)
end
i32.const 0
i32.const 0
f32.load offset=1188
f32.const -0x1p+1 (;=-2;)
f32.add
local.tee 0
f32.store offset=1188
local.get 0
f32.const 0x0p+0 (;=0;)
f32.gt
br_if 0 (;@2;)
end
i32.const 0
i32.const 0
f32.load offset=1184
f32.const 0x1p+1 (;=2;)
f32.add
local.tee 0
f32.store offset=1184
local.get 0
f32.const 0x1.4p+3 (;=10;)
f32.lt
br_if 0 (;@1;)
end)
(func $cubic_solveCubic (type 2) (param f32 f32 f32 f32 i32 i32)
(local f32)
block ;; label = @1
local.get 3
local.get 0
f32.div
f32.const 0x1.bp+4 (;=27;)
f32.mul
local.get 1
local.get 0
f32.div
local.tee 1
local.get 1
local.get 1
f32.add
f32.mul
local.get 1
f32.mul
local.get 1
f32.const -0x1.2p+3 (;=-9;)
f32.mul
local.get 2
local.get 0
f32.div
local.tee 0
f32.mul
f32.add
f32.add
f32.const 0x1.bp+5 (;=54;)
f32.div
local.tee 2
local.get 2
f32.mul
local.get 1
local.get 1
f32.mul
local.get 0
f32.const -0x1.8p+1 (;=-3;)
f32.mul
f32.add
f32.const 0x1.2p+3 (;=9;)
f32.div
local.tee 0
local.get 0
local.get 0
f32.mul
f32.mul
local.tee 3
f32.sub
local.tee 6
f32.const 0x0p+0 (;=0;)
f32.le
i32.eqz
br_if 0 (;@1;)
local.get 4
i32.const 3
i32.store
local.get 2
local.get 3
call $basicmath___ieee754_sqrtf
f32.div
call $basicmath___ieee754_acosf
local.set 2
local.get 5
local.get 0
call $basicmath___ieee754_sqrtf
f32.const -0x1p+1 (;=-2;)
f32.mul
local.get 2
f32.const 0x1.8p+1 (;=3;)
f32.div
call $basicmath___cosf
f32.mul
local.get 1
f32.const -0x1.8p+1 (;=-3;)
f32.div
local.tee 1
f32.add
f32.store
local.get 5
local.get 0
call $basicmath___ieee754_sqrtf
f32.const -0x1p+1 (;=-2;)
f32.mul
local.get 2
f32.const 0x1.91eb86p+2 (;=6.28;)
f32.add
f32.const 0x1.8p+1 (;=3;)
f32.div
call $basicmath___cosf
f32.mul
local.get 1
f32.add
f32.store offset=4
local.get 5
local.get 0
call $basicmath___ieee754_sqrtf
f32.const -0x1p+1 (;=-2;)
f32.mul
local.get 2
f32.const 0x1.91eb86p+3 (;=12.56;)
f32.add
f32.const 0x1.8p+1 (;=3;)
f32.div
call $basicmath___cosf
f32.mul
local.get 1
f32.add
f32.store offset=8
return
end
local.get 4
i32.const 1
i32.store
local.get 5
local.get 6
call $basicmath___ieee754_sqrtf
local.get 2
call $basicmath___fabsf
f32.add
f32.const 0x1.555556p-2 (;=0.333333;)
call $basicmath___ieee754_powf
local.tee 3
local.get 0
local.get 3
f32.div
f32.add
local.tee 0
local.get 0
f32.neg
local.get 2
f32.const 0x0p+0 (;=0;)
f32.lt
select
local.get 1
f32.const -0x1.8p+1 (;=-3;)
f32.div
f32.add
f32.store)
(func $__original_main (type 3) (result i32)
i32.const 0
i32.const -1054343168
i32.store offset=1188
i32.const 0
i32.const 1065353216
i32.store offset=1184
i32.const 0
i32.const 1107296256
i32.store offset=1192
i32.const 0
i32.const -1041235968
i32.store offset=1196
i32.const 0
i32.const 1065353216
i32.store offset=1200
i32.const 0
i32.const -1064304640
i32.store offset=1204
i32.const 0
i32.const 1099431936
i32.store offset=1208
i32.const 0
i32.const -1041235968
i32.store offset=1212
i32.const 0
i32.const 1065353216
i32.store offset=1216
i32.const 0
i32.const -1067450368
i32.store offset=1220
i32.const 0
i32.const 1102053376
i32.store offset=1224
i32.const 0
i32.const -1040711680
i32.store offset=1228
i32.const 0
i32.const 1065353216
i32.store offset=1232
i32.const 0
i32.const -1050987725
i32.store offset=1236
i32.const 0
i32.const 1065353216
i32.store offset=1240
i32.const 0
i32.const -1039400960
i32.store offset=1244
i32.const 0
i32.const 0
i32.store offset=1248
i32.const 0
i32.const 0
i32.store offset=1252
i32.const 0
i32.const 0
i32.store offset=1256
call $cubic_main
i32.const -1
i32.const 0
i32.const 0
i32.load offset=1256
i32.const 1051
i32.ne
select)
(func $basicmath___ieee754_acosf (type 4) (param f32) (result f32)
(local i32 i32 f32 f32)
block ;; label = @1
local.get 0
i32.reinterpret_f32
local.tee 1
i32.const 2147483647
i32.and
local.tee 2
i32.const 1065353216
i32.ne
br_if 0 (;@1;)
f32.const 0x0p+0 (;=0;)
f32.const 0x1.921fb6p+1 (;=3.14159;)
local.get 1
i32.const 0
i32.gt_s
select
return
end
block ;; label = @1
local.get 2
i32.const 1065353217
i32.lt_u
br_if 0 (;@1;)
local.get 0
local.get 0
f32.sub
local.tee 0
local.get 0
f32.div
return
end
block ;; label = @1
block ;; label = @2
local.get 2
i32.const 1056964607
i32.gt_u
br_if 0 (;@2;)
f32.const 0x1.921fb6p+0 (;=1.5708;)
local.set 3
local.get 2
i32.const 587202561
i32.lt_u
br_if 1 (;@1;)
f32.const 0x1.4442dp-24 (;=7.54979e-08;)
local.get 0
local.get 0
local.get 0
f32.mul
local.tee 3
local.get 3
local.get 3
local.get 3
local.get 3
local.get 3
f32.const 0x1.23de1p-15 (;=3.47933e-05;)
f32.mul
f32.const 0x1.9efe08p-11 (;=0.000791535;)
f32.add
f32.mul
f32.const -0x1.48228cp-5 (;=-0.0400555;)
f32.add
f32.mul
f32.const 0x1.9c155p-3 (;=0.201213;)
f32.add
f32.mul
f32.const -0x1.4d612p-2 (;=-0.325566;)
f32.add
f32.mul
f32.const 0x1.555556p-3 (;=0.166667;)
f32.add
f32.mul
local.get 3
local.get 3
local.get 3
local.get 3
f32.const 0x1.3b8c5cp-4 (;=0.0770382;)
f32.mul
f32.const -0x1.6066c2p-1 (;=-0.688284;)
f32.add
f32.mul
f32.const 0x1.02ae5ap+1 (;=2.02095;)
f32.add
f32.mul
f32.const -0x1.33a272p+1 (;=-2.40339;)
f32.add
f32.mul
f32.const 0x1p+0 (;=1;)
f32.add
f32.div
f32.mul
f32.sub
local.get 0
f32.sub
f32.const 0x1.921fb4p+0 (;=1.5708;)
f32.add
return
end
block ;; label = @2
local.get 1
i32.const -1
i32.gt_s
br_if 0 (;@2;)
f32.const 0x1.921fb4p+1 (;=3.14159;)
local.get 0
f32.const 0x1p+0 (;=1;)
f32.add
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.tee 0
call $basicmath___ieee754_sqrtf
local.tee 3
local.get 3
local.get 0
local.get 0
local.get 0
local.get 0
local.get 0
local.get 0
f32.const 0x1.23de1p-15 (;=3.47933e-05;)
f32.mul
f32.const 0x1.9efe08p-11 (;=0.000791535;)
f32.add
f32.mul
f32.const -0x1.48228cp-5 (;=-0.0400555;)
f32.add
f32.mul
f32.const 0x1.9c155p-3 (;=0.201213;)
f32.add
f32.mul
f32.const -0x1.4d612p-2 (;=-0.325566;)
f32.add
f32.mul
f32.const 0x1.555556p-3 (;=0.166667;)
f32.add
f32.mul
local.get 0
local.get 0
local.get 0
local.get 0
f32.const 0x1.3b8c5cp-4 (;=0.0770382;)
f32.mul
f32.const -0x1.6066c2p-1 (;=-0.688284;)
f32.add
f32.mul
f32.const 0x1.02ae5ap+1 (;=2.02095;)
f32.add
f32.mul
f32.const -0x1.33a272p+1 (;=-2.40339;)
f32.add
f32.mul
f32.const 0x1p+0 (;=1;)
f32.add
f32.div
f32.mul
f32.const -0x1.4442dp-24 (;=-7.54979e-08;)
f32.add
f32.add
local.tee 0
local.get 0
f32.add
f32.sub
return
end
f32.const 0x1p+0 (;=1;)
local.get 0
f32.sub
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.tee 0
local.get 0
local.get 0
local.get 0
local.get 0
local.get 0
f32.const 0x1.23de1p-15 (;=3.47933e-05;)
f32.mul
f32.const 0x1.9efe08p-11 (;=0.000791535;)
f32.add
f32.mul
f32.const -0x1.48228cp-5 (;=-0.0400555;)
f32.add
f32.mul
f32.const 0x1.9c155p-3 (;=0.201213;)
f32.add
f32.mul
f32.const -0x1.4d612p-2 (;=-0.325566;)
f32.add
f32.mul
f32.const 0x1.555556p-3 (;=0.166667;)
f32.add
f32.mul
local.get 0
local.get 0
local.get 0
local.get 0
f32.const 0x1.3b8c5cp-4 (;=0.0770382;)
f32.mul
f32.const -0x1.6066c2p-1 (;=-0.688284;)
f32.add
f32.mul
f32.const 0x1.02ae5ap+1 (;=2.02095;)
f32.add
f32.mul
f32.const -0x1.33a272p+1 (;=-2.40339;)
f32.add
f32.mul
f32.const 0x1p+0 (;=1;)
f32.add
f32.div
local.get 0
call $basicmath___ieee754_sqrtf
local.tee 4
f32.mul
local.get 0
local.get 4
i32.reinterpret_f32
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 3
local.get 3
f32.mul
f32.sub
local.get 4
local.get 3
f32.add
f32.div
f32.add
local.get 3
f32.add
local.tee 0
local.get 0
f32.add
local.set 3
end
local.get 3)
(func $basicmath___ieee754_sqrtf (type 4) (param f32) (result f32)
(local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32)
block ;; label = @1
local.get 0
i32.reinterpret_f32
local.tee 1
i32.const 2139095040
i32.and
i32.const 2139095040
i32.ne
br_if 0 (;@1;)
local.get 0
local.get 0
f32.mul
local.get 0
f32.add
return
end
block ;; label = @1
block ;; label = @2
block ;; label = @3
block ;; label = @4
local.get 1
i32.const 0
i32.gt_s
br_if 0 (;@4;)
local.get 0
f32.const 0x0p+0 (;=0;)
f32.eq
br_if 3 (;@1;)
local.get 1
i32.const -1
i32.gt_s
br_if 1 (;@3;)
local.get 0
local.get 0
f32.sub
local.tee 0
local.get 0
f32.div
return
end
local.get 1
i32.const 8388607
i32.le_u
br_if 0 (;@3;)
local.get 1
i32.const 23
i32.shr_u
local.set 2
br 1 (;@2;)
end
i32.const 0
i32.const 0
call $__pragma_loopbound
i32.const 9
local.get 1
i32.clz
local.tee 3
i32.sub
local.set 2
local.get 1
i32.const 23
local.get 3
i32.const 31
i32.xor
i32.sub
i32.shl
local.set 1
end
i32.const 25
i32.const 25
call $__pragma_loopbound
local.get 2
i32.const -127
i32.add
local.tee 2
i32.const 22
i32.shl
i32.const -8388608
i32.and
i32.const 0
i32.const 33554432
i32.const 50331648
local.get 1
i32.const 8388607
i32.and
i32.const 8388608
i32.or
local.get 2
i32.const 1
i32.and
i32.shl
local.tee 3
i32.const 18874368
i32.lt_u
local.tee 1
select
local.tee 2
local.get 2
i32.const 8388608
i32.or
local.get 2
i32.const 4194304
i32.or
local.tee 2
local.get 3
i32.const 2
i32.shl
i32.const 0
i32.const -41943040
local.get 1
select
i32.add
i32.const 1
i32.shl
i32.const -67108864
i32.add
local.tee 3
i32.gt_s
local.tee 4
select
local.tee 5
local.get 5
i32.const 4194304
i32.or
local.get 5
i32.const 2097152
i32.or
local.tee 5
local.get 3
i32.const 0
local.get 2
local.get 4
select
i32.sub
i32.const 1
i32.shl
local.tee 4
i32.gt_s
local.tee 6
select
local.tee 7
local.get 7
i32.const 2097152
i32.or
local.get 7
i32.const 1048576
i32.or
local.tee 7
local.get 4
i32.const 0
local.get 5
local.get 6
select
i32.sub
i32.const 1
i32.shl
local.tee 6
i32.gt_s
local.tee 8
select
local.tee 9
local.get 9
i32.const 1048576
i32.add
local.get 9
i32.const 524288
i32.add
local.tee 9
local.get 6
i32.const 0
local.get 7
local.get 8
select
i32.sub
i32.const 1
i32.shl
local.tee 8
i32.gt_s
local.tee 10
select
local.tee 11
local.get 11
i32.const 524288
i32.add
local.get 11
i32.const 262144
i32.add
local.tee 11
local.get 8
i32.const 0
local.get 9
local.get 10
select
i32.sub
i32.const 1
i32.shl
local.tee 10
i32.gt_s
local.tee 12
select
local.tee 13
local.get 13
i32.const 262144
i32.add
local.get 13
i32.const 131072
i32.add
local.tee 13
local.get 10
i32.const 0
local.get 11
local.get 12
select
i32.sub
i32.const 1
i32.shl
local.tee 12
i32.gt_s
local.tee 14
select
local.tee 15
local.get 15
i32.const 131072
i32.add
local.get 15
i32.const 65536
i32.add
local.tee 15
local.get 12
i32.const 0
local.get 13
local.get 14
select
i32.sub
i32.const 1
i32.shl
local.tee 14
i32.gt_s
local.tee 16
select
local.tee 17
local.get 17
i32.const 65536
i32.add
local.get 17
i32.const 32768
i32.add
local.tee 17
local.get 14
i32.const 0
local.get 15
local.get 16
select
i32.sub
i32.const 1
i32.shl
local.tee 16
i32.gt_s
local.tee 18
select
local.tee 19
local.get 19
i32.const 32768
i32.add
local.get 19
i32.const 16384
i32.add
local.tee 19
local.get 16
i32.const 0
local.get 17
local.get 18
select
i32.sub
i32.const 1
i32.shl
local.tee 18
i32.gt_s
local.tee 20
select
local.tee 21
local.get 21
i32.const 16384
i32.add
local.get 21
i32.const 8192
i32.add
local.tee 21
local.get 18
i32.const 0
local.get 19
local.get 20
select
i32.sub
i32.const 1
i32.shl
local.tee 20
i32.gt_s
local.tee 22
select
local.tee 23
local.get 23
i32.const 8192
i32.add
local.get 23
i32.const 4096
i32.add
local.tee 23
local.get 20
i32.const 0
local.get 21
local.get 22
select
i32.sub
i32.const 1
i32.shl
local.tee 22
i32.gt_s
local.tee 24
select
local.tee 25
local.get 25
i32.const 4096
i32.add
local.get 25
i32.const 2048
i32.add
local.tee 25
local.get 22
i32.const 0
local.get 23
local.get 24
select
i32.sub
i32.const 1
i32.shl
local.tee 24
i32.gt_s
local.tee 26
select
local.tee 27
local.get 27
i32.const 2048
i32.add
local.get 27
i32.const 1024
i32.add
local.tee 27
local.get 24
i32.const 0
local.get 25
local.get 26
select
i32.sub
i32.const 1
i32.shl
local.tee 26
i32.gt_s
local.tee 28
select
local.tee 29
local.get 29
i32.const 1024
i32.add
local.get 29
i32.const 512
i32.add
local.tee 29
local.get 26
i32.const 0
local.get 27
local.get 28
select
i32.sub
i32.const 1
i32.shl
local.tee 28
i32.gt_s
local.tee 30
select
local.tee 31
local.get 31
i32.const 512
i32.add
local.get 31
i32.const 256
i32.add
local.tee 31
local.get 28
i32.const 0
local.get 29
local.get 30
select
i32.sub
i32.const 1
i32.shl
local.tee 30
i32.gt_s
local.tee 32
select
local.tee 33
local.get 33
i32.const 256
i32.add
local.get 33
i32.const 128
i32.add
local.tee 33
local.get 30
i32.const 0
local.get 31
local.get 32
select
i32.sub
i32.const 1
i32.shl
local.tee 32
i32.gt_s
local.tee 34
select
local.tee 35
local.get 35
i32.const 128
i32.add
local.get 35
i32.const 64
i32.add
local.tee 35
local.get 32
i32.const 0
local.get 33
local.get 34
select
i32.sub
i32.const 1
i32.shl
local.tee 34
i32.gt_s
local.tee 36
select
local.tee 37
local.get 37
i32.const 64
i32.add
local.get 37
i32.const 32
i32.add
local.tee 37
local.get 34
i32.const 0
local.get 35
local.get 36
select
i32.sub
i32.const 1
i32.shl
local.tee 36
i32.gt_s
local.tee 38
select
local.tee 39
local.get 39
i32.const 32
i32.add
local.get 39
i32.const 16
i32.add
local.tee 39
local.get 36
i32.const 0
local.get 37
local.get 38
select
i32.sub
i32.const 1
i32.shl
local.tee 38
i32.gt_s
local.tee 40
select
local.tee 41
local.get 41
i32.const 16
i32.add
local.get 41
i32.const 8
i32.add
local.tee 41
local.get 38
i32.const 0
local.get 39
local.get 40
select
i32.sub
i32.const 1
i32.shl
local.tee 40
i32.gt_s
local.tee 42
select
local.tee 43
local.get 43
i32.const 8
i32.add
local.get 43
i32.const 4
i32.add
local.tee 43
local.get 40
i32.const 0
local.get 41
local.get 42
select
i32.sub
i32.const 1
i32.shl
local.tee 42
i32.gt_s
local.tee 44
select
local.tee 45
i32.const 2
i32.add
local.tee 46
local.get 42
i32.const 0
local.get 43
local.get 44
select
i32.sub
i32.const 1
i32.shl
local.tee 44
i32.le_s
i32.const 1
i32.shl
local.get 43
local.get 42
i32.le_s
i32.const 2
i32.shl
local.get 41
local.get 40
i32.le_s
i32.const 3
i32.shl
local.get 39
local.get 38
i32.le_s
i32.const 4
i32.shl
local.get 37
local.get 36
i32.le_s
i32.const 5
i32.shl
local.get 35
local.get 34
i32.le_s
i32.const 6
i32.shl
local.get 33
local.get 32
i32.le_s
i32.const 7
i32.shl
local.get 31
local.get 30
i32.le_s
i32.const 8
i32.shl
local.get 29
local.get 28
i32.le_s
i32.const 9
i32.shl
local.get 27
local.get 26
i32.le_s
i32.const 10
i32.shl
local.get 25
local.get 24
i32.le_s
i32.const 11
i32.shl
local.get 23
local.get 22
i32.le_s
i32.const 12
i32.shl
local.get 21
local.get 20
i32.le_s
i32.const 13
i32.shl
local.get 19
local.get 18
i32.le_s
i32.const 14
i32.shl
local.get 17
local.get 16
i32.le_s
i32.const 15
i32.shl
local.get 15
local.get 14
i32.le_s
i32.const 16
i32.shl
local.get 13
local.get 12
i32.le_s
i32.const 17
i32.shl
local.get 11
local.get 10
i32.le_s
i32.const 18
i32.shl
local.get 9
local.get 8
i32.le_s
i32.const 19
i32.shl
local.get 7
local.get 6
i32.le_s
i32.const 20
i32.shl
local.get 5
local.get 4
i32.le_s
i32.const 21
i32.shl
local.get 2
local.get 3
i32.le_s
i32.const 22
i32.shl
i32.const 16777216
i32.const 25165824
local.get 1
select
i32.or
i32.or
i32.or
i32.or
i32.or
i32.or
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
i32.add
local.get 45
local.get 45
i32.const 4
i32.add
local.get 46
local.get 44
i32.gt_s
local.tee 1
select
local.tee 2
local.get 44
i32.const 0
local.get 46
local.get 1
select
i32.sub
i32.const 1
i32.shl
local.tee 1
i32.lt_s
local.tee 3
i32.add
local.tee 5
i32.const 1
i32.and
local.get 2
i32.const -1
local.get 3
select
local.get 1
i32.const -1
i32.add
i32.eq
select
local.get 5
i32.add
i32.const 1
i32.shr_u
i32.add
i32.const 1056964608
i32.add
f32.reinterpret_i32
local.set 0
end
local.get 0)
(func $basicmath___ieee754_powf (type 5) (param f32 f32) (result f32)
(local f32 i32 i32 i32 i32 i32 i32 i32 f32 f32 f32 f32 f32 f32)
f32.const 0x1p+0 (;=1;)
local.set 2
block ;; label = @1
local.get 0
f32.const 0x1p+0 (;=1;)
f32.eq
br_if 0 (;@1;)
local.get 1
i32.reinterpret_f32
local.tee 3
i32.const 2147483647
i32.and
local.tee 4
i32.eqz
br_if 0 (;@1;)
block ;; label = @2
local.get 0
f32.const -0x1p+0 (;=-1;)
f32.ne
br_if 0 (;@2;)
local.get 1
f32.abs
f32.const inf (;=inf;)
f32.ne
br_if 0 (;@2;)
local.get 3
i32.const 1073741823
i32.gt_u
br_if 1 (;@1;)
end
block ;; label = @2
block ;; label = @3
local.get 0
f32.abs
local.tee 2
i32.reinterpret_f32
local.tee 5
i32.const 2139095040
i32.gt_u
br_if 0 (;@3;)
local.get 4
i32.const 2139095041
i32.lt_u
br_if 1 (;@2;)
end
local.get 0
local.get 1
f32.add
return
end
block ;; label = @2
block ;; label = @3
local.get 0
i32.reinterpret_f32
local.tee 6
i32.const -1
i32.le_s
br_if 0 (;@3;)
i32.const 0
local.set 7
br 1 (;@2;)
end
i32.const 2
local.set 7
local.get 4
i32.const 1266679807
i32.gt_u
br_if 0 (;@2;)
block ;; label = @3
local.get 4
i32.const 1065353216
i32.ge_u
br_if 0 (;@3;)
i32.const 0
local.set 7
br 1 (;@2;)
end
i32.const 0
local.set 7
local.get 4
i32.const 150
local.get 4
i32.const 23
i32.shr_u
i32.sub
local.tee 8
i32.shr_u
local.tee 9
local.get 8
i32.shl
local.get 4
i32.ne
br_if 0 (;@2;)
i32.const 2
local.get 9
i32.const 1
i32.and
i32.sub
local.set 7
end
block ;; label = @2
block ;; label = @3
local.get 4
i32.const 1065353216
i32.eq
br_if 0 (;@3;)
local.get 4
i32.const 2139095040
i32.ne
br_if 1 (;@2;)
block ;; label = @4
local.get 5
i32.const 1065353216
i32.ne
br_if 0 (;@4;)
local.get 1
local.get 1
f32.sub
return
end
block ;; label = @4
local.get 5
i32.const 1065353217
i32.lt_u
br_if 0 (;@4;)
local.get 1
f32.const 0x0p+0 (;=0;)
local.get 3
i32.const -1
i32.gt_s
select
return
end
local.get 1
f32.neg
f32.const 0x0p+0 (;=0;)
local.get 3
i32.const 0
i32.lt_s
select
return
end
block ;; label = @3
local.get 3
i32.const -1
i32.le_s
br_if 0 (;@3;)
local.get 0
return
end
f32.const 0x1p+0 (;=1;)
local.get 0
f32.div
return
end
block ;; label = @2
local.get 3
i32.const 1073741824
i32.ne
br_if 0 (;@2;)
local.get 0
local.get 0
f32.mul
return
end
block ;; label = @2
local.get 6
i32.const 0
i32.lt_s
br_if 0 (;@2;)
local.get 3
i32.const 1056964608
i32.ne
br_if 0 (;@2;)
local.get 0
call $basicmath___ieee754_sqrtf
return
end
block ;; label = @2
block ;; label = @3
local.get 5
i32.eqz
br_if 0 (;@3;)
local.get 5
i32.const 1073741823
i32.and
i32.const 1065353216
i32.ne
br_if 1 (;@2;)
end
f32.const 0x1p+0 (;=1;)
local.get 2
f32.div
local.get 2
local.get 3
i32.const 0
i32.lt_s
select
local.set 2
local.get 6
i32.const -1
i32.gt_s
br_if 1 (;@1;)
block ;; label = @3
local.get 5
local.get 7
i32.add
i32.const 1065353216
i32.ne
br_if 0 (;@3;)
local.get 2
local.get 2
f32.sub
local.tee 0
local.get 0
f32.div
return
end
local.get 2
f32.neg
local.get 2
local.get 7
i32.const 1
i32.eq
select
return
end
block ;; label = @2
local.get 7
local.get 6
i32.const 31
i32.shr_u
i32.const -1
i32.add
local.tee 6
i32.or
br_if 0 (;@2;)
local.get 0
local.get 0
f32.sub
local.tee 0
local.get 0
f32.div
return
end
block ;; label = @2
block ;; label = @3
local.get 4
i32.const 1291845633
i32.lt_u
br_if 0 (;@3;)
block ;; label = @4
local.get 5
i32.const 1065353207
i32.gt_u
br_if 0 (;@4;)
f32.const inf (;=inf;)
f32.const 0x0p+0 (;=0;)
local.get 3
i32.const 0
i32.lt_s
select
return
end
block ;; label = @4
local.get 5
i32.const 1065353224
i32.lt_u
br_if 0 (;@4;)
f32.const inf (;=inf;)
f32.const 0x0p+0 (;=0;)
local.get 3
i32.const 0
i32.gt_s
select
return
end
local.get 0
f32.const -0x1p+0 (;=-1;)
f32.add
local.tee 0
f32.const 0x1.d94aep-18 (;=7.05261e-06;)
f32.mul
local.get 0
local.get 0
f32.mul
f32.const 0x1p-1 (;=0.5;)
local.get 0
local.get 0
f32.const -0x1p-2 (;=-0.25;)
f32.mul
f32.const 0x1.555556p-2 (;=0.333333;)
f32.add
f32.mul
f32.sub
f32.mul
f32.const -0x1.715476p+0 (;=-1.4427;)
f32.mul
f32.add
local.tee 2
local.get 2
local.get 0
f32.const 0x1.7154p+0 (;=1.44269;)
f32.mul
local.tee 10
f32.add
i32.reinterpret_f32
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 0
local.get 10
f32.sub
f32.sub
local.set 2
br 1 (;@2;)
end
local.get 2
f32.const 0x1p+24 (;=1.67772e+07;)
f32.mul
i32.reinterpret_f32
local.get 5
local.get 5
i32.const 8388608
i32.lt_u
local.tee 9
select
local.tee 5
i32.const 8388607
i32.and
local.tee 8
i32.const 1065353216
i32.or
local.set 4
i32.const -151
i32.const -127
local.get 9
select
local.get 5
i32.const 23
i32.shr_s
i32.add
local.set 9
i32.const 0
local.set 5
block ;; label = @3
local.get 8
i32.const 1885298
i32.lt_u
br_if 0 (;@3;)
block ;; label = @4
local.get 8
i32.const 6140887
i32.ge_u
br_if 0 (;@4;)
i32.const 1
local.set 5
br 1 (;@3;)
end
local.get 8
i32.const 1056964608
i32.or
local.set 4
local.get 9
i32.const 1
i32.add
local.set 9
end
local.get 5
i32.const 2
i32.shl
local.tee 8
i32.const 1032
i32.add
f32.load
local.get 4
f32.reinterpret_i32
local.tee 10
local.get 8
i32.const 1024
i32.add
f32.load
local.tee 11
f32.sub
local.tee 12
f32.const 0x1p+0 (;=1;)
local.get 11
local.get 10
f32.add
f32.div
local.tee 13
f32.mul
local.tee 2
i32.reinterpret_f32
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 0
local.get 0
local.get 0
f32.mul
local.tee 14
f32.const 0x1.8p+1 (;=3;)
f32.add
local.get 13
local.get 12
local.get 0
local.get 5
i32.const 21
i32.shl
local.get 4
i32.const 1
i32.shr_u
i32.add
i32.const 537133056
i32.add
f32.reinterpret_i32
local.tee 15
f32.mul
f32.sub
local.get 0
local.get 10
local.get 15
local.get 11
f32.sub
f32.sub
f32.mul
f32.sub
f32.mul
local.tee 10
local.get 2
local.get 0
f32.add
f32.mul
local.get 2
local.get 2
f32.mul
local.tee 0
local.get 0
f32.mul
local.get 0
local.get 0
local.get 0
local.get 0
local.get 0
f32.const 0x1.a7e284p-3 (;=0.206975;)
f32.mul
f32.const 0x1.d864aap-3 (;=0.230661;)
f32.add
f32.mul
f32.const 0x1.17460ap-2 (;=0.272728;)
f32.add
f32.mul
f32.const 0x1.555556p-2 (;=0.333333;)
f32.add
f32.mul
f32.const 0x1.b6db6ep-2 (;=0.428571;)
f32.add
f32.mul
f32.const 0x1.333334p-1 (;=0.6;)
f32.add
f32.mul
f32.add
local.tee 11
f32.add
i32.reinterpret_f32
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 0
f32.mul
local.tee 12
local.get 10
local.get 0
f32.mul
local.get 2
local.get 11
local.get 0
f32.const -0x1.8p+1 (;=-3;)
f32.add
local.get 14
f32.sub
f32.sub
f32.mul
f32.add
local.tee 2
f32.add
i32.reinterpret_f32
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 0
f32.const 0x1.3b874p-18 (;=4.70174e-06;)
f32.mul
local.get 2
local.get 0
local.get 12
f32.sub
f32.sub
f32.const 0x1.ec709ep-1 (;=0.961797;)
f32.mul
f32.add
f32.add
local.tee 2
local.get 8
i32.const 1040
i32.add
f32.load
local.tee 10
local.get 2
local.get 0
f32.const 0x1.ec7p-1 (;=0.961792;)
f32.mul
local.tee 11
f32.add
f32.add
local.get 9
f32.convert_i32_s
local.tee 2
f32.add
i32.reinterpret_f32
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 0
local.get 2
f32.sub
local.get 10
f32.sub
local.get 11
f32.sub
f32.sub
local.set 2
end
f32.const 0x1p+0 (;=1;)
f32.const -0x1p+0 (;=-1;)
local.get 7
i32.const -1
i32.add
local.get 6
i32.or
select
local.set 10
block ;; label = @2
local.get 1
local.get 3
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 11
f32.sub
local.get 0
f32.mul
local.get 2
local.get 1
f32.mul
f32.add
local.tee 2
local.get 0
local.get 11
f32.mul
local.tee 0
f32.add
local.tee 1
i32.reinterpret_f32
local.tee 4
i32.const 1124073473
i32.lt_s
br_if 0 (;@2;)
local.get 10
f32.const 0x1.93e594p+99 (;=1e+30;)
f32.mul
f32.const 0x1.93e594p+99 (;=1e+30;)
f32.mul
return
end
block ;; label = @2
block ;; label = @3
local.get 4
i32.const 1124073472
i32.ne
br_if 0 (;@3;)
block ;; label = @4
local.get 2
f32.const 0x1.715478p-25 (;=4.29957e-08;)
f32.add
local.get 1
local.get 0
f32.sub
f32.gt
br_if 0 (;@4;)
local.get 1
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.set 3
br 2 (;@2;)
end
local.get 10
f32.const 0x1.93e594p+99 (;=1e+30;)
f32.mul
f32.const 0x1.93e594p+99 (;=1e+30;)
f32.mul
return
end
block ;; label = @3
local.get 1
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 3
i32.const 1125515265
i32.lt_u
br_if 0 (;@3;)
local.get 10
f32.const 0x1.4484cp-100 (;=1e-30;)
f32.mul
f32.const 0x1.4484cp-100 (;=1e-30;)
f32.mul
return
end
local.get 4
i32.const -1021968384
i32.ne
br_if 0 (;@2;)
local.get 2
local.get 1
local.get 0
f32.sub
f32.le
i32.eqz
br_if 0 (;@2;)
local.get 10
f32.const 0x1.4484cp-100 (;=1e-30;)
f32.mul
f32.const 0x1.4484cp-100 (;=1e-30;)
f32.mul
return
end
i32.const 0
local.set 5
block ;; label = @2
local.get 3
i32.const 1056964609
i32.lt_u
br_if 0 (;@2;)
i32.const 0
i32.const 8388608
local.get 3
i32.const 23
i32.shr_u
i32.const -126
i32.add
i32.shr_u
local.get 4
i32.add
local.tee 3
i32.const 8388607
i32.and
i32.const 8388608
i32.or
i32.const 150
local.get 3
i32.const 23
i32.shr_u
i32.const 255
i32.and
local.tee 7
i32.sub
i32.shr_u
local.tee 5
i32.sub
local.get 5
local.get 4
i32.const 0
i32.lt_s
select
local.set 5
local.get 2
local.get 0
i32.const -8388608
local.get 7
i32.const -127
i32.add
i32.shr_s
local.get 3
i32.and
f32.reinterpret_i32
f32.sub
local.tee 0
f32.add
i32.reinterpret_f32
local.set 4
end
block ;; label = @2
block ;; label = @3
local.get 5
i32.const 23
i32.shl
local.get 4
i32.const -4096
i32.and
f32.reinterpret_i32
local.tee 1
f32.const 0x1.62e4p-1 (;=0.693146;)
f32.mul
local.tee 11
local.get 2
local.get 1
local.get 0
f32.sub
f32.sub
f32.const 0x1.62e43p-1 (;=0.693147;)
f32.mul
local.get 1
f32.const 0x1.7f7d18p-20 (;=1.42861e-06;)
f32.mul
f32.add
local.tee 2
f32.add
local.tee 0
local.get 0
local.get 0
local.get 0
local.get 0
f32.mul
local.tee 1
local.get 1
local.get 1
local.get 1
local.get 1
f32.const 0x1.637698p-25 (;=4.13814e-08;)
f32.mul
f32.const -0x1.bbd41cp-20 (;=-1.65339e-06;)
f32.add
f32.mul
f32.const 0x1.1566aap-14 (;=6.61376e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-9 (;=-0.00277778;)
f32.add
f32.mul
f32.const 0x1.555556p-3 (;=0.166667;)
f32.add
f32.mul
f32.sub
local.tee 1
f32.mul
local.get 1
f32.const -0x1p+1 (;=-2;)
f32.add
f32.div
local.get 0
local.get 2
local.get 0
local.get 11
f32.sub
f32.sub
local.tee 1
f32.mul
local.get 1
f32.add
f32.sub
f32.sub
f32.const 0x1p+0 (;=1;)
f32.add
local.tee 0
i32.reinterpret_f32
i32.add
local.tee 4
i32.const 8388607
i32.gt_s
br_if 0 (;@3;)
local.get 0
local.get 5
call $basicmath___scalbnf
local.set 0
br 1 (;@2;)
end
local.get 4
f32.reinterpret_i32
local.set 0
end
local.get 10
local.get 0
f32.mul
local.set 2
end
local.get 2)
(func $basicmath___scalbnf (type 6) (param f32 i32) (result f32)
(local i32 i32)
block ;; label = @1
local.get 0
i32.reinterpret_f32
local.tee 2
i32.const 23
i32.shr_u
i32.const 255
i32.and
local.tee 3
i32.const 255
i32.eq
br_if 0 (;@1;)
block ;; label = @2
block ;; label = @3
local.get 3
br_if 0 (;@3;)
local.get 0
f32.const 0x0p+0 (;=0;)
f32.eq
br_if 1 (;@2;)
local.get 0
f32.const 0x1p+25 (;=3.35544e+07;)
f32.mul
local.tee 0
i32.reinterpret_f32
local.tee 2
i32.const 23
i32.shr_u
i32.const 255
i32.and
i32.const -25
i32.add
local.set 3
end
block ;; label = @3
block ;; label = @4
local.get 1
i32.const 50000
i32.gt_s
br_if 0 (;@4;)
local.get 3
local.get 1
i32.add
local.tee 3
i32.const 255
i32.lt_s
br_if 1 (;@3;)
end
local.get 0
i32.reinterpret_f32
i32.const -2147483648
i32.and
i32.const 1900671690
i32.or
f32.reinterpret_i32
f32.const 0x1.93e594p+99 (;=1e+30;)
f32.mul
return
end
block ;; label = @3
local.get 1
i32.const -50001
i32.gt_s
br_if 0 (;@3;)
local.get 0
i32.reinterpret_f32
i32.const -2147483648
i32.and
i32.const 228737632
i32.or
f32.reinterpret_i32
f32.const 0x1.4484cp-100 (;=1e-30;)
f32.mul
return
end
block ;; label = @3
local.get 3
i32.const 1
i32.lt_s
br_if 0 (;@3;)
local.get 2
i32.const -2139095041
i32.and
local.get 3
i32.const 23
i32.shl
i32.or
f32.reinterpret_i32
return
end
block ;; label = @3
local.get 3
i32.const -25
i32.gt_s
br_if 0 (;@3;)
local.get 0
i32.reinterpret_f32
i32.const -2147483648
i32.and
i32.const 228737632
i32.or
f32.reinterpret_i32
f32.const 0x1.4484cp-100 (;=1e-30;)
f32.mul
return
end
local.get 3
i32.const 23
i32.shl
i32.const 209715200
i32.add
local.get 2
i32.const -2139095041
i32.and
i32.or
f32.reinterpret_i32
f32.const 0x1p-25 (;=2.98023e-08;)
f32.mul
local.set 0
end
local.get 0
return
end
local.get 0
local.get 0
f32.add)
(func $basicmath___fabsf (type 4) (param f32) (result f32)
local.get 0
f32.abs)
(func $basicmath___ieee754_rem_pio2f (type 7) (param f32 i32) (result i32)
(local f32 i32 i32 i32 f32 f32 f32)
block ;; label = @1
local.get 0
f32.abs
local.tee 2
i32.reinterpret_f32
local.tee 3
i32.const 1061752792
i32.gt_u
br_if 0 (;@1;)
local.get 1
i32.const 0
i32.store offset=4
local.get 1
local.get 0
f32.store
i32.const 0
return
end
local.get 0
i32.reinterpret_f32
local.set 4
block ;; label = @1
local.get 3
i32.const 1075235811
i32.gt_u
br_if 0 (;@1;)
local.get 3
i32.const 2147483632
i32.and
local.set 3
block ;; label = @2
local.get 4
i32.const 1
i32.lt_s
br_if 0 (;@2;)
local.get 0
f32.const -0x1.921fp+0 (;=-1.57079;)
f32.add
local.set 0
block ;; label = @3
local.get 3
i32.const 1070141392
i32.eq
br_if 0 (;@3;)
local.get 1
local.get 0
f32.const -0x1.6a8886p-17 (;=-1.08043e-05;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const -0x1.6a8886p-17 (;=-1.08043e-05;)
f32.add
f32.store offset=4
i32.const 1
return
end
local.get 1
local.get 0
f32.const -0x1.6a88p-17 (;=-1.08043e-05;)
f32.add
local.tee 0
f32.const -0x1.0b461p-34 (;=-6.0771e-11;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const -0x1.0b461p-34 (;=-6.0771e-11;)
f32.add
f32.store offset=4
i32.const 1
return
end
local.get 0
f32.const 0x1.921fp+0 (;=1.57079;)
f32.add
local.set 0
block ;; label = @2
local.get 3
i32.const 1070141392
i32.eq
br_if 0 (;@2;)
local.get 1
local.get 0
f32.const 0x1.6a8886p-17 (;=1.08043e-05;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const 0x1.6a8886p-17 (;=1.08043e-05;)
f32.add
f32.store offset=4
i32.const -1
return
end
local.get 1
local.get 0
f32.const 0x1.6a88p-17 (;=1.08043e-05;)
f32.add
local.tee 0
f32.const 0x1.0b461p-34 (;=6.0771e-11;)
f32.add
local.tee 2
f32.store
local.get 1
local.get 0
local.get 2
f32.sub
f32.const 0x1.0b461p-34 (;=6.0771e-11;)
f32.add
f32.store offset=4
i32.const -1
return
end
block ;; label = @1
block ;; label = @2
local.get 3
i32.const 1128861568
i32.gt_u
br_if 0 (;@2;)
block ;; label = @3
block ;; label = @4
local.get 2
f32.const 0x1.45f308p-1 (;=0.63662;)
f32.mul
f32.const 0x1p-1 (;=0.5;)
f32.add
local.tee 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@4;)
local.get 0
i32.trunc_f32_s
local.set 5
br 1 (;@3;)
end
i32.const -2147483648
local.set 5
end
local.get 5
f32.convert_i32_s
local.tee 6
f32.const 0x1.6a8886p-17 (;=1.08043e-05;)
f32.mul
local.set 7
local.get 2
local.get 6
f32.const -0x1.921fp+0 (;=-1.57079;)
f32.mul
f32.add
local.set 0
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 5
i32.const 31
i32.gt_s
br_if 0 (;@5;)
local.get 3
i32.const 2147483392
i32.and
local.get 5
i32.const 2
i32.shl
i32.const 1052
i32.add
i32.load
i32.ne
br_if 1 (;@4;)
end
local.get 1
local.get 0
local.get 7
f32.sub
local.tee 2
f32.store
local.get 3
i32.const 23
i32.shr_u
local.tee 3
local.get 2
i32.reinterpret_f32
i32.const 23
i32.shr_u
i32.const 255
i32.and
i32.sub
i32.const 9
i32.lt_s
br_if 1 (;@3;)
local.get 1
local.get 0
local.get 6
f32.const 0x1.6a88p-17 (;=1.08043e-05;)
f32.mul
local.tee 2
f32.sub
local.tee 8
local.get 6
f32.const 0x1.0b461p-34 (;=6.0771e-11;)
f32.mul
local.get 0
local.get 8
f32.sub
local.get 2
f32.sub
f32.sub
local.tee 7
f32.sub
local.tee 2
f32.store
block ;; label = @5
local.get 3
local.get 2
i32.reinterpret_f32
i32.const 23
i32.shr_u
i32.const 255
i32.and
i32.sub
i32.const 26
i32.ge_s
br_if 0 (;@5;)
local.get 8
local.set 0
br 2 (;@3;)
end
local.get 6
f32.const 0x1.1a6264p-54 (;=6.12323e-17;)
f32.mul
local.get 8
local.get 8
local.get 6
f32.const 0x1.0b46p-34 (;=6.07709e-11;)
f32.mul
local.tee 2
f32.sub
local.tee 0
f32.sub
local.get 2
f32.sub
f32.sub
local.set 7
end
local.get 1
local.get 0
local.get 7
f32.sub
local.tee 2
f32.store
end
local.get 1
local.get 0
local.get 2
f32.sub
local.get 7
f32.sub
local.tee 0
f32.store offset=4
local.get 4
i32.const -1
i32.gt_s
br_if 1 (;@1;)
local.get 1
local.get 0
f32.neg
f32.store offset=4
local.get 1
local.get 2
f32.neg
f32.store
i32.const 0
local.get 5
i32.sub
return
end
local.get 1
local.get 0
local.get 0
f32.sub
local.tee 0
f32.store
local.get 1
local.get 0
f32.store offset=4
i32.const 0
local.set 5
end
local.get 5)
(func $basicmath___cosf (type 4) (param f32) (result f32)
(local i32 i32 i32 i32 f32 f32 f32 f32)
global.get $__stack_pointer
i32.const 16
i32.sub
local.tee 1
global.set $__stack_pointer
block ;; label = @1
block ;; label = @2
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 2
i32.const 1061752792
i32.gt_u
br_if 0 (;@2;)
local.get 2
i32.const 838860799
i32.gt_u
local.set 3
block ;; label = @3
block ;; label = @4
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@4;)
local.get 0
i32.trunc_f32_s
local.set 4
br 1 (;@3;)
end
i32.const -2147483648
local.set 4
end
block ;; label = @3
local.get 3
br_if 0 (;@3;)
local.get 4
br_if 0 (;@3;)
f32.const 0x1p+0 (;=1;)
local.set 0
br 2 (;@1;)
end
local.get 0
local.get 0
f32.mul
local.tee 5
local.get 5
local.get 5
local.get 5
local.get 5
local.get 5
f32.const -0x1.8fae9cp-37 (;=-1.13596e-11;)
f32.mul
f32.const 0x1.1ee9ecp-29 (;=2.08757e-09;)
f32.add
f32.mul
f32.const -0x1.27e4f8p-22 (;=-2.75573e-07;)
f32.add
f32.mul
f32.const 0x1.a01a02p-16 (;=2.48016e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-10 (;=-0.00138889;)
f32.add
f32.mul
f32.const 0x1.555556p-5 (;=0.0416667;)
f32.add
f32.mul
local.set 6
block ;; label = @3
local.get 2
i32.const 1050253721
i32.gt_u
br_if 0 (;@3;)
f32.const 0x1p+0 (;=1;)
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 5
local.get 6
f32.mul
local.get 0
f32.const -0x0p+0 (;=-0;)
f32.mul
f32.add
f32.sub
f32.sub
local.set 0
br 2 (;@1;)
end
f32.const 0x1p+0 (;=1;)
f32.const 0x1.2p-2 (;=0.28125;)
local.get 2
i32.const -16777216
i32.add
f32.reinterpret_i32
local.get 2
i32.const 1061683200
i32.gt_u
select
local.tee 7
f32.sub
local.get 5
local.get 6
f32.mul
local.get 0
f32.const -0x0p+0 (;=-0;)
f32.mul
f32.add
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 7
f32.sub
f32.sub
f32.add
local.set 0
br 1 (;@1;)
end
block ;; label = @2
local.get 2
i32.const 2139095040
i32.lt_u
br_if 0 (;@2;)
local.get 0
local.get 0
f32.sub
local.set 0
br 1 (;@1;)
end
local.get 0
local.get 1
i32.const 8
i32.add
call $basicmath___ieee754_rem_pio2f
local.set 2
local.get 1
f32.load offset=8
local.set 0
block ;; label = @2
block ;; label = @3
block ;; label = @4
block ;; label = @5
local.get 2
i32.const 3
i32.and
br_table 0 (;@5;) 1 (;@4;) 2 (;@3;) 3 (;@2;) 0 (;@5;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 2
i32.const 838860799
i32.gt_u
local.set 3
block ;; label = @5
block ;; label = @6
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@6;)
local.get 0
i32.trunc_f32_s
local.set 4
br 1 (;@5;)
end
i32.const -2147483648
local.set 4
end
local.get 1
f32.load offset=12
local.set 6
block ;; label = @5
local.get 3
br_if 0 (;@5;)
local.get 4
br_if 0 (;@5;)
f32.const 0x1p+0 (;=1;)
local.set 0
br 4 (;@1;)
end
local.get 0
local.get 0
f32.mul
local.tee 5
local.get 5
local.get 5
local.get 5
local.get 5
local.get 5
f32.const -0x1.8fae9cp-37 (;=-1.13596e-11;)
f32.mul
f32.const 0x1.1ee9ecp-29 (;=2.08757e-09;)
f32.add
f32.mul
f32.const -0x1.27e4f8p-22 (;=-2.75573e-07;)
f32.add
f32.mul
f32.const 0x1.a01a02p-16 (;=2.48016e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-10 (;=-0.00138889;)
f32.add
f32.mul
f32.const 0x1.555556p-5 (;=0.0416667;)
f32.add
f32.mul
local.set 7
block ;; label = @5
local.get 2
i32.const 1050253721
i32.gt_u
br_if 0 (;@5;)
f32.const 0x1p+0 (;=1;)
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
f32.sub
f32.sub
local.set 0
br 4 (;@1;)
end
f32.const 0x1p+0 (;=1;)
f32.const 0x1.2p-2 (;=0.28125;)
local.get 2
i32.const -16777216
i32.add
f32.reinterpret_i32
local.get 2
i32.const 1061683200
i32.gt_u
select
local.tee 8
f32.sub
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 8
f32.sub
f32.sub
f32.add
local.set 0
br 3 (;@1;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
i32.const 838860799
i32.gt_u
local.set 2
block ;; label = @4
block ;; label = @5
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@5;)
local.get 0
i32.trunc_f32_s
local.set 3
br 1 (;@4;)
end
i32.const -2147483648
local.set 3
end
block ;; label = @4
block ;; label = @5
local.get 2
br_if 0 (;@5;)
local.get 3
i32.eqz
br_if 1 (;@4;)
end
local.get 0
local.get 0
local.get 0
local.get 0
f32.mul
local.tee 5
f32.neg
f32.mul
local.tee 6
f32.const -0x1.555556p-3 (;=-0.166667;)
f32.mul
local.get 5
local.get 1
f32.load offset=12
local.tee 7
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 6
local.get 5
local.get 5
local.get 5
local.get 5
f32.const 0x1.5d93a6p-33 (;=1.58969e-10;)
f32.mul
f32.const -0x1.ae5e68p-26 (;=-2.50508e-08;)
f32.add
f32.mul
f32.const 0x1.71de36p-19 (;=2.75573e-06;)
f32.add
f32.mul
f32.const -0x1.a01a02p-13 (;=-0.000198413;)
f32.add
f32.mul
f32.const 0x1.111112p-7 (;=0.00833333;)
f32.add
f32.mul
f32.add
f32.mul
local.get 7
f32.sub
f32.add
f32.sub
local.set 0
end
local.get 0
f32.neg
local.set 0
br 2 (;@1;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
local.tee 2
i32.const 838860799
i32.gt_u
local.set 3
block ;; label = @3
block ;; label = @4
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@4;)
local.get 0
i32.trunc_f32_s
local.set 4
br 1 (;@3;)
end
i32.const -2147483648
local.set 4
end
local.get 1
f32.load offset=12
local.set 6
block ;; label = @3
block ;; label = @4
local.get 3
br_if 0 (;@4;)
f32.const 0x1p+0 (;=1;)
local.set 5
local.get 4
i32.eqz
br_if 1 (;@3;)
end
local.get 0
local.get 0
f32.mul
local.tee 5
local.get 5
local.get 5
local.get 5
local.get 5
local.get 5
f32.const -0x1.8fae9cp-37 (;=-1.13596e-11;)
f32.mul
f32.const 0x1.1ee9ecp-29 (;=2.08757e-09;)
f32.add
f32.mul
f32.const -0x1.27e4f8p-22 (;=-2.75573e-07;)
f32.add
f32.mul
f32.const 0x1.a01a02p-16 (;=2.48016e-05;)
f32.add
f32.mul
f32.const -0x1.6c16c2p-10 (;=-0.00138889;)
f32.add
f32.mul
f32.const 0x1.555556p-5 (;=0.0416667;)
f32.add
f32.mul
local.set 7
block ;; label = @4
local.get 2
i32.const 1050253721
i32.gt_u
br_if 0 (;@4;)
f32.const 0x1p+0 (;=1;)
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
f32.sub
f32.sub
f32.neg
local.set 0
br 3 (;@1;)
end
f32.const 0x1p+0 (;=1;)
f32.const 0x1.2p-2 (;=0.28125;)
local.get 2
i32.const -16777216
i32.add
f32.reinterpret_i32
local.get 2
i32.const 1061683200
i32.gt_u
select
local.tee 8
f32.sub
local.get 5
local.get 7
f32.mul
local.get 6
local.get 0
f32.mul
f32.sub
local.get 5
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 8
f32.sub
f32.sub
f32.add
local.set 5
end
local.get 5
f32.neg
local.set 0
br 1 (;@1;)
end
local.get 0
i32.reinterpret_f32
i32.const 2147483647
i32.and
i32.const 838860799
i32.gt_u
local.set 2
block ;; label = @2
block ;; label = @3
local.get 0
f32.abs
f32.const 0x1p+31 (;=2.14748e+09;)
f32.lt
i32.eqz
br_if 0 (;@3;)
local.get 0
i32.trunc_f32_s
local.set 3
br 1 (;@2;)
end
i32.const -2147483648
local.set 3
end
block ;; label = @2
local.get 2
br_if 0 (;@2;)
local.get 3
i32.eqz
br_if 1 (;@1;)
end
local.get 0
local.get 0
local.get 0
local.get 0
f32.mul
local.tee 5
f32.neg
f32.mul
local.tee 6
f32.const -0x1.555556p-3 (;=-0.166667;)
f32.mul
local.get 5
local.get 1
f32.load offset=12
local.tee 7
f32.const 0x1p-1 (;=0.5;)
f32.mul
local.get 6
local.get 5
local.get 5
local.get 5
local.get 5
f32.const 0x1.5d93a6p-33 (;=1.58969e-10;)
f32.mul
f32.const -0x1.ae5e68p-26 (;=-2.50508e-08;)
f32.add
f32.mul
f32.const 0x1.71de36p-19 (;=2.75573e-06;)
f32.add
f32.mul
f32.const -0x1.a01a02p-13 (;=-0.000198413;)
f32.add
f32.mul
f32.const 0x1.111112p-7 (;=0.00833333;)
f32.add
f32.mul
f32.add
f32.mul
local.get 7
f32.sub
f32.add
f32.sub
local.set 0
end
local.get 1
i32.const 16
i32.add
global.set $__stack_pointer
local.get 0)
(table (;0;) 1 1 funcref)
(memory (;0;) 1)
(global $__stack_pointer (mut i32) (i32.const 5376))
(global (;1;) i32 (i32.const 1276))
(global (;2;) i32 (i32.const 5376))
(export "memory" (memory 0))
(export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
(export "entrypoint" (func $cubic_main))
(export "main" (func $__original_main))
(export "__data_end" (global 1))
(export "__heap_base" (global 2))
(data $.rodata (i32.const 1024) "\00\00\80?\00\00\c0?\00\00\00\00\dc\cf\d15\00\00\00\00\00\c0\15?\00\00\00\00\00\00\00\00\00\0f\c9?\00\0fI@\00\cb\96@\00\0f\c9@\00S\fb@\00\cb\16A\00\ed/A\00\0fIA\001bA\00S{A\00:\8aA\00\cb\96A\00\5c\a3A\00\ed\afA\00~\bcA\00\0f\c9A\00\a0\d5A\001\e2A\00\c2\eeA\00S\fbA\00\f2\03B\00:\0aB\00\83\10B\00\cb\16B\00\14\1dB\00\5c#B\00\a5)B\00\ed/B\0066B\00~<B\00\c7BB\00\0fIB"))