diff options
-rw-r--r-- | src/tools/translate-to-fuzz.h | 14 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz.txt | 1977 |
2 files changed, 970 insertions, 1021 deletions
diff --git a/src/tools/translate-to-fuzz.h b/src/tools/translate-to-fuzz.h index 307604af6..74a457013 100644 --- a/src/tools/translate-to-fuzz.h +++ b/src/tools/translate-to-fuzz.h @@ -259,16 +259,16 @@ private: labelIndex = 0; assert(breakableStack.empty()); assert(hangStack.empty()); + // with small chance, make the body unreachable + auto bodyType = func->result; + if (oneIn(10)) { + bodyType = unreachable; + } // with reasonable chance make the body a block if (oneIn(2)) { - func->body = makeBlock(func->result); + func->body = makeBlock(bodyType); } else { - // with very small chance, make the body unreachable - if (oneIn(20)) { - func->body = make(unreachable); - } else { - func->body = make(func->result); - } + func->body = make(bodyType); } if (HANG_LIMIT > 0) { func->body = builder.makeSequence( diff --git a/test/passes/translate-to-fuzz.txt b/test/passes/translate-to-fuzz.txt index b426766b5..b966a4164 100644 --- a/test/passes/translate-to-fuzz.txt +++ b/test/passes/translate-to-fuzz.txt @@ -2,11 +2,7 @@ (global $hangLimit (mut i32) (i32.const 100)) (memory $0 1 1) (export "func_0" (func $func_0)) - (export "func_2" (func $func_2)) - (export "func_4" (func $func_4)) - (export "func_5" (func $func_5)) - (export "func_7" (func $func_7)) - (export "func_8" (func $func_8)) + (export "func_6" (func $func_6)) (export "hangLimitInitializer" (func $hangLimitInitializer)) (func $func_0 (result i32) (local $0 f32) @@ -18,7 +14,7 @@ (get_global $hangLimit) ) (return - (i32.const -5) + (i32.const -11) ) ) (set_global $hangLimit @@ -28,113 +24,113 @@ ) ) ) - (block $label$0 (result i32) - (if - (loop $label$1 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -37) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) + (loop $label$0 + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (select - (loop $label$10 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 32767) - ) + (return + (i32.const 26963) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (i64.trunc_u/f64 + (drop + (loop $label$3 + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) + (return + (i32.const 32767) ) ) - (block $label$11 (result i32) - (i32.const 24342) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) ) ) - (i32.load8_s offset=2 - (i32.and - (br_if $label$0 - (i32.trunc_s/f64 - (loop $label$14 (result f64) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 0) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$15 (result f64) - (br $label$1) - ) + (return + (i32.const -73) + ) + ) + ) + ) + ) + ) + (func $func_1 (result f64) + (local $0 i32) + (local $1 f64) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (f64.const 9223372036854775808) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$0 (result f64) + (drop + (if (result i64) + (select + (get_local $0) + (i32.const 84414006) + (select + (i32.const 32767) + (i32.const -1) + (loop $label$1 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (get_local $1) ) ) - (i32.eqz - (i32.trunc_u/f64 - (loop $label$12 (result f64) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -128) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$13 (result f64) - (return - (i32.const -10) - ) - ) - ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) ) - (i32.const 31) + (block $label$2 (result i32) + (return + (get_local $1) + ) + ) ) ) - (br_if $label$0 - (loop $label$2 (result i32) + ) + (if (result i64) + (i32.eqz + (loop $label$9 (result i32) (block (if (i32.eqz (get_global $hangLimit) ) (return - (i32.const 1) + (f64.const 19) ) ) (set_global $hangLimit @@ -144,465 +140,438 @@ ) ) ) - (block $label$3 (result i32) - (i32.popcnt - (select - (if (result i32) - (i32.eqz - (if (result i32) - (i32.eqz - (i32.const -1) + (block $label$10 (result i32) + (i32.load8_s offset=3 + (i32.and + (tee_local $0 + (tee_local $0 + (select + (i32.load16_u offset=4 align=1 + (i32.and + (select + (get_local $0) + (get_local $0) + (select + (i64.lt_s + (loop $label$12 (result i64) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (get_local $1) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (i64.const 32767) + ) + (i64.const 251) + ) + (i32.trunc_u/f64 + (get_local $1) + ) + (br_if $label$10 + (i32.load16_u offset=3 + (i32.and + (i32.const 20) + (i32.const 31) + ) + ) + (get_local $0) + ) + ) + ) + (i32.const 31) + ) ) - (i32.const 0) - (i32.const 0) - ) - ) - (block $label$5 (result i32) - (loop $label$6 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) + (loop $label$13 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (get_local $1) + ) ) - (return - (i32.const -41) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) ) ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) + (block $label$14 (result i32) + (return + (get_local $1) ) ) ) - (i64.lt_s - (i64.const 1100) - (if (result i64) - (i32.eqz - (i32.const -88) - ) - (get_local $1) - (get_local $1) + (if (result i32) + (i32.eqz + (get_local $0) ) - ) - ) - ) - (block $label$7 (result i32) - (br $label$1) - ) - ) - (select - (br_if $label$3 - (i32.const 65535) - (loop $label$8 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 10) - ) + (block $label$11 (result i32) + (get_local $0) ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) + (i32.popcnt + (get_local $0) ) ) - (block $label$9 (result i32) - (i32.const 127) - ) ) ) - (i32.const 67372036) - (i32.const -72) - ) - (br_if $label$3 - (block $label$4 (result i32) - (br $label$2) - ) - (i32.const -2147483648) ) + (i32.const 31) ) ) ) ) - (i32.eqz - (i32.const -1) - ) - ) - ) - ) - (block $label$16 - (br_if $label$16 - (i32.eqz - (block $label$17 (result i32) - (br $label$16) - ) ) - ) - (f32.store offset=3 - (i32.const 5661) - (call $deNan32 - (select - (if (result f32) - (i32.eqz - (i32.const 23) - ) - (block $label$23 (result f32) - (if (result f32) - (i32.eqz - (i32.const 3330) + (block $label$15 (result i64) + (block $label$16 (result i64) + (select + (br_if $label$16 + (i64.const 1) + (i32.eqz + (tee_local $0 + (select + (get_local $0) + (get_local $0) + (get_local $0) + ) ) - (block $label$24 (result f32) - (br $label$16) + ) + ) + (loop $label$21 (result i64) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (get_local $1) + ) ) - (f32.load offset=22 - (block $label$25 (result i32) - (i32.const -1) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) ) + (block $label$22 (result i64) + (return + (get_local $1) + ) + ) ) - (f32.load offset=1 align=1 - (i32.and - (if (result i32) - (i32.trunc_u/f32 - (call $deNan32 - (select - (loop $label$27 (result f32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -31) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (get_local $0) + (loop $label$17 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (f64.const -9223372036854775808) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$18 (result i32) + (if + (i32.eqz + (select + (i32.const -128) + (i32.const -12) + (i32.const 1561467741) + ) + ) + (block $label$19 + (nop) + ) + (loop $label$20 + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (block $label$28 (result f32) - (br $label$16) + (return + (f64.const -nan:0xfffffffffff83) ) - (loop $label$26 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 65518) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (if (result i32) - (i32.const 1) - (i32.const -32768) - (i32.const 1392974931) - ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) ) + (set_local $0 + (get_local $0) + ) ) - (call $func_0) - (i32.trunc_s/f32 - (tee_local $2 - (f32.const 9223372036854775808) + ) + (tee_local $0 + (f32.lt + (call $deNan32 + (f32.min + (f32.const 18446744073709551615) + (f32.const 11) + ) + ) + (call $deNan32 + (select + (f32.const 2147483648) + (f32.const 18446744073709551615) + (get_local $0) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (select + (i64.load32_u offset=3 align=2 + (i32.and + (i32.load16_u offset=4 + (i32.and + (tee_local $0 + (if (result i32) + (i32.trunc_u/f64 + (get_local $1) + ) + (block $label$27 (result i32) + (get_local $0) + ) + (block $label$28 (result i32) + (get_local $0) ) ) ) (i32.const 31) ) ) + (i32.const 31) ) - (f32.load offset=4 - (i32.and - (br_if $label$0 - (i32.load8_u offset=3 - (i32.and - (loop $label$36 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -128) - ) + ) + (i64.const 80) + (i32.trunc_s/f32 + (call $deNan32 + (f32.copysign + (f32.const 1.8061622339155704e-31) + (if (result f32) + (i32.eqz + (loop $label$23 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) + (return + (f64.const 2.1384722118162242e-260) ) ) - (block $label$37 (result i32) - (br $label$16) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) ) ) - (i32.const 31) - ) - ) - (i32.eqz - (block $label$29 (result i32) - (if (result i32) - (i32.const 0) - (block $label$30 (result i32) - (if (result i32) - (i32.eqz - (select - (f32.lt - (get_local $2) - (get_local $2) - ) - (select - (select - (i32.const -101) - (i32.const 52) - (i32.const 2147483647) - ) - (i32.const 6733) - (i32.const -12) - ) - (i32.load8_s offset=22 - (i32.and - (i32.const 976638003) - (i32.const 31) - ) - ) - ) - ) - (block $label$31 (result i32) - (br $label$16) - ) - (block $label$32 (result i32) - (br $label$16) - ) + (i32.wrap/i64 + (if (result i64) + (i32.eqz + (get_local $0) ) - ) - (block $label$33 (result i32) - (f64.store offset=2 - (i32.and - (loop $label$34 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -2147483648) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$35 (result i32) - (i32.trunc_u/f32 - (get_local $2) - ) - ) + (i64.const 18752) + (select + (i64.const 650785547958815753) + (i64.const 8463519829359949880) + (block $label$24 (result i32) + (select + (get_local $0) + (i32.const 65535) + (get_local $0) ) - (i32.const 31) ) - (f64.const 6409) ) - (br $label$16) ) ) ) ) + (block $label$25 (result f32) + (f32.const 14385) + ) + (f32.const 4.2612939233197215e-37) ) - (i32.const 31) ) ) - (if (result i32) - (i32.const 2147483647) - (block $label$18 (result i32) - (f32.store offset=1 - (i32.and - (br_if $label$18 - (i32.load8_s offset=22 - (i32.and - (br_if $label$0 - (block $label$19 (result i32) - (return - (i32.const 201) - ) - ) - (i32.const 1465323825) - ) - (i32.const 31) - ) + ) + ) + ) + (block $label$29 (result i64) + (block $label$30 (result i64) + (return + (get_local $1) + ) + ) + ) + ) + ) + (if + (block $label$31 (result i32) + (block $label$32 + (if + (block $label$33 (result i32) + (loop $label$34 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (f64.const -nan:0xffffffffffff8) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (if (result i32) + (i32.eqz + (if (result i32) + (block $label$35 (result i32) + (return + (get_local $1) ) - (i32.load8_u offset=4 - (i32.and - (br_if $label$0 - (i32.load16_s offset=3 - (i32.and - (f32.gt + ) + (i32.trunc_s/f64 + (call $deNan64 + (f64.convert_u/i32 + (select + (get_local $0) + (if (result i32) + (i32.eqz + (block $label$36 (result i32) (get_local $0) - (f32.load offset=2 align=1 - (i32.and - (i32.const 65453) - (i32.const 31) - ) - ) ) - (i32.const 31) ) + (i64.gt_u + (i64.const 155730402379) + (i64.const 15) + ) + (i32.const -2147483648) ) - (i32.const 2147483647) + (get_local $0) ) - (i32.const 31) ) ) ) - (i32.const 31) - ) - (block $label$20 (result f32) - (call $deNan32 - (f32.convert_u/i64 - (i64.trunc_u/f32 - (call $deNan32 - (f32.min - (tee_local $0 - (f32.const 2.8411366687849113e-29) + (block $label$37 (result i32) + (drop + (f64.const 65483) + ) + (select + (get_local $0) + (i32.trunc_s/f64 + (block $label$38 (result f64) + (loop $label$39 (result f64) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (get_local $1) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) ) - (block $label$21 (result f32) - (br $label$16) + (call $deNan64 + (f64.add + (get_local $1) + (get_local $1) + ) ) ) ) ) + (i32.const 1751457892) ) ) ) ) - (br $label$16) - ) - (block $label$22 (result i32) - (i32.const -44) - ) - ) - ) - ) - ) - ) - (block $label$38 - (if - (i32.eqz - (i32.const 73) - ) - (block $label$39 - (loop $label$40 - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 2147483647) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) + (i32.reinterpret/f32 + (f32.const 9223372036854775808) ) + (get_local $0) ) ) - (nop) ) - ) - (block $label$41 - (loop $label$42 - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 167857947) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$43 - (if - (block $label$44 (result i32) - (if - (select - (i32.const 68027396) - (call $func_0) - (i32.const 127) - ) - (loop $label$45 - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 2147483647) - ) + (nop) + (block $label$40 + (set_local $1 + (call $deNan64 + (select + (f64.load offset=22 align=4 + (i32.and + (if (result i32) + (i32.const -124) + (block $label$43 (result i32) + (br $label$32) ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) + (block $label$44 (result i32) + (get_local $0) ) ) - (set_local $2 - (if (result f32) - (i32.eqz - (i32.const 0) - ) - (block $label$46 (result f32) - (br $label$43) + (i32.const 31) + ) + ) + (call $deNan64 + (f64.copysign + (call $deNan64 + (f64.reinterpret/i64 + (i64.ctz + (i64.trunc_u/f32 + (f32.const 65525) + ) ) - (f32.const 70) ) ) - ) - (block $label$47 - (nop) + (get_local $1) ) ) - (loop $label$48 (result i32) + (loop $label$41 (result i32) (block (if (i32.eqz (get_global $hangLimit) ) (return - (i32.const 218628885) + (f64.const 9) ) ) (set_global $hangLimit @@ -612,51 +581,44 @@ ) ) ) - (i32.const 134561796) + (block $label$42 (result i32) + (br $label$40) + ) ) ) - (block $label$49 - (loop $label$50 - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -73) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) + ) + ) + ) + ) + ) + (return + (get_local $1) + ) + ) + (block $label$45 + (block $label$46 + (br_if $label$45 + (tee_local $0 + (i32.trunc_s/f64 + (loop $label$47 (result f64) + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (f32.store offset=1 - (i32.and - (if (result i32) - (i32.eqz - (i32.const -1) - ) - (f64.gt - (f64.const 2.314826290848667e-289) - (f64.const 2.5152972121526945e-172) - ) - (i32.const -71) - ) - (i32.const 31) - ) - (call $deNan32 - (f32.convert_u/i32 - (i32.const -32) - ) - ) + (return + (get_local $1) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) ) - (block $label$51 - (nop) + (block $label$48 (result f64) + (br $label$45) ) ) ) @@ -664,60 +626,87 @@ ) ) ) - ) - (block $label$52 - (f64.store offset=4 align=4 - (i32.and - (block $label$53 (result i32) - (return - (i32.const -11) - ) - ) - (i32.const 31) + (block $label$49 + (nop) + (br_if $label$49 + (get_local $0) ) - (f64.const 3402823466385288598117041e14) ) ) - (return - (i32.const 22064) - ) - ) - ) - (func $func_1 (result f32) - (block - (if + (if (result f64) (i32.eqz - (get_global $hangLimit) + (i32.trunc_u/f32 + (f32.const 2.0658355161339533e-21) + ) ) - (return - (f32.const -nan:0x7fffd7) + (call $deNan64 + (select + (get_local $1) + (if (result f64) + (i32.eqz + (get_local $0) + ) + (block $label$50 (result f64) + (return + (get_local $1) + ) + ) + (block $label$51 (result f64) + (return + (get_local $1) + ) + ) + ) + (get_local $0) + ) ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) + (block $label$52 (result f64) + (if + (i32.reinterpret/f32 + (f32.const -nan:0x7fffb9) + ) + (nop) + (drop + (f64.const 8.308760937752171e-246) + ) + ) + (drop + (loop $label$53 (result i64) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (get_local $1) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$54 (result i64) + (i64.const -48) + ) + ) + ) + (return + (f64.const 65520) + ) ) ) ) - (block $label$0 (result f32) - (nop) - (return - (f32.const -nan:0x7fffcc) - ) - ) ) - (func $func_2 (result i64) - (local $0 f64) - (local $1 f32) + (func $func_2 (param $0 f32) (block (if (i32.eqz (get_global $hangLimit) ) - (return - (i64.const 65535) - ) + (return) ) (set_global $hangLimit (i32.sub @@ -726,46 +715,132 @@ ) ) ) - (i64.const -75) - ) - (func $func_3 (result f32) - (block + (block $label$0 (if (i32.eqz - (get_global $hangLimit) - ) - (return - (f32.const 0) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$0 (result f32) - (if (result f32) - (i32.eqz - (call $func_0) + (if (result i32) + (call $func_0) + (block $label$1 (result i32) + (block $label$2 + (loop $label$3 + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$4 + (nop) + ) + ) + ) + (if (result i32) + (i32.eqz + (if (result i32) + (i32.load8_s offset=4 + (i32.and + (if (result i32) + (i32.eqz + (call $func_0) + ) + (block $label$5 (result i32) + (br $label$0) + ) + (block $label$6 (result i32) + (br $label$0) + ) + ) + (i32.const 31) + ) + ) + (i32.const 359492883) + (call $func_0) + ) + ) + (block $label$7 (result i32) + (br $label$0) + ) + (block $label$8 (result i32) + (i32.const 22536) + ) + ) + ) + (block $label$9 (result i32) + (nop) + (br_if $label$0 + (i32.eqz + (block $label$10 (result i32) + (br $label$0) + ) + ) + ) + (br $label$0) + ) + ) ) - (block $label$1 (result f32) + (if + (i32.const 65441) (nop) - (call $deNan32 - (select - (f32.load offset=22 align=1 - (i32.and - (i32.wrap/i64 - (loop $label$2 (result i64) + (block $label$11 + (loop $label$12 + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$13 + (nop) + ) + ) + ) + ) + (block $label$14 + (if + (i32.eqz + (call $func_0) + ) + (block $label$15 + (loop $label$16 + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$17 + (block $label$18 + (loop $label$19 (block (if (i32.eqz (get_global $hangLimit) ) - (return - (f32.const -88) - ) + (return) ) (set_global $hangLimit (i32.sub @@ -774,181 +849,214 @@ ) ) ) - (block $label$3 (result i64) - (select - (block $label$5 (result i64) - (return - (f32.const 65479) + (nop) + ) + ) + ) + ) + ) + (block $label$20 + (loop $label$21 + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (if + (i32.trunc_u/f64 + (call $deNan64 + (f64.convert_u/i32 + (i32.clz + (call $func_0) + ) + ) + ) + ) + (nop) + (drop + (if (result i64) + (i32.eqz + (loop $label$22 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) ) ) - (if (result i64) - (i32.const 0) - (block $label$6 (result i64) - (br $label$2) + (block $label$23 (result i32) + (select + (i32.const 2113936401) + (i32.const 0) + (select + (i32.const 2147483647) + (i32.const 1297751887) + (i32.const 5191) + ) ) - (block $label$7 (result i64) - (return - (f32.const -109) + ) + ) + ) + (block $label$24 (result i64) + (br $label$0) + ) + (block $label$25 (result i64) + (loop $label$26 (result i64) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) ) - (block $label$4 (result i32) - (return - (f32.const 1.9142481055608796e-22) + (block $label$27 (result i64) + (i64.reinterpret/f64 + (f64.const -nan:0xfffffffffffb7) ) ) ) ) ) ) - (i32.const 31) ) ) - (call $deNan32 - (f32.demote/f64 - (call $deNan64 - (f64.add - (f64.const -nan:0xfffffffffffe6) - (call $deNan64 - (select - (f64.const 6.146610220788184e-183) - (loop $label$18 (result f64) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (f32.const -93) - ) + (drop + (call $func_1) + ) + (block $label$28 + (if + (i32.const 18500) + (nop) + (if + (i32.eqz + (i32.const -122) + ) + (block $label$29 + (set_local $0 + (loop $label$30 (result f32) + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) - (block $label$19 (result f64) - (call $deNan64 - (f64.nearest - (call $deNan64 - (f64.convert_u/i32 - (i32.const -45) - ) - ) + ) + (f32.load offset=22 align=2 + (i32.and + (block $label$31 (result i32) + (i64.eqz + (i64.const -2147483648) ) ) + (i32.const 31) ) ) - (block $label$10 (result i32) - (br_if $label$10 - (if (result i32) - (select - (call $func_0) - (i32.trunc_s/f64 - (f64.const -nan:0xfffffffffffdd) - ) - (if (result i32) - (i32.eqz - (i32.const 2113936401) - ) - (select - (loop $label$15 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (f32.const -nan:0x7fffea) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (i32.const -90) - ) - (i32.const 2097561141) - (i32.const 127) - ) - (i32.const 5918) - ) - ) - (block $label$16 (result i32) - (return - (f32.const 18446744073709551615) - ) - ) - (block $label$17 (result i32) - (return - (f32.const 253) - ) - ) + ) + ) + ) + (f32.store offset=4 align=1 + (i32.and + (loop $label$32 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) ) - (f64.le - (loop $label$11 (result f64) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (f32.const 1.1754943508222875e-38) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$12 (result f64) - (block $label$13 (result f64) - (return - (f32.const 3402823466385288598117041e14) - ) - ) - ) - ) - (f64.const -88) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) ) ) ) + (i32.wrap/i64 + (i64.const -125) + ) + ) + (i32.const 31) + ) + (f32.load offset=4 align=1 + (i32.and + (i32.const 23) + (i32.const 31) ) ) ) ) ) + (br_if $label$0 + (i32.eqz + (i32.const -128) + ) + ) ) - (i32.const 74) ) ) ) - (block $label$20 (result f32) - (nop) - (nop) - (return - (f32.const -3) + ) + (br_if $label$0 + (loop $label$33 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$34 (result i32) + (br $label$0) ) ) ) ) ) - (func $func_4 (result i64) - (local $0 i32) + (func $func_3 (param $0 f64) (param $1 f64) (param $2 f64) (result f32) (block (if (i32.eqz (get_global $hangLimit) ) (return - (i64.const 9223372036854775807) + (f32.const -nan:0x7fff97) ) ) (set_global $hangLimit @@ -958,16 +1066,50 @@ ) ) ) - (block $label$0 (result i64) - (return - (i64.const 9223372036854775807) + (call $deNan32 + (f32.sqrt + (if (result f32) + (loop $label$0 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (f32.const 9223372036854775808) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$1 (result i32) + (return + (f32.const 9223372036854775808) + ) + ) + ) + (block $label$2 (result f32) + (block $label$3 (result f32) + (f32.const 2147483648) + ) + ) + (f32.const 8764) + ) ) ) ) - (func $func_5 - (local $0 f64) - (local $1 i32) - (local $2 i32) + (func $func_4 + (local $0 i64) + (local $1 i64) + (local $2 f32) + (local $3 f64) + (local $4 f64) + (local $5 f64) + (local $6 f32) (block (if (i32.eqz @@ -982,24 +1124,16 @@ ) ) ) - (drop - (call $func_3) - ) + (nop) ) - (func $func_6 (result f32) - (local $0 i64) - (local $1 f32) - (local $2 f64) - (local $3 i64) - (local $4 i64) - (local $5 f32) + (func $func_5 (param $0 i64) (param $1 i64) (result f64) (block (if (i32.eqz (get_global $hangLimit) ) (return - (f32.const -1) + (f64.const -100) ) ) (set_global $hangLimit @@ -1009,18 +1143,17 @@ ) ) ) - (call $func_1) + (f64.const 1) ) - (func $func_7 (result f32) - (local $0 f32) - (local $1 i32) + (func $func_6 (result i32) + (local $0 f64) (block (if (i32.eqz (get_global $hangLimit) ) (return - (get_local $0) + (i32.const 2147483647) ) ) (set_global $hangLimit @@ -1030,153 +1163,90 @@ ) ) ) - (if (result f32) - (tee_local $1 - (tee_local $1 - (i32.const 65535) - ) - ) - (loop $label$0 (result f32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (get_local $0) + (select + (select + (loop $label$1 (result i32) + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (i32.const 0) + ) ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) ) ) - ) - (block $label$1 (result f32) - (tee_local $0 - (tee_local $0 - (if (result f32) - (i32.load16_s offset=22 align=1 - (i32.and - (if (result i32) - (tee_local $1 - (get_local $1) - ) - (block $label$2 (result i32) - (return - (get_local $0) - ) - ) - (block $label$3 (result i32) - (return - (get_local $0) + (block $label$2 (result i32) + (i32.load offset=4 + (br_if $label$2 + (i32.const -76) + (i32.eqz + (i32.load8_s offset=4 + (i32.and + (i32.load offset=22 align=1 + (i32.and + (i32.const 92) + (i32.const 31) ) ) - ) - (i32.const 31) - ) - ) - (tee_local $0 - (f32.load offset=22 - (i32.and - (i32.const 32767) (i32.const 31) ) ) ) - (block $label$4 (result f32) - (br $label$0) - ) ) ) ) ) + (block $label$3 (result i32) + (return + (i32.const 26) + ) + ) + (call $func_0) ) - (block $label$5 (result f32) - (br_if $label$5 - (tee_local $0 - (call $deNan32 - (f32.max - (f32.load offset=22 - (i32.and - (select - (tee_local $1 - (call $func_0) - ) - (tee_local $1 - (i32.load8_s offset=4 + (select + (block $label$9 (result i32) + (loop $label$10 + (block + (if + (i32.eqz + (get_global $hangLimit) + ) + (return + (i32.const 1) + ) + ) + (set_global $hangLimit + (i32.sub + (get_global $hangLimit) + (i32.const 1) + ) + ) + ) + (block $label$11 + (i32.store16 offset=2 align=1 + (i32.const -91) + (i32.load16_s offset=4 align=1 + (i32.ctz + (block $label$12 (result i32) + (select + (i32.load offset=4 align=2 (i32.and - (block $label$10 (result i32) - (return - (f32.const -27) - ) - ) + (i32.const -113) (i32.const 31) ) ) - ) - (i32.rem_u - (loop $label$8 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (get_local $0) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$9 (result i32) - (i32.shr_u - (select - (i32.const 1497849685) - (tee_local $1 - (tee_local $1 - (get_local $1) - ) - ) - (get_local $1) - ) - (get_local $1) - ) - ) - ) (call $func_0) - ) - ) - (i32.const 31) - ) - ) - (loop $label$11 (result f32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (get_local $0) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$12 (result f32) - (tee_local $0 - (block $label$13 (result f32) - (return - (f32.const -nan:0x7fffec) + (block $label$13 (result i32) + (return + (i32.const -32768) + ) ) ) ) @@ -1185,32 +1255,30 @@ ) ) ) - (i32.eqz - (block $label$6 (result i32) - (i32.load16_s offset=4 align=1 + (i32.const 255) + ) + (i32.const 127) + (select + (if (result i32) + (block $label$4 (result i32) + (i32.load offset=22 (i32.and - (loop $label$7 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (f32.const 65486) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) + (br_if $label$4 + (i32.load16_u offset=2 + (i32.and + (i32.const 226) + (i32.const 31) ) ) - (tee_local $1 - (i32.load offset=22 - (i32.and - (get_local $1) - (i32.const 31) + (i32.eqz + (select + (block $label$5 (result i32) + (i32.const -32768) + ) + (i32.const 354161438) + (i64.gt_s + (i64.const -18) + (i64.const 2835340575676513842) ) ) ) @@ -1219,153 +1287,34 @@ ) ) ) - ) - ) - ) - ) - ) - (func $func_8 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 65535) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$0 (result i32) - (f32.eq - (f32.const -nan:0x7ffff1) - (call $deNan32 - (select - (block $label$3 (result f32) + (i32.const -128) + (block $label$6 (result i32) (return - (i32.const 1) + (i32.const 65442) ) ) - (if (result f32) - (i32.eqz - (i32.const 709173281) - ) - (block $label$4 (result f32) - (f32.const 8.104309321630391e-21) - ) - (block $label$5 (result f32) - (drop - (i32.shr_u - (br_if $label$0 - (block $label$7 (result i32) - (return - (i32.const 65432) - ) - ) - (i32.eqz - (i32.wrap/i64 - (loop $label$6 (result i64) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const 65425) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (i64.xor - (i64.extend_u/i32 - (br_if $label$0 - (i32.const 12) - (i32.div_u - (i32.const -96) - (i32.const 0) - ) - ) - ) - (i64.const 8606517916339761162) - ) - ) - ) - ) - ) - (f32.le - (call $func_6) - (call $deNan32 - (f32.sub - (f32.const 9223372036854775808) - (f32.const 22107) - ) - ) - ) - ) - ) - (if - (i32.eqz - (i32.const 1543) - ) - (block $label$8 - (br_if $label$8 - (i32.load8_u offset=4 - (i32.and - (i32.const 126) - (i32.const 31) - ) - ) - ) - ) - (nop) - ) - (f32.const 1.1754943508222875e-38) - ) - ) - (select - (loop $label$1 (result i32) - (block - (if - (i32.eqz - (get_global $hangLimit) - ) - (return - (i32.const -80) - ) - ) - (set_global $hangLimit - (i32.sub - (get_global $hangLimit) - (i32.const 1) - ) - ) - ) - (block $label$2 (result i32) + ) + (block $label$7 (result i32) + (i32.load offset=22 align=1 + (i32.and + (block $label$8 (result i32) (return - (i32.const 65509) - ) - ) - ) - (i32.const 509639793) - (i32.trunc_s/f64 - (call $deNan64 - (f64.convert_u/i32 - (i32.const 65487) + (i32.const 255) ) ) + (i32.const 31) ) ) ) + (i32.lt_s + (i32.const -20) + (i32.const -2147483648) + ) + ) + ) + (block $label$0 (result i32) + (return + (i32.const -86) ) ) ) |