summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/emcc_hello_world.asm.js2
-rw-r--r--test/emcc_hello_world.fromasm1218
-rw-r--r--test/emcc_hello_world.fromasm.imprecise1218
3 files changed, 71 insertions, 2367 deletions
diff --git a/test/emcc_hello_world.asm.js b/test/emcc_hello_world.asm.js
index 3a47a258b..cd188303e 100644
--- a/test/emcc_hello_world.asm.js
+++ b/test/emcc_hello_world.asm.js
@@ -7096,6 +7096,6 @@ var FUNCTION_TABLE_ii = [b0,___stdio_close];
var FUNCTION_TABLE_iiii = [b1,b1,___stdout_write,___stdio_seek,___stdio_write,b1,b1,b1];
var FUNCTION_TABLE_vi = [b2,b2,b2,b2,b2,_cleanup,b2,b2];
- return { _i64Subtract: _i64Subtract, _free: _free, _main: _main, _i64Add: _i64Add, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _bitshift64Lshr: _bitshift64Lshr, _fflush: _fflush, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_ii: dynCall_ii, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi };
+ return { _i64Subtract: _i64Subtract, _free: _free, _main: _main, _i64Add: _i64Add, _memset: _memset, _malloc: _malloc, _memcpy: _memcpy, _bitshift64Lshr: _bitshift64Lshr, _fflush: _fflush, ___errno_location: ___errno_location, _bitshift64Shl: _bitshift64Shl, runPostSets: runPostSets, stackAlloc: stackAlloc, stackSave: stackSave, stackRestore: stackRestore, establishStackSpace: establishStackSpace, setThrew: setThrew, setTempRet0: setTempRet0, getTempRet0: getTempRet0, dynCall_ii: dynCall_ii, dynCall_iiii: dynCall_iiii, dynCall_vi: dynCall_vi, ___udivmoddi4: ___udivmoddi4 };
})
;
diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm
index 5c41777c7..381e53407 100644
--- a/test/emcc_hello_world.fromasm
+++ b/test/emcc_hello_world.fromasm
@@ -50,6 +50,7 @@
(export "dynCall_ii" $dynCall_ii)
(export "dynCall_iiii" $dynCall_iiii)
(export "dynCall_vi" $dynCall_vi)
+ (export "___udivmoddi4" $___udivmoddi4)
(table $b0 $___stdio_close $b1 $b1 $___stdout_write $___stdio_seek $___stdio_write $b1 $b1 $b1 $b2 $b2 $b2 $b2 $b2 $_cleanup $b2 $b2)
(func $stackAlloc (param $size i32) (result i32)
(local $ret i32)
@@ -29146,1209 +29147,60 @@
)
)
(func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32)
- (local $$_0$1 i32)
- (local $$_0$0 i32)
- (local $$n_sroa_1_4_extract_trunc i32)
- (local $$n_sroa_0_0_extract_trunc i32)
- (local $$d_sroa_0_0_extract_trunc i32)
- (local $$d_sroa_1_4_extract_trunc i32)
- (local $$88 i32)
- (local $$sr_1_ph i32)
- (local $$r_sroa_1_1_ph i32)
- (local $$r_sroa_0_1_ph i32)
- (local $$q_sroa_1_1_ph i32)
- (local $$q_sroa_0_1_ph i32)
- (local $$r_sroa_0_1201 i32)
- (local $$q_sroa_1_1198 i32)
- (local $$q_sroa_0_1199 i32)
- (local $$q_sroa_0_0_insert_ext75$0 i32)
- (local $$n_sroa_1_4_extract_shift$0 i32)
- (local $$91 i32)
- (local $$78 i32)
- (local $$57 i32)
- (local $$150$1 i32)
- (local $$125 i32)
- (local $$119 i32)
- (local $$sr_1202 i32)
- (local $$r_sroa_1_4_extract_trunc i32)
- (local $$r_sroa_1_1_lcssa i32)
- (local $$r_sroa_1_1200 i32)
- (local $$r_sroa_0_1_lcssa i32)
- (local $$r_sroa_0_0_insert_insert42$1 i32)
- (local $$r_sroa_0_0_insert_insert42$0 i32)
- (local $$r_sroa_0_0_extract_trunc i32)
- (local $$q_sroa_1_1_lcssa i32)
- (local $$q_sroa_0_1_lcssa i32)
- (local $$q_sroa_0_0_insert_ext75$1 i32)
- (local $$d_sroa_0_0_insert_insert99$1 i32)
- (local $$d_sroa_0_0_insert_insert99$0 i32)
- (local $$carry_0_lcssa$1 i32)
- (local $$carry_0_lcssa$0 i32)
- (local $$carry_0203 i32)
- (local $$95 i32)
- (local $$92 i32)
- (local $$89 i32)
- (local $$58 i32)
- (local $$51 i32)
- (local $$4 i32)
- (local $$17 i32)
- (local $$152 i32)
- (local $$149 i32)
- (local $$147 i32)
- (local $$130 i32)
- (local $$126 i32)
- (local $$105 i32)
- (local $$q_sroa_0_0_insert_insert77$1 i32)
- (local $$d_sroa_1_4_extract_shift$0 i32)
- (local $$66 i32)
- (local $$37 i32)
- (local $$155 i32)
- (local $$151$0 i32)
- (local $$137$1 i32)
- (local $$137$0 i32)
- (local $$86 i32)
- (local $$49 i32)
- (local $$154$0 i32)
- (local $$117 i32)
- (set_local $$n_sroa_0_0_extract_trunc
- (get_local $$a$0)
- )
- (set_local $$n_sroa_1_4_extract_trunc
- (set_local $$n_sroa_1_4_extract_shift$0
- (get_local $$a$1)
- )
- )
- (set_local $$d_sroa_0_0_extract_trunc
- (get_local $$b$0)
- )
- (set_local $$d_sroa_1_4_extract_trunc
- (set_local $$d_sroa_1_4_extract_shift$0
- (get_local $$b$1)
- )
- )
- (if
- (i32.eq
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- (block
- (set_local $$4
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
+ (local $x64 i64)
+ (local $y64 i64)
+ (set_local $x64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $$a$0)
)
- (if
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (get_local $$4)
- (block
- (i32.store
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$4)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $$a$1)
)
+ (i64.const 32)
)
)
)
- (set_local $$17
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- )
- (block $do-once$0
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (get_local $$17)
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $$n_sroa_0_0_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.const 0)
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (set_local $$37
- (i32.sub
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.or
- (i32.and
- (get_local $$37)
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.ctz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.le_u
- (set_local $$51
- (i32.sub
- (set_local $$49
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (i32.const 30)
- )
- (block
- (set_local $$57
- (i32.add
- (get_local $$51)
- (i32.const 1)
- )
- )
- (set_local $$58
- (i32.sub
- (i32.const 31)
- (get_local $$51)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$57)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$58)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$57)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$57)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$58)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$17)
- )
- (block
- (if
- (i32.le_u
- (set_local $$119
- (i32.sub
- (set_local $$117
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (i32.const 31)
- )
- (block
- (set_local $$125
- (i32.add
- (get_local $$119)
- (i32.const 1)
- )
- )
- (set_local $$126
- (i32.sub
- (i32.const 31)
- (get_local $$119)
- )
- )
- (set_local $$130
- (i32.shr_s
- (i32.sub
- (get_local $$119)
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$125)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$126)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$126)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.ne
- (i32.and
- (set_local $$66
- (i32.sub
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (set_local $$89
- (i32.sub
- (i32.const 64)
- (set_local $$88
- (i32.sub
- (set_local $$86
- (i32.add
- (i32.clz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 33)
- )
- )
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- )
- )
- (set_local $$92
- (i32.shr_s
- (set_local $$91
- (i32.sub
- (i32.const 32)
- (get_local $$88)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $$105
- (i32.shr_s
- (set_local $$95
- (i32.sub
- (get_local $$88)
- (i32.const 32)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$88)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_s
- (i32.sub
- (get_local $$91)
- (i32.const 1)
- )
- (i32.const 31)
- )
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$95)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$88)
- )
- )
- (get_local $$105)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (get_local $$105)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$88)
- )
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$89)
- )
- (get_local $$92)
- )
- )
- (set_local $$q_sroa_1_1_ph
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$89)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$95)
- )
- )
- (get_local $$92)
- )
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_s
- (i32.sub
- (get_local $$88)
- (i32.const 33)
- )
- (i32.const 31)
- )
- )
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$66)
- (get_local $$n_sroa_0_0_extract_trunc)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.const 0)
- )
- )
- )
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- (block
- (set_local $$_0$1
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (set_local $$78
- (i32.ctz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (set_local $$_0$1
- (i32.or
- (i32.const 0)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.sub
- (i32.const 32)
- (get_local $$78)
- )
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $$sr_1_ph)
- (i32.const 0)
- )
- (block
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (i32.const 0)
- )
- )
- (block
- (set_local $$d_sroa_0_0_insert_insert99$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$b$0)
- (i32.const -1)
- )
- )
- )
- (set_local $$d_sroa_0_0_insert_insert99$1
- (i32.or
- (get_local $$d_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$b$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$137$0
- (call $_i64Add
- (get_local $$d_sroa_0_0_insert_insert99$0)
- (get_local $$d_sroa_0_0_insert_insert99$1)
- (i32.const -1)
- (i32.const -1)
- )
- )
- (set_local $$137$1
- (i32.load
- (i32.const 168)
- )
- )
- (set_local $$q_sroa_1_1198
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$sr_1202
- (get_local $$sr_1_ph)
- )
- (set_local $$carry_0203
- (i32.const 0)
+ (set_local $y64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $$b$0)
)
- (loop $while-out$2 $while-in$3
- (set_local $$147
- (i32.or
- (i32.shr_u
- (get_local $$q_sroa_0_1199)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_1_1198)
- (i32.const 1)
- )
- )
- )
- (set_local $$149
- (i32.or
- (get_local $$carry_0203)
- (i32.shl
- (get_local $$q_sroa_0_1199)
- (i32.const 1)
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$0
- (i32.or
- (i32.const 0)
- (i32.or
- (i32.shl
- (get_local $$r_sroa_0_1201)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_1_1198)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$1
- (i32.or
- (i32.shr_u
- (get_local $$r_sroa_0_1201)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$r_sroa_1_1200)
- (i32.const 1)
- )
- )
- )
- (call $_i64Subtract
- (get_local $$137$0)
- (get_local $$137$1)
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- )
- (set_local $$152
- (i32.and
- (set_local $$151$0
- (i32.or
- (i32.shr_s
- (set_local $$150$1
- (i32.load
- (i32.const 168)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- )
- (i32.const 1)
- )
- )
- (set_local $$r_sroa_0_0_extract_trunc
- (set_local $$154$0
- (call $_i64Subtract
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- (i32.and
- (get_local $$151$0)
- (get_local $$d_sroa_0_0_insert_insert99$0)
- )
- (i32.and
- (i32.or
- (i32.shr_s
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_0_0_insert_insert99$1)
- )
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $$b$1)
)
- (set_local $$r_sroa_1_4_extract_trunc
- (i32.load
- (i32.const 168)
- )
- )
- (if
- (i32.eq
- (set_local $$155
- (i32.sub
- (get_local $$sr_1202)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- (br $while-out$2)
- (block
- (set_local $$q_sroa_1_1198
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_4_extract_trunc)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$sr_1202
- (get_local $$155)
- )
- (set_local $$carry_0203
- (get_local $$152)
- )
- )
- )
- (br $while-in$3)
- )
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_4_extract_trunc)
+ (i64.const 32)
)
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (get_local $$152)
- )
- )
- )
- (set_local $$q_sroa_0_0_insert_ext75$0
- (get_local $$q_sroa_0_1_lcssa)
- )
- (set_local $$q_sroa_0_0_insert_ext75$1
- (i32.const 0)
- )
- (set_local $$q_sroa_0_0_insert_insert77$1
- (i32.or
- (get_local $$q_sroa_1_1_lcssa)
- (get_local $$q_sroa_0_0_insert_ext75$1)
)
)
(if
- (i32.ne
+ (get_local $$rem)
+ (i64.store
(get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (get_local $$r_sroa_0_1_lcssa)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (get_local $$r_sroa_1_1_lcssa)
+ (i64.rem_u
+ (get_local $x64)
+ (get_local $y64)
)
)
)
- (set_local $$_0$1
- (i32.or
- (i32.or
- (i32.or
- (i32.shr_u
- (i32.or
- (i32.const 0)
- (get_local $$q_sroa_0_0_insert_ext75$0)
- )
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_0_0_insert_insert77$1)
- (i32.const 1)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$1)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 31)
- )
- )
- (i32.const 0)
- )
- )
- (get_local $$carry_0_lcssa$1)
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 1)
- )
- (i32.shr_u
- (i32.const 0)
- (i32.const 31)
+ (i32.store
+ (i32.const 168)
+ (i32.wrap/i64
+ (i64.shr_u
+ (set_local $x64
+ (i64.div_u
+ (get_local $x64)
+ (get_local $y64)
)
)
- (i32.const -2)
+ (i64.const 32)
)
- (get_local $$carry_0_lcssa$0)
)
)
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
+ (i32.wrap/i64
+ (get_local $x64)
)
)
(func $dynCall_ii (param $index i32) (param $a1 i32) (result i32)
diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise
index 52c1444b6..ec2f98964 100644
--- a/test/emcc_hello_world.fromasm.imprecise
+++ b/test/emcc_hello_world.fromasm.imprecise
@@ -48,6 +48,7 @@
(export "dynCall_ii" $dynCall_ii)
(export "dynCall_iiii" $dynCall_iiii)
(export "dynCall_vi" $dynCall_vi)
+ (export "___udivmoddi4" $___udivmoddi4)
(table $b0 $___stdio_close $b1 $b1 $___stdout_write $___stdio_seek $___stdio_write $b1 $b1 $b1 $b2 $b2 $b2 $b2 $b2 $_cleanup $b2 $b2)
(func $stackAlloc (param $size i32) (result i32)
(local $ret i32)
@@ -29144,1209 +29145,60 @@
)
)
(func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32)
- (local $$_0$1 i32)
- (local $$_0$0 i32)
- (local $$n_sroa_1_4_extract_trunc i32)
- (local $$n_sroa_0_0_extract_trunc i32)
- (local $$d_sroa_0_0_extract_trunc i32)
- (local $$d_sroa_1_4_extract_trunc i32)
- (local $$88 i32)
- (local $$sr_1_ph i32)
- (local $$r_sroa_1_1_ph i32)
- (local $$r_sroa_0_1_ph i32)
- (local $$q_sroa_1_1_ph i32)
- (local $$q_sroa_0_1_ph i32)
- (local $$r_sroa_0_1201 i32)
- (local $$q_sroa_1_1198 i32)
- (local $$q_sroa_0_1199 i32)
- (local $$q_sroa_0_0_insert_ext75$0 i32)
- (local $$n_sroa_1_4_extract_shift$0 i32)
- (local $$91 i32)
- (local $$78 i32)
- (local $$57 i32)
- (local $$150$1 i32)
- (local $$125 i32)
- (local $$119 i32)
- (local $$sr_1202 i32)
- (local $$r_sroa_1_4_extract_trunc i32)
- (local $$r_sroa_1_1_lcssa i32)
- (local $$r_sroa_1_1200 i32)
- (local $$r_sroa_0_1_lcssa i32)
- (local $$r_sroa_0_0_insert_insert42$1 i32)
- (local $$r_sroa_0_0_insert_insert42$0 i32)
- (local $$r_sroa_0_0_extract_trunc i32)
- (local $$q_sroa_1_1_lcssa i32)
- (local $$q_sroa_0_1_lcssa i32)
- (local $$q_sroa_0_0_insert_ext75$1 i32)
- (local $$d_sroa_0_0_insert_insert99$1 i32)
- (local $$d_sroa_0_0_insert_insert99$0 i32)
- (local $$carry_0_lcssa$1 i32)
- (local $$carry_0_lcssa$0 i32)
- (local $$carry_0203 i32)
- (local $$95 i32)
- (local $$92 i32)
- (local $$89 i32)
- (local $$58 i32)
- (local $$51 i32)
- (local $$4 i32)
- (local $$17 i32)
- (local $$152 i32)
- (local $$149 i32)
- (local $$147 i32)
- (local $$130 i32)
- (local $$126 i32)
- (local $$105 i32)
- (local $$q_sroa_0_0_insert_insert77$1 i32)
- (local $$d_sroa_1_4_extract_shift$0 i32)
- (local $$66 i32)
- (local $$37 i32)
- (local $$155 i32)
- (local $$151$0 i32)
- (local $$137$1 i32)
- (local $$137$0 i32)
- (local $$86 i32)
- (local $$49 i32)
- (local $$154$0 i32)
- (local $$117 i32)
- (set_local $$n_sroa_0_0_extract_trunc
- (get_local $$a$0)
- )
- (set_local $$n_sroa_1_4_extract_trunc
- (set_local $$n_sroa_1_4_extract_shift$0
- (get_local $$a$1)
- )
- )
- (set_local $$d_sroa_0_0_extract_trunc
- (get_local $$b$0)
- )
- (set_local $$d_sroa_1_4_extract_trunc
- (set_local $$d_sroa_1_4_extract_shift$0
- (get_local $$b$1)
- )
- )
- (if
- (i32.eq
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- (block
- (set_local $$4
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
+ (local $x64 i64)
+ (local $y64 i64)
+ (set_local $x64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $$a$0)
)
- (if
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (get_local $$4)
- (block
- (i32.store
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$4)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $$a$1)
)
+ (i64.const 32)
)
)
)
- (set_local $$17
- (i32.eq
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 0)
- )
- )
- (block $do-once$0
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (get_local $$17)
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $$n_sroa_0_0_extract_trunc)
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.const 0)
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.rem_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.div_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.eq
- (i32.and
- (set_local $$37
- (i32.sub
- (get_local $$d_sroa_1_4_extract_trunc)
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.or
- (i32.and
- (get_local $$37)
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.ctz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.le_u
- (set_local $$51
- (i32.sub
- (set_local $$49
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (i32.const 30)
- )
- (block
- (set_local $$57
- (i32.add
- (get_local $$51)
- (i32.const 1)
- )
- )
- (set_local $$58
- (i32.sub
- (i32.const 31)
- (get_local $$51)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$57)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$58)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$57)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$57)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$58)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (if
- (i32.eqz
- (get_local $$17)
- )
- (block
- (if
- (i32.le_u
- (set_local $$119
- (i32.sub
- (set_local $$117
- (i32.clz
- (get_local $$d_sroa_1_4_extract_trunc)
- )
- )
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- (i32.const 31)
- )
- (block
- (set_local $$125
- (i32.add
- (get_local $$119)
- (i32.const 1)
- )
- )
- (set_local $$126
- (i32.sub
- (i32.const 31)
- (get_local $$119)
- )
- )
- (set_local $$130
- (i32.shr_s
- (i32.sub
- (get_local $$119)
- (i32.const 31)
- )
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$125)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$126)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$125)
- )
- (get_local $$130)
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.const 0)
- )
- (set_local $$q_sroa_1_1_ph
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$126)
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.eq
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$1
- (i32.const 0)
- )
- (set_local $$_0$0
- (i32.const 0)
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- (if
- (i32.ne
- (i32.and
- (set_local $$66
- (i32.sub
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 0)
- )
- (block
- (set_local $$89
- (i32.sub
- (i32.const 64)
- (set_local $$88
- (i32.sub
- (set_local $$86
- (i32.add
- (i32.clz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- (i32.const 33)
- )
- )
- (i32.clz
- (get_local $$n_sroa_1_4_extract_trunc)
- )
- )
- )
- )
- )
- (set_local $$92
- (i32.shr_s
- (set_local $$91
- (i32.sub
- (i32.const 32)
- (get_local $$88)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $$105
- (i32.shr_s
- (set_local $$95
- (i32.sub
- (get_local $$88)
- (i32.const 32)
- )
- )
- (i32.const 31)
- )
- )
- (set_local $$sr_1_ph
- (get_local $$88)
- )
- (set_local $$r_sroa_0_1_ph
- (i32.or
- (i32.and
- (i32.shr_s
- (i32.sub
- (get_local $$91)
- (i32.const 1)
- )
- (i32.const 31)
- )
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$95)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$88)
- )
- )
- (get_local $$105)
- )
- )
- )
- (set_local $$r_sroa_1_1_ph
- (i32.and
- (get_local $$105)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$88)
- )
- )
- )
- (set_local $$q_sroa_0_1_ph
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$89)
- )
- (get_local $$92)
- )
- )
- (set_local $$q_sroa_1_1_ph
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$89)
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$95)
- )
- )
- (get_local $$92)
- )
- (i32.and
- (i32.shl
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$91)
- )
- (i32.shr_s
- (i32.sub
- (get_local $$88)
- (i32.const 33)
- )
- (i32.const 31)
- )
- )
- )
- )
- (br $do-once$0)
- )
- )
- (if
- (i32.ne
- (get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.and
- (get_local $$66)
- (get_local $$n_sroa_0_0_extract_trunc)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (i32.const 0)
- )
- )
- )
- (if
- (i32.eq
- (get_local $$d_sroa_0_0_extract_trunc)
- (i32.const 1)
- )
- (block
- (set_local $$_0$1
- (i32.or
- (get_local $$n_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$a$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$a$0)
- (i32.const -1)
- )
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- (block
- (set_local $$78
- (i32.ctz
- (get_local $$d_sroa_0_0_extract_trunc)
- )
- )
- (set_local $$_0$1
- (i32.or
- (i32.const 0)
- (i32.shr_u
- (get_local $$n_sroa_1_4_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.shl
- (get_local $$n_sroa_1_4_extract_trunc)
- (i32.sub
- (i32.const 32)
- (get_local $$78)
- )
- )
- (i32.shr_u
- (get_local $$n_sroa_0_0_extract_trunc)
- (get_local $$78)
- )
- )
- )
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
- )
- )
- )
- )
- )
- )
- (if
- (i32.eq
- (get_local $$sr_1_ph)
- (i32.const 0)
- )
- (block
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (i32.const 0)
- )
- )
- (block
- (set_local $$d_sroa_0_0_insert_insert99$0
- (i32.or
- (i32.const 0)
- (i32.and
- (get_local $$b$0)
- (i32.const -1)
- )
- )
- )
- (set_local $$d_sroa_0_0_insert_insert99$1
- (i32.or
- (get_local $$d_sroa_1_4_extract_shift$0)
- (i32.and
- (get_local $$b$1)
- (i32.const 0)
- )
- )
- )
- (set_local $$137$0
- (call $_i64Add
- (get_local $$d_sroa_0_0_insert_insert99$0)
- (get_local $$d_sroa_0_0_insert_insert99$1)
- (i32.const -1)
- (i32.const -1)
- )
- )
- (set_local $$137$1
- (i32.load
- (i32.const 168)
- )
- )
- (set_local $$q_sroa_1_1198
- (get_local $$q_sroa_1_1_ph)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$q_sroa_0_1_ph)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_1_ph)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_1_ph)
- )
- (set_local $$sr_1202
- (get_local $$sr_1_ph)
- )
- (set_local $$carry_0203
- (i32.const 0)
+ (set_local $y64
+ (i64.or
+ (i64.extend_u/i32
+ (get_local $$b$0)
)
- (loop $while-out$2 $while-in$3
- (set_local $$147
- (i32.or
- (i32.shr_u
- (get_local $$q_sroa_0_1199)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_1_1198)
- (i32.const 1)
- )
- )
- )
- (set_local $$149
- (i32.or
- (get_local $$carry_0203)
- (i32.shl
- (get_local $$q_sroa_0_1199)
- (i32.const 1)
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$0
- (i32.or
- (i32.const 0)
- (i32.or
- (i32.shl
- (get_local $$r_sroa_0_1201)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_1_1198)
- (i32.const 31)
- )
- )
- )
- )
- (set_local $$r_sroa_0_0_insert_insert42$1
- (i32.or
- (i32.shr_u
- (get_local $$r_sroa_0_1201)
- (i32.const 31)
- )
- (i32.shl
- (get_local $$r_sroa_1_1200)
- (i32.const 1)
- )
- )
- )
- (call $_i64Subtract
- (get_local $$137$0)
- (get_local $$137$1)
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- )
- (set_local $$152
- (i32.and
- (set_local $$151$0
- (i32.or
- (i32.shr_s
- (set_local $$150$1
- (i32.load
- (i32.const 168)
- )
- )
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- )
- (i32.const 1)
- )
- )
- (set_local $$r_sroa_0_0_extract_trunc
- (set_local $$154$0
- (call $_i64Subtract
- (get_local $$r_sroa_0_0_insert_insert42$0)
- (get_local $$r_sroa_0_0_insert_insert42$1)
- (i32.and
- (get_local $$151$0)
- (get_local $$d_sroa_0_0_insert_insert99$0)
- )
- (i32.and
- (i32.or
- (i32.shr_s
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 31)
- )
- (i32.shl
- (if
- (i32.lt_s
- (get_local $$150$1)
- (i32.const 0)
- )
- (i32.const -1)
- (i32.const 0)
- )
- (i32.const 1)
- )
- )
- (get_local $$d_sroa_0_0_insert_insert99$1)
- )
- )
- )
+ (i64.shl
+ (i64.extend_u/i32
+ (get_local $$b$1)
)
- (set_local $$r_sroa_1_4_extract_trunc
- (i32.load
- (i32.const 168)
- )
- )
- (if
- (i32.eq
- (set_local $$155
- (i32.sub
- (get_local $$sr_1202)
- (i32.const 1)
- )
- )
- (i32.const 0)
- )
- (br $while-out$2)
- (block
- (set_local $$q_sroa_1_1198
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1199
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1200
- (get_local $$r_sroa_1_4_extract_trunc)
- )
- (set_local $$r_sroa_0_1201
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$sr_1202
- (get_local $$155)
- )
- (set_local $$carry_0203
- (get_local $$152)
- )
- )
- )
- (br $while-in$3)
- )
- (set_local $$q_sroa_1_1_lcssa
- (get_local $$147)
- )
- (set_local $$q_sroa_0_1_lcssa
- (get_local $$149)
- )
- (set_local $$r_sroa_1_1_lcssa
- (get_local $$r_sroa_1_4_extract_trunc)
+ (i64.const 32)
)
- (set_local $$r_sroa_0_1_lcssa
- (get_local $$r_sroa_0_0_extract_trunc)
- )
- (set_local $$carry_0_lcssa$1
- (i32.const 0)
- )
- (set_local $$carry_0_lcssa$0
- (get_local $$152)
- )
- )
- )
- (set_local $$q_sroa_0_0_insert_ext75$0
- (get_local $$q_sroa_0_1_lcssa)
- )
- (set_local $$q_sroa_0_0_insert_ext75$1
- (i32.const 0)
- )
- (set_local $$q_sroa_0_0_insert_insert77$1
- (i32.or
- (get_local $$q_sroa_1_1_lcssa)
- (get_local $$q_sroa_0_0_insert_ext75$1)
)
)
(if
- (i32.ne
+ (get_local $$rem)
+ (i64.store
(get_local $$rem)
- (i32.const 0)
- )
- (block
- (i32.store
- (get_local $$rem)
- (i32.or
- (i32.const 0)
- (get_local $$r_sroa_0_1_lcssa)
- )
- )
- (i32.store offset=4
- (get_local $$rem)
- (get_local $$r_sroa_1_1_lcssa)
+ (i64.rem_u
+ (get_local $x64)
+ (get_local $y64)
)
)
)
- (set_local $$_0$1
- (i32.or
- (i32.or
- (i32.or
- (i32.shr_u
- (i32.or
- (i32.const 0)
- (get_local $$q_sroa_0_0_insert_ext75$0)
- )
- (i32.const 31)
- )
- (i32.shl
- (get_local $$q_sroa_0_0_insert_insert77$1)
- (i32.const 1)
- )
- )
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$1)
- (i32.const 1)
- )
- (i32.shr_u
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 31)
- )
- )
- (i32.const 0)
- )
- )
- (get_local $$carry_0_lcssa$1)
- )
- )
- (set_local $$_0$0
- (i32.or
- (i32.and
- (i32.or
- (i32.shl
- (get_local $$q_sroa_0_0_insert_ext75$0)
- (i32.const 1)
- )
- (i32.shr_u
- (i32.const 0)
- (i32.const 31)
+ (i32.store
+ (i32.const 168)
+ (i32.wrap/i64
+ (i64.shr_u
+ (set_local $x64
+ (i64.div_u
+ (get_local $x64)
+ (get_local $y64)
)
)
- (i32.const -2)
+ (i64.const 32)
)
- (get_local $$carry_0_lcssa$0)
)
)
- (return
- (block
- (i32.store
- (i32.const 168)
- (get_local $$_0$1)
- )
- (get_local $$_0$0)
- )
+ (i32.wrap/i64
+ (get_local $x64)
)
)
(func $dynCall_ii (param $index i32) (param $a1 i32) (result i32)