(module (type $iiv (func (param i32 i32))) (type $iiiiv (func (param i32 i32 i32 i32))) (type $v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (memory $0 1) (data (i32.const 8) "\0d\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00") (table $0 1 anyfunc) (elem (i32.const 0) $null) (global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127)) (global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128)) (global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255)) (global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768)) (global $~lib/builtins/i16.MAX_VALUE i32 (i32.const 32767)) (global $~lib/builtins/u16.MAX_VALUE i32 (i32.const 65535)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $retain-i32/si (mut i32) (i32.const 0)) (global $retain-i32/ui (mut i32) (i32.const 0)) (global $HEAP_BASE i32 (i32.const 40)) (export "memory" (memory $0)) (export "table" (table $0)) (start $start) (func $retain-i32/test (; 1 ;) (type $iiv) (param $0 i32) (param $1 i32) get_local $0 get_local $1 i32.add i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.add i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 4 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.sub i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.sub i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 5 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.mul i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.mul i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 6 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.and i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.and i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 7 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.or i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.or i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 8 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.xor i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.xor i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 9 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.shl i32.const 24 i32.shl i32.const 24 i32.shr_s get_local $0 get_local $1 i32.shl i32.const 24 i32.shl i32.const 24 i32.shr_s i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 10 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.add i32.const 255 i32.and get_local $0 get_local $1 i32.add i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 13 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.sub i32.const 255 i32.and get_local $0 get_local $1 i32.sub i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 14 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.mul i32.const 255 i32.and get_local $0 get_local $1 i32.mul i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 15 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.and i32.const 255 i32.and get_local $0 get_local $1 i32.and i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 16 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.or i32.const 255 i32.and get_local $0 get_local $1 i32.or i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 17 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.xor i32.const 255 i32.and get_local $0 get_local $1 i32.xor i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 18 i32.const 2 call $~lib/env/abort unreachable end get_local $0 get_local $1 i32.shl i32.const 255 i32.and get_local $0 get_local $1 i32.shl i32.const 255 i32.and i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 19 i32.const 2 call $~lib/env/abort unreachable end ) (func $start (; 2 ;) (type $v) (local $0 i32) i32.const 0 get_global $~lib/builtins/i8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MAX_VALUE i32.const 0 call $retain-i32/test i32.const 1 get_global $~lib/builtins/i8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MAX_VALUE i32.const 1 call $retain-i32/test i32.const -1 get_global $~lib/builtins/i8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MAX_VALUE i32.const -1 call $retain-i32/test i32.const 0 get_global $~lib/builtins/i8.MIN_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MIN_VALUE i32.const 0 call $retain-i32/test i32.const 1 get_global $~lib/builtins/i8.MIN_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MIN_VALUE i32.const 1 call $retain-i32/test i32.const -1 get_global $~lib/builtins/i8.MIN_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MIN_VALUE i32.const -1 call $retain-i32/test get_global $~lib/builtins/i8.MAX_VALUE get_global $~lib/builtins/i8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MIN_VALUE get_global $~lib/builtins/i8.MIN_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MAX_VALUE get_global $~lib/builtins/i8.MIN_VALUE call $retain-i32/test get_global $~lib/builtins/i8.MIN_VALUE get_global $~lib/builtins/i8.MAX_VALUE call $retain-i32/test i32.const 0 get_global $~lib/builtins/u8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/u8.MAX_VALUE i32.const 0 call $retain-i32/test i32.const 1 get_global $~lib/builtins/u8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/u8.MAX_VALUE i32.const 1 call $retain-i32/test i32.const -1 get_global $~lib/builtins/u8.MAX_VALUE call $retain-i32/test get_global $~lib/builtins/u8.MAX_VALUE i32.const -1 call $retain-i32/test get_global $~lib/builtins/u8.MAX_VALUE get_global $~lib/builtins/u8.MAX_VALUE call $retain-i32/test block $break|0 get_global $~lib/builtins/i8.MIN_VALUE set_local $0 loop $repeat|0 get_local $0 get_global $~lib/builtins/u8.MAX_VALUE i32.le_s i32.eqz br_if $break|0 block i32.const 0 get_local $0 call $retain-i32/test i32.const 1 get_local $0 call $retain-i32/test i32.const -1 get_local $0 call $retain-i32/test get_global $~lib/builtins/i8.MIN_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/i8.MAX_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/u8.MAX_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/i16.MIN_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/i16.MAX_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/u16.MAX_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/i32.MAX_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/i32.MIN_VALUE get_local $0 call $retain-i32/test get_global $~lib/builtins/u32.MAX_VALUE get_local $0 call $retain-i32/test end get_local $0 i32.const 1 i32.add set_local $0 br $repeat|0 unreachable end unreachable end i32.const 127 i32.const 127 i32.add i32.const 1 i32.add i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 78 i32.const 0 call $~lib/env/abort unreachable end i32.const 127 i32.const 1 i32.sub i32.const 127 i32.sub i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 81 i32.const 0 call $~lib/env/abort unreachable end i32.const 127 i32.const 2 i32.mul i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -2 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 84 i32.const 0 call $~lib/env/abort unreachable end i32.const 0 i32.const -128 i32.sub i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -128 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 87 i32.const 0 call $~lib/env/abort unreachable end i32.const -128 i32.const -1 i32.mul i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -128 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 90 i32.const 0 call $~lib/env/abort unreachable end i32.const 127 i32.const -1 i32.div_s i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -127 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 93 i32.const 0 call $~lib/env/abort unreachable end i32.const -128 i32.const -1 i32.div_s i32.const 24 i32.shl i32.const 24 i32.shr_s set_global $retain-i32/si get_global $retain-i32/si i32.const -128 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 96 i32.const 0 call $~lib/env/abort unreachable end i32.const 127 i32.const 2 i32.rem_s set_global $retain-i32/si get_global $retain-i32/si i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 99 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const 127 i32.rem_s set_global $retain-i32/si get_global $retain-i32/si i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 102 i32.const 0 call $~lib/env/abort unreachable end i32.const -128 i32.const 2 i32.rem_s set_global $retain-i32/si get_global $retain-i32/si i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 105 i32.const 0 call $~lib/env/abort unreachable end i32.const 1 i32.const -128 i32.rem_s set_global $retain-i32/si get_global $retain-i32/si i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 108 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 255 i32.add i32.const 1 i32.add i32.const 255 i32.and set_global $retain-i32/ui get_global $retain-i32/ui i32.const 255 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 113 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 1 i32.sub i32.const 255 i32.sub i32.const 255 i32.and set_global $retain-i32/ui get_global $retain-i32/ui i32.const 255 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 116 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 2 i32.mul i32.const 255 i32.and set_global $retain-i32/ui get_global $retain-i32/ui i32.const 254 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 119 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 255 i32.mul i32.const 255 i32.and set_global $retain-i32/ui get_global $retain-i32/ui i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 122 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 255 i32.div_u set_global $retain-i32/ui get_global $retain-i32/ui i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 125 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 2 i32.rem_u set_global $retain-i32/ui get_global $retain-i32/ui i32.const 1 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 128 i32.const 0 call $~lib/env/abort unreachable end i32.const 255 i32.const 255 i32.rem_u set_global $retain-i32/ui get_global $retain-i32/ui i32.const 0 i32.eq i32.eqz if i32.const 0 i32.const 8 i32.const 131 i32.const 0 call $~lib/env/abort unreachable end ) (func $null (; 3 ;) (type $v) ) )