From 30a16780fc77f3cedb23b374eeee91806f2d9cbb Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Tue, 2 Mar 2021 21:46:52 -0800 Subject: [PATCH 01/28] replace hardcoded tests with submodule to the official testsuit --- .gitmodules | 3 + src/Language/Wasm/Interpreter.hs | 1 - src/Language/Wasm/Lexer.x | 1 - stack.yaml.lock | 12 + tests/Test.hs | 11 +- tests/samples/address.wast | 103 - tests/samples/align.wast | 33 - tests/samples/binary.wast | 327 --- tests/samples/block.wast | 299 --- tests/samples/br.wast | 447 ---- tests/samples/br_if.wast | 321 --- tests/samples/br_table.wast | 1515 ------------ tests/samples/break-drop.wast | 9 - tests/samples/call.wast | 242 -- tests/samples/call_indirect.wast | 536 ----- tests/samples/comments.wast | Bin 701 -> 0 bytes tests/samples/const.wast | 137 -- tests/samples/conversions.wast | 461 ---- tests/samples/custom.wast | 120 - tests/samples/data.wast | 335 --- tests/samples/elem.wast | 381 --- tests/samples/endianess.wast | 131 - tests/samples/endianness.wast | 217 -- tests/samples/exports.wast | 198 -- tests/samples/f32.wast | 2518 ------------------- tests/samples/f32_bitwise.wast | 369 --- tests/samples/f32_cmp.wast | 2412 ------------------- tests/samples/f64.wast | 2518 ------------------- tests/samples/f64_bitwise.wast | 369 --- tests/samples/f64_cmp.wast | 2412 ------------------- tests/samples/fac.wast | 89 - tests/samples/fact.wast | 117 - tests/samples/float_exprs.wast | 2570 -------------------- tests/samples/float_literals.wast | 499 ---- tests/samples/float_memory.wast | 157 -- tests/samples/float_misc.wast | 678 ------ tests/samples/forward.wast | 20 - tests/samples/func.wast | 661 ----- tests/samples/func_ptrs.wast | 106 - tests/samples/get_local.wast | 148 -- tests/samples/globals.wast | 180 -- tests/samples/i32.wast | 421 ---- tests/samples/i64.wast | 421 ---- tests/samples/if.wast | 449 ---- tests/samples/imports.wast | 591 ----- tests/samples/inline-module.wast | 1 - tests/samples/int_exprs.wast | 350 --- tests/samples/int_literals.wast | 151 -- tests/samples/labels.wast | 321 --- tests/samples/left-to-right.wast | 233 -- tests/samples/linking.wast | 321 --- tests/samples/loop.wast | 309 --- tests/samples/memory.wast | 449 ---- tests/samples/memory_redundancy.wast | 65 - tests/samples/memory_trap.wast | 270 --- tests/samples/names.wast | 1087 --------- tests/samples/nop.wast | 264 -- tests/samples/resizing.wast | 60 - tests/samples/return.wast | 295 --- tests/samples/select.wast | 67 - tests/samples/set_local.wast | 205 -- tests/samples/skip-stack-guard-page.wast | 2284 ------------------ tests/samples/stack.wast | 220 -- tests/samples/start.wast | 100 - tests/samples/store_retval.wast | 55 - tests/samples/switch.wast | 150 -- tests/samples/tee_local.wast | 236 -- tests/samples/token.wast | 10 - tests/samples/traps.wast | 91 - tests/samples/type.wast | 59 - tests/samples/typecheck.wast | 425 ---- tests/samples/unreachable.wast | 290 --- tests/samples/unreached-invalid.wast | 709 ------ tests/samples/unwind.wast | 203 -- tests/samples/utf8-custom-section-id.wast | 1792 -------------- tests/samples/utf8-import-field.wast | 2672 --------------------- tests/samples/utf8-import-module.wast | 2672 --------------------- tests/samples/utf8-invalid-encoding.wast | 176 -- tests/spec | 1 + 79 files changed, 24 insertions(+), 40114 deletions(-) create mode 100644 .gitmodules create mode 100644 stack.yaml.lock delete mode 100644 tests/samples/address.wast delete mode 100644 tests/samples/align.wast delete mode 100644 tests/samples/binary.wast delete mode 100644 tests/samples/block.wast delete mode 100644 tests/samples/br.wast delete mode 100644 tests/samples/br_if.wast delete mode 100644 tests/samples/br_table.wast delete mode 100644 tests/samples/break-drop.wast delete mode 100644 tests/samples/call.wast delete mode 100644 tests/samples/call_indirect.wast delete mode 100644 tests/samples/comments.wast delete mode 100644 tests/samples/const.wast delete mode 100644 tests/samples/conversions.wast delete mode 100644 tests/samples/custom.wast delete mode 100644 tests/samples/data.wast delete mode 100644 tests/samples/elem.wast delete mode 100644 tests/samples/endianess.wast delete mode 100644 tests/samples/endianness.wast delete mode 100644 tests/samples/exports.wast delete mode 100644 tests/samples/f32.wast delete mode 100644 tests/samples/f32_bitwise.wast delete mode 100644 tests/samples/f32_cmp.wast delete mode 100644 tests/samples/f64.wast delete mode 100644 tests/samples/f64_bitwise.wast delete mode 100644 tests/samples/f64_cmp.wast delete mode 100644 tests/samples/fac.wast delete mode 100644 tests/samples/fact.wast delete mode 100644 tests/samples/float_exprs.wast delete mode 100644 tests/samples/float_literals.wast delete mode 100644 tests/samples/float_memory.wast delete mode 100644 tests/samples/float_misc.wast delete mode 100644 tests/samples/forward.wast delete mode 100644 tests/samples/func.wast delete mode 100644 tests/samples/func_ptrs.wast delete mode 100644 tests/samples/get_local.wast delete mode 100644 tests/samples/globals.wast delete mode 100644 tests/samples/i32.wast delete mode 100644 tests/samples/i64.wast delete mode 100644 tests/samples/if.wast delete mode 100644 tests/samples/imports.wast delete mode 100644 tests/samples/inline-module.wast delete mode 100644 tests/samples/int_exprs.wast delete mode 100644 tests/samples/int_literals.wast delete mode 100644 tests/samples/labels.wast delete mode 100644 tests/samples/left-to-right.wast delete mode 100644 tests/samples/linking.wast delete mode 100644 tests/samples/loop.wast delete mode 100644 tests/samples/memory.wast delete mode 100644 tests/samples/memory_redundancy.wast delete mode 100644 tests/samples/memory_trap.wast delete mode 100644 tests/samples/names.wast delete mode 100644 tests/samples/nop.wast delete mode 100644 tests/samples/resizing.wast delete mode 100644 tests/samples/return.wast delete mode 100644 tests/samples/select.wast delete mode 100644 tests/samples/set_local.wast delete mode 100644 tests/samples/skip-stack-guard-page.wast delete mode 100644 tests/samples/stack.wast delete mode 100644 tests/samples/start.wast delete mode 100644 tests/samples/store_retval.wast delete mode 100644 tests/samples/switch.wast delete mode 100644 tests/samples/tee_local.wast delete mode 100644 tests/samples/token.wast delete mode 100644 tests/samples/traps.wast delete mode 100644 tests/samples/type.wast delete mode 100644 tests/samples/typecheck.wast delete mode 100644 tests/samples/unreachable.wast delete mode 100644 tests/samples/unreached-invalid.wast delete mode 100644 tests/samples/unwind.wast delete mode 100644 tests/samples/utf8-custom-section-id.wast delete mode 100644 tests/samples/utf8-import-field.wast delete mode 100644 tests/samples/utf8-import-module.wast delete mode 100644 tests/samples/utf8-invalid-encoding.wast create mode 160000 tests/spec diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..61b93e2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tests/spec"] + path = tests/spec + url = https://github.com/WebAssembly/testsuite diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 7af2284..c5839af 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -37,7 +37,6 @@ import Data.Word (Word8, Word16, Word32, Word64) import Data.Int (Int32, Int64) import Numeric.Natural (Natural) import qualified Control.Monad as Monad -import Data.Monoid ((<>)) import Data.Bits ( Bits, (.|.), diff --git a/src/Language/Wasm/Lexer.x b/src/Language/Wasm/Lexer.x index bff6056..c697641 100644 --- a/src/Language/Wasm/Lexer.x +++ b/src/Language/Wasm/Lexer.x @@ -13,7 +13,6 @@ module Language.Wasm.Lexer ( import qualified Data.ByteString.Lazy as LBS import qualified Data.Char as Char import qualified Data.ByteString.Lazy.UTF8 as LBSUtf8 -import Control.Applicative ((<$>)) import Control.Monad (when) import Numeric.IEEE (infinity, nan) import Language.Wasm.FloatUtils (makeNaN, doubleToFloat) diff --git a/stack.yaml.lock b/stack.yaml.lock new file mode 100644 index 0000000..1890a3b --- /dev/null +++ b/stack.yaml.lock @@ -0,0 +1,12 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: [] +snapshots: +- completed: + size: 531707 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/5.yaml + sha256: 9751e25e0af5713a53ddcfcc79564b082c71b1b357fadef0d85672a5b5ba3703 + original: lts-16.5 diff --git a/tests/Test.hs b/tests/Test.hs index ccdc349..bfa8e19 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -12,12 +12,17 @@ import qualified Data.ByteString.Lazy as LBS import qualified Language.Wasm as Wasm import qualified Language.Wasm.Script as Script +import qualified Data.List as List main :: IO () main = do - files <- Directory.listDirectory "tests/samples" + files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" scriptTestCases <- (`mapM` files) $ \file -> do - Right script <- Wasm.parseScript <$> LBS.readFile ("tests/samples/" ++ file) + test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do - Script.runScript (\msg assert -> assertFailure ("Failed assert: " ++ msg ++ ". Assert " ++ show assert)) script + case Wasm.parseScript test of + Right script -> + Script.runScript (\msg assert -> assertFailure ("Failed assert: " ++ msg ++ ". Assert " ++ show assert)) script + Left error -> + assertFailure $ "Failed to parse with error: " ++ show error defaultMain $ testGroup "Wasm Core Test Suit" scriptTestCases diff --git a/tests/samples/address.wast b/tests/samples/address.wast deleted file mode 100644 index ee2a6bb..0000000 --- a/tests/samples/address.wast +++ /dev/null @@ -1,103 +0,0 @@ -(module - (memory 1) - (data (i32.const 0) "abcdefghijklmnopqrstuvwxyz") - - (func (export "good1") (param $i i32) (result i32) - (i32.load8_u offset=0 (get_local $i)) ;; 97 'a' - ) - (func (export "good2") (param $i i32) (result i32) - (i32.load8_u offset=1 (get_local $i)) ;; 98 'b' - ) - (func (export "good3") (param $i i32) (result i32) - (i32.load8_u offset=2 (get_local $i)) ;; 99 'c' - ) - (func (export "good4") (param $i i32) (result i32) - (i32.load8_u offset=25 (get_local $i)) ;; 122 'z' - ) - - (func (export "good5") (param $i i32) (result i32) - (i32.load16_u offset=0 (get_local $i)) ;; 25185 'ab' - ) - (func (export "good6") (param $i i32) (result i32) - (i32.load16_u align=1 (get_local $i)) ;; 25185 'ab' - ) - (func (export "good7") (param $i i32) (result i32) - (i32.load16_u offset=1 align=1 (get_local $i)) ;; 25442 'bc' - ) - (func (export "good8") (param $i i32) (result i32) - (i32.load16_u offset=2 (get_local $i)) ;; 25699 'cd' - ) - (func (export "good9") (param $i i32) (result i32) - (i32.load16_u offset=25 align=1 (get_local $i)) ;; 122 'z\0' - ) - - (func (export "good10") (param $i i32) (result i32) - (i32.load offset=0 (get_local $i)) ;; 1684234849 'abcd' - ) - (func (export "good11") (param $i i32) (result i32) - (i32.load offset=1 align=1 (get_local $i)) ;; 1701077858 'bcde' - ) - (func (export "good12") (param $i i32) (result i32) - (i32.load offset=2 align=2 (get_local $i)) ;; 1717920867 'cdef' - ) - (func (export "good13") (param $i i32) (result i32) - (i32.load offset=25 align=1 (get_local $i)) ;; 122 'z\0\0\0' - ) - - (func (export "bad") (param $i i32) - (drop (i32.load offset=4294967295 (get_local $i))) - ) -) - -(assert_return (invoke "good1" (i32.const 0)) (i32.const 97)) -(assert_return (invoke "good2" (i32.const 0)) (i32.const 98)) -(assert_return (invoke "good3" (i32.const 0)) (i32.const 99)) -(assert_return (invoke "good4" (i32.const 0)) (i32.const 122)) -(assert_return (invoke "good5" (i32.const 0)) (i32.const 25185)) -(assert_return (invoke "good6" (i32.const 0)) (i32.const 25185)) -(assert_return (invoke "good7" (i32.const 0)) (i32.const 25442)) -(assert_return (invoke "good8" (i32.const 0)) (i32.const 25699)) -(assert_return (invoke "good9" (i32.const 0)) (i32.const 122)) -(assert_return (invoke "good10" (i32.const 0)) (i32.const 1684234849)) -(assert_return (invoke "good11" (i32.const 0)) (i32.const 1701077858)) -(assert_return (invoke "good12" (i32.const 0)) (i32.const 1717920867)) -(assert_return (invoke "good13" (i32.const 0)) (i32.const 122)) - -(assert_return (invoke "good1" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good2" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good3" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good4" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good5" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good6" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good7" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good8" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good9" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good10" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good11" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good12" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good13" (i32.const 65507)) (i32.const 0)) - -(assert_return (invoke "good1" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good2" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good3" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good4" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good5" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good6" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good7" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good8" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good9" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good10" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good11" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good12" (i32.const 65508)) (i32.const 0)) -(assert_trap (invoke "good13" (i32.const 65508)) "out of bounds memory access") - -(assert_trap (invoke "bad" (i32.const 0)) "out of bounds memory access") -(assert_trap (invoke "bad" (i32.const 1)) "out of bounds memory access") - -(assert_malformed - (module quote - "(memory 1)" - "(func (drop (i32.load offset=4294967296 (i32.const 0))))" - ) - "i32 constant" -) diff --git a/tests/samples/align.wast b/tests/samples/align.wast deleted file mode 100644 index 133b501..0000000 --- a/tests/samples/align.wast +++ /dev/null @@ -1,33 +0,0 @@ -(assert_malformed - (module quote - "(module (memory 0) (func (drop (i64.load align=0 (i32.const 0)))))" - ) - "alignment" -) -(assert_malformed - (module quote - "(module (memory 0) (func (drop (i64.load align=7 (i32.const 0)))))" - ) - "alignment" -) -(assert_invalid - (module (memory 0) (func (drop (i64.load align=16 (i32.const 0))))) - "alignment" -) - -(assert_malformed - (module quote - "(module (memory 0) (func (i64.store align=0 (i32.const 0) (i64.const 0))))" - ) - "alignment" -) -(assert_malformed - (module quote - "(module (memory 0) (func (i64.store align=5 (i32.const 0) (i64.const 0))))" - ) - "alignment" -) -(assert_invalid - (module (memory 0) (func (i64.store align=16 (i32.const 0) (i64.const 0)))) - "alignment" -) diff --git a/tests/samples/binary.wast b/tests/samples/binary.wast deleted file mode 100644 index 74692eb..0000000 --- a/tests/samples/binary.wast +++ /dev/null @@ -1,327 +0,0 @@ -(module binary "\00asm\01\00\00\00") -(module binary "\00asm" "\01\00\00\00") -(module $M1 binary "\00asm\01\00\00\00") -(module $M2 binary "\00asm" "\01\00\00\00") - -(assert_malformed (module binary "") "unexpected end") -(assert_malformed (module binary "\01") "unexpected end") -(assert_malformed (module binary "\00as") "unexpected end") -(assert_malformed (module binary "asm\00") "magic header not detected") -(assert_malformed (module binary "msa\00") "magic header not detected") -(assert_malformed (module binary "msa\00\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "msa\00\00\00\00\01") "magic header not detected") -(assert_malformed (module binary "asm\01\00\00\00\00") "magic header not detected") -(assert_malformed (module binary "wasm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\7fasm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\80asm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\82asm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\ffasm\01\00\00\00") "magic header not detected") - -;; 8-byte endian-reversed. -(assert_malformed (module binary "\00\00\00\01msa\00") "magic header not detected") - -;; Middle-endian byte orderings. -(assert_malformed (module binary "a\00ms\00\01\00\00") "magic header not detected") -(assert_malformed (module binary "sm\00a\00\00\01\00") "magic header not detected") - -;; Upper-cased. -(assert_malformed (module binary "\00ASM\01\00\00\00") "magic header not detected") - -;; EBCDIC-encoded magic. -(assert_malformed (module binary "\00\81\a2\94\01\00\00\00") "magic header not detected") - -;; Leading UTF-8 BOM. -(assert_malformed (module binary "\ef\bb\bf\00asm\01\00\00\00") "magic header not detected") - -(assert_malformed (module binary "\00asm") "unexpected end") -(assert_malformed (module binary "\00asm\01") "unexpected end") -(assert_malformed (module binary "\00asm\01\00\00") "unexpected end") -(assert_malformed (module binary "\00asm\00\00\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\0d\00\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\0e\00\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\00\01\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\00\00\01\00") "unknown binary version") -(assert_malformed (module binary "\00asm\00\00\00\01") "unknown binary version") - -;; Unsigned LEB128 can have non-minimal length -(module binary - "\00asm" "\01\00\00\00" - "\05\04\01" ;; Memory section with 1 entry - "\00\82\00" ;; no max, minimum 2 -) -(module binary - "\00asm" "\01\00\00\00" - "\05\07\01" ;; Memory section with 1 entry - "\00\82\80\80\80\00" ;; no max, minimum 2 -) - -;; Signed LEB128 can have non-minimal length -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\00" ;; i32.const 0 - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\7f" ;; i32.const -1 - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\00" ;; i32.const 0 - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\7f" ;; i32.const -1 - "\0b" ;; end -) - -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\00" ;; i64.const 0 with unused bits set - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\7f" ;; i64.const -1 with unused bits unset - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with unused bits set - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with unused bits unset - "\0b" ;; end -) - -;; Unsigned LEB128 must not be overlong -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\05\08\01" ;; Memory section with 1 entry - "\00\82\80\80\80\80\00" ;; no max, minimum 2 with one byte too many - ) - "integer representation too long" -) - -;; Signed LEB128 must not be overlong -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0b\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\80\00" ;; i32.const 0 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0b\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\ff\7f" ;; i32.const -1 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\10\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\10\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) - -;; Unsigned LEB128s zero-extend -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\05\04\01" ;; Memory section with 1 entry - "\00\82\80\80\80\70" ;; no max, minimum 2 with unused bits set - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\05\04\01" ;; Memory section with 1 entry - "\00\82\80\80\80\40" ;; no max, minimum 2 with some unused bits set - ) - "integer too large" -) - -;; Signed LEB128s sign-extend -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\70" ;; i32.const 0 with unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\0f" ;; i32.const -1 with unused bits unset - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\1f" ;; i32.const 0 with some unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\4f" ;; i32.const -1 with some unused bits unset - "\0b" ;; end - ) - "integer too large" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\7e" ;; i64.const 0 with unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\01" ;; i64.const -1 with unused bits unset - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\02" ;; i64.const 0 with some unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\41" ;; i64.const -1 with some unused bits unset - "\0b" ;; end - ) - "integer too large" -) - -;; call_indirect reserved byte equal to zero. -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\04\01\60\00\00" ;; Type section - "\03\02\01\00" ;; Function section - "\04\04\01\70\00\00" ;; Table section - "\0a\09\01" ;; Code section - - ;; function 0 - "\07\00" - "\41\00" ;; i32.const 0 - "\11\00" ;; call_indirect (type 0) - "\01" ;; call_indirect reserved byte is not equal to zero! - "\0b" ;; end - ) - "zero flag expected" -) - -;; memory.grow reserved byte equal to zero. -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\04\01\60\00\00" ;; Type section - "\03\02\01\00" ;; Function section - "\05\03\01\00\00" ;; Memory section - "\0a\09\01" ;; Code section - - ;; function 0 - "\07\00" - "\41\00" ;; i32.const 0 - "\40" ;; memory.grow - "\01" ;; memory.grow reserved byte is not equal to zero! - "\1a" ;; drop - "\0b" ;; end - ) - "zero flag expected" -) - -;; memory.size reserved byte equal to zero. -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\04\01\60\00\00" ;; Type section - "\03\02\01\00" ;; Function section - "\05\03\01\00\00" ;; Memory section - "\0a\07\01" ;; Code section - - ;; function 0 - "\05\00" - "\3f" ;; memory.size - "\01" ;; memory.size reserved byte is not equal to zero! - "\1a" ;; drop - "\0b" ;; end - ) - "zero flag expected" -) diff --git a/tests/samples/block.wast b/tests/samples/block.wast deleted file mode 100644 index f2b6384..0000000 --- a/tests/samples/block.wast +++ /dev/null @@ -1,299 +0,0 @@ -;; Test `block` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "empty") - (block) - (block $l) - ) - - (func (export "singular") (result i32) - (block (nop)) - (block (result i32) (i32.const 7)) - ) - - (func (export "multi") (result i32) - (block (call $dummy) (call $dummy) (call $dummy) (call $dummy)) - (block (result i32) (call $dummy) (call $dummy) (call $dummy) (i32.const 8)) - ) - - (func (export "nested") (result i32) - (block (result i32) - (block (call $dummy) (block) (nop)) - (block (result i32) (call $dummy) (i32.const 9)) - ) - ) - - (func (export "deep") (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (call $dummy) (i32.const 150) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - ) - - (func (export "as-unary-operand") (result i32) - (i32.ctz (block (result i32) (call $dummy) (i32.const 13))) - ) - (func (export "as-binary-operand") (result i32) - (i32.mul - (block (result i32) (call $dummy) (i32.const 3)) - (block (result i32) (call $dummy) (i32.const 4)) - ) - ) - (func (export "as-test-operand") (result i32) - (i32.eqz (block (result i32) (call $dummy) (i32.const 13))) - ) - (func (export "as-compare-operand") (result i32) - (f32.gt - (block (result f32) (call $dummy) (f32.const 3)) - (block (result f32) (call $dummy) (f32.const 3)) - ) - ) - - (func (export "break-bare") (result i32) - (block (br 0) (unreachable)) - (block (br_if 0 (i32.const 1)) (unreachable)) - (block (br_table 0 (i32.const 0)) (unreachable)) - (block (br_table 0 0 0 (i32.const 1)) (unreachable)) - (i32.const 19) - ) - (func (export "break-value") (result i32) - (block (result i32) (br 0 (i32.const 18)) (i32.const 19)) - ) - (func (export "break-repeated") (result i32) - (block (result i32) - (br 0 (i32.const 18)) - (br 0 (i32.const 19)) - (drop (br_if 0 (i32.const 20) (i32.const 0))) - (drop (br_if 0 (i32.const 20) (i32.const 1))) - (br 0 (i32.const 21)) - (br_table 0 (i32.const 22) (i32.const 4)) - (br_table 0 0 0 (i32.const 23) (i32.const 1)) - (i32.const 21) - ) - ) - (func (export "break-inner") (result i32) - (local i32) - (set_local 0 (i32.const 0)) - (set_local 0 (i32.add (get_local 0) (block (result i32) (block (result i32) (br 1 (i32.const 0x1)))))) - (set_local 0 (i32.add (get_local 0) (block (result i32) (block (br 0)) (i32.const 0x2)))) - (set_local 0 - (i32.add (get_local 0) (block (result i32) (i32.ctz (br 0 (i32.const 0x4))))) - ) - (set_local 0 - (i32.add (get_local 0) (block (result i32) (i32.ctz (block (result i32) (br 1 (i32.const 0x8)))))) - ) - (get_local 0) - ) - - (func (export "effects") (result i32) - (local i32) - (block - (set_local 0 (i32.const 1)) - (set_local 0 (i32.mul (get_local 0) (i32.const 3))) - (set_local 0 (i32.sub (get_local 0) (i32.const 5))) - (set_local 0 (i32.mul (get_local 0) (i32.const 7))) - (br 0) - (set_local 0 (i32.mul (get_local 0) (i32.const 100))) - ) - (i32.eq (get_local 0) (i32.const -14)) - ) -) - -(assert_return (invoke "empty")) -(assert_return (invoke "singular") (i32.const 7)) -(assert_return (invoke "multi") (i32.const 8)) -(assert_return (invoke "nested") (i32.const 9)) -(assert_return (invoke "deep") (i32.const 150)) - -(assert_return (invoke "as-unary-operand") (i32.const 0)) -(assert_return (invoke "as-binary-operand") (i32.const 12)) -(assert_return (invoke "as-test-operand") (i32.const 0)) -(assert_return (invoke "as-compare-operand") (i32.const 0)) - -(assert_return (invoke "break-bare") (i32.const 19)) -(assert_return (invoke "break-value") (i32.const 18)) -(assert_return (invoke "break-repeated") (i32.const 18)) -(assert_return (invoke "break-inner") (i32.const 0xf)) - -(assert_return (invoke "effects") (i32.const 1)) - -(assert_invalid - (module (func $type-empty-i32 (result i32) (block))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64) (block))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32) (block))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64) (block))) - "type mismatch" -) - -(assert_invalid - (module (func $type-value-num-vs-void - (block (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-empty-vs-num (result i32) - (block (result i32)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-void-vs-num (result i32) - (block (result i32) (nop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-num (result i32) - (block (result i32) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-unreached-select (result i32) - (block (result i64) (select (unreachable) (unreachable) (unreachable))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-last-void-vs-num (result i32) - (block (result i32) (br 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-empty-vs-num (result i32) - (block (result i32) (br 0) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-void-vs-num (result i32) - (block (result i32) (br 0 (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-num-vs-num (result i32) - (block (result i32) (br 0 (i64.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-first-void-vs-num (result i32) - (block (result i32) (br 0 (nop)) (br 0 (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-first-num-vs-num (result i32) - (block (result i32) (br 0 (i64.const 1)) (br 0 (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-nested-num-vs-void - (block (result i32) (block (result i32) (br 1 (i32.const 1))) (br 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-empty-vs-num (result i32) - (block (result i32) (block (br 1)) (br 0 (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-nested-void-vs-num (result i32) - (block (result i32) (block (result i32) (br 1 (nop))) (br 0 (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-num-vs-num (result i32) - (block (result i32) - (block (result i32) (br 1 (i64.const 1))) (br 0 (i32.const 1)) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-operand-empty-vs-num (result i32) - (i32.ctz (block (br 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-operand-void-vs-num (result i32) - (i64.ctz (block (br 0 (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-operand-num-vs-num (result i32) - (i64.ctz (block (br 0 (i64.const 9)))) - )) - "type mismatch" -) - - -(assert_malformed - (module quote "(func block end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func block $a end $l)") - "mismatching label" -) diff --git a/tests/samples/br.wast b/tests/samples/br.wast deleted file mode 100644 index e801a1b..0000000 --- a/tests/samples/br.wast +++ /dev/null @@ -1,447 +0,0 @@ -;; Test `br` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") (block (drop (i32.ctz (br 0))))) - (func (export "type-i64") (block (drop (i64.ctz (br 0))))) - (func (export "type-f32") (block (drop (f32.neg (br 0))))) - (func (export "type-f64") (block (drop (f64.neg (br 0))))) - - (func (export "type-i32-value") (result i32) - (block (result i32) (i32.ctz (br 0 (i32.const 1)))) - ) - (func (export "type-i64-value") (result i64) - (block (result i64) (i64.ctz (br 0 (i64.const 2)))) - ) - (func (export "type-f32-value") (result f32) - (block (result f32) (f32.neg (br 0 (f32.const 3)))) - ) - (func (export "type-f64-value") (result f64) - (block (result f64) (f64.neg (br 0 (f64.const 4)))) - ) - - (func (export "as-block-first") - (block (br 0) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (br 0) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (br 0)) - ) - (func (export "as-block-value") (result i32) - (block (result i32) (nop) (call $dummy) (br 0 (i32.const 2))) - ) - - (func (export "as-loop-first") (result i32) - (block (result i32) (loop (result i32) (br 1 (i32.const 3)) (i32.const 2))) - ) - (func (export "as-loop-mid") (result i32) - (block (result i32) - (loop (result i32) (call $dummy) (br 1 (i32.const 4)) (i32.const 2)) - ) - ) - (func (export "as-loop-last") (result i32) - (block (result i32) - (loop (result i32) (nop) (call $dummy) (br 1 (i32.const 5))) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (br 0 (i32.const 9)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (br 0))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (br 0 (i32.const 8)) (i32.const 1))) (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (br 0 (i32.const 9)))) (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (br 0))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (br 0 (i32.const 10)) (i32.const 1)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (br 0 (i32.const 11))) (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (block (result i64) (return (br 0 (i64.const 7)))) - ) - - (func (export "as-if-cond") (result i32) - (block (result i32) - (if (result i32) (br 0 (i32.const 2)) - (then (i32.const 0)) - (else (i32.const 1)) - ) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) (get_local 0) - (then (br 1 (i32.const 3))) - (else (get_local 1)) - ) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) (get_local 0) - (then (get_local 1)) - (else (br 1 (i32.const 4))) - ) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (block (result i32) - (select (br 0 (i32.const 5)) (get_local 0) (get_local 1)) - ) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (block (result i32) - (select (get_local 0) (br 0 (i32.const 6)) (get_local 1)) - ) - ) - (func (export "as-select-cond") (result i32) - (block (result i32) - (select (i32.const 0) (i32.const 1) (br 0 (i32.const 7))) - ) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (block (result i32) - (call $f (br 0 (i32.const 12)) (i32.const 2) (i32.const 3)) - ) - ) - (func (export "as-call-mid") (result i32) - (block (result i32) - (call $f (i32.const 1) (br 0 (i32.const 13)) (i32.const 3)) - ) - ) - (func (export "as-call-last") (result i32) - (block (result i32) - (call $f (i32.const 1) (i32.const 2) (br 0 (i32.const 14))) - ) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table anyfunc (elem $f)) - (func (export "as-call_indirect-func") (result i32) - (block (result i32) - (call_indirect (type $sig) - (br 0 (i32.const 20)) - (i32.const 1) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-first") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) - (br 0 (i32.const 21)) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) - (i32.const 1) (br 0 (i32.const 22)) (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) - (i32.const 1) (i32.const 2) (br 0 (i32.const 23)) - ) - ) - ) - - (func (export "as-set_local-value") (result i32) (local f32) - (block (result i32) (set_local 0 (br 0 (i32.const 17))) (i32.const -1)) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (block (result f32) (f32.load (br 0 (f32.const 1.7)))) - ) - (func (export "as-loadN-address") (result i64) - (block (result i64) (i64.load8_s (br 0 (i64.const 30)))) - ) - - (func (export "as-store-address") (result i32) - (block (result i32) - (f64.store (br 0 (i32.const 30)) (f64.const 7)) (i32.const -1) - ) - ) - (func (export "as-store-value") (result i32) - (block (result i32) - (i64.store (i32.const 2) (br 0 (i32.const 31))) (i32.const -1) - ) - ) - - (func (export "as-storeN-address") (result i32) - (block (result i32) - (i32.store8 (br 0 (i32.const 32)) (i32.const 7)) (i32.const -1) - ) - ) - (func (export "as-storeN-value") (result i32) - (block (result i32) - (i64.store16 (i32.const 2) (br 0 (i32.const 33))) (i32.const -1) - ) - ) - - (func (export "as-unary-operand") (result f32) - (block (result f32) (f32.neg (br 0 (f32.const 3.4)))) - ) - - (func (export "as-binary-left") (result i32) - (block (result i32) (i32.add (br 0 (i32.const 3)) (i32.const 10))) - ) - (func (export "as-binary-right") (result i64) - (block (result i64) (i64.sub (i64.const 10) (br 0 (i64.const 45)))) - ) - - (func (export "as-test-operand") (result i32) - (block (result i32) (i32.eqz (br 0 (i32.const 44)))) - ) - - (func (export "as-compare-left") (result i32) - (block (result i32) (f64.le (br 0 (i32.const 43)) (f64.const 10))) - ) - (func (export "as-compare-right") (result i32) - (block (result i32) (f32.ne (f32.const 10) (br 0 (i32.const 42)))) - ) - - (func (export "as-convert-operand") (result i32) - (block (result i32) (i32.wrap/i64 (br 0 (i32.const 41)))) - ) - - (func (export "as-memory.grow-size") (result i32) - (block (result i32) (memory.grow (br 0 (i32.const 40)))) - ) - - (func (export "nested-block-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (call $dummy) - (i32.add (i32.const 4) (br 0 (i32.const 8))) - ) - ) - ) - - (func (export "nested-br-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br 0 (br 1 (i32.const 8))) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (drop (br_if 0 (br 1 (i32.const 8)) (i32.const 1))) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop (br_if 0 (i32.const 4) (br 0 (i32.const 8)))) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br_table 0 (br 1 (i32.const 8)) (i32.const 1)) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value-index") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 (i32.const 4) (br 0 (i32.const 8))) - (i32.const 16) - ) - ) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "type-i32-value") (i32.const 1)) -(assert_return (invoke "type-i64-value") (i64.const 2)) -(assert_return (invoke "type-f32-value") (f32.const 3)) -(assert_return (invoke "type-f64-value") (f64.const 4)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index")) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-func") (i32.const 20)) -(assert_return (invoke "as-call_indirect-first") (i32.const 21)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 22)) -(assert_return (invoke "as-call_indirect-last") (i32.const 23)) - -(assert_return (invoke "as-set_local-value") (i32.const 17)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_return (invoke "nested-block-value") (i32.const 9)) -(assert_return (invoke "nested-br-value") (i32.const 9)) -(assert_return (invoke "nested-br_if-value") (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond") (i32.const 9)) -(assert_return (invoke "nested-br_table-value") (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index") (i32.const 9)) - -(assert_invalid - (module (func $type-arg-empty-vs-num (result i32) - (block (result i32) (br 0) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (result i32) (br 0 (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-num (result i32) - (block (result i32) (br 0 (i64.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $unbound-label (br 1))) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label (block (block (br 5))))) - "unknown label" -) -(assert_invalid - (module (func $large-label (br 0x10000001))) - "unknown label" -) diff --git a/tests/samples/br_if.wast b/tests/samples/br_if.wast deleted file mode 100644 index 0aa46d4..0000000 --- a/tests/samples/br_if.wast +++ /dev/null @@ -1,321 +0,0 @@ -;; Test `br_if` operator - -(module - (func $dummy) - - (func (export "as-block-first") (param i32) (result i32) - (block (br_if 0 (get_local 0)) (return (i32.const 2))) (i32.const 3) - ) - (func (export "as-block-mid") (param i32) (result i32) - (block (call $dummy) (br_if 0 (get_local 0)) (return (i32.const 2))) - (i32.const 3) - ) - (func (export "as-block-last") (param i32) - (block (call $dummy) (call $dummy) (br_if 0 (get_local 0))) - ) - (func (export "as-block-first-value") (param i32) (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 10) (get_local 0))) (return (i32.const 11)) - ) - ) - (func (export "as-block-mid-value") (param i32) (result i32) - (block (result i32) - (call $dummy) - (drop (br_if 0 (i32.const 20) (get_local 0))) - (return (i32.const 21)) - ) - ) - (func (export "as-block-last-value") (param i32) (result i32) - (block (result i32) - (call $dummy) (call $dummy) (br_if 0 (i32.const 11) (get_local 0)) - ) - ) - - (func (export "as-loop-first") (param i32) (result i32) - (block (loop (br_if 1 (get_local 0)) (return (i32.const 2)))) (i32.const 3) - ) - (func (export "as-loop-mid") (param i32) (result i32) - (block (loop (call $dummy) (br_if 1 (get_local 0)) (return (i32.const 2)))) - (i32.const 4) - ) - (func (export "as-loop-last") (param i32) - (loop (call $dummy) (br_if 1 (get_local 0))) - ) - - (func (export "as-if-then") (param i32 i32) - (block - (if (get_local 0) (then (br_if 1 (get_local 1))) (else (call $dummy))) - ) - ) - (func (export "as-if-else") (param i32 i32) - (block - (if (get_local 0) (then (call $dummy)) (else (br_if 1 (get_local 1)))) - ) - ) - - (func (export "nested-block-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (i32.add - (i32.const 4) - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) - (i32.const 16) - ) - ) - ) - ) - ) - - (func (export "nested-br-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br 0 - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 4) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop (br_if 0 - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 4) - ) - (i32.const 1) - )) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop (br_if 0 - (i32.const 4) - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 1) - ) - )) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 4) - ) - (i32.const 1) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value-index") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 - (i32.const 4) - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 1) - ) - ) - (i32.const 16) - ) - ) - ) -) - -(assert_return (invoke "as-block-first" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-block-first" (i32.const 1)) (i32.const 3)) -(assert_return (invoke "as-block-mid" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-block-mid" (i32.const 1)) (i32.const 3)) -(assert_return (invoke "as-block-last" (i32.const 0))) -(assert_return (invoke "as-block-last" (i32.const 1))) -(assert_return (invoke "as-block-last-value" (i32.const 0)) (i32.const 11)) -(assert_return (invoke "as-block-last-value" (i32.const 1)) (i32.const 11)) - -(assert_return (invoke "as-loop-first" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-loop-first" (i32.const 1)) (i32.const 3)) -(assert_return (invoke "as-loop-mid" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-loop-mid" (i32.const 1)) (i32.const 4)) -(assert_return (invoke "as-loop-last" (i32.const 0))) -(assert_return (invoke "as-loop-last" (i32.const 1))) - -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 0))) -(assert_return (invoke "as-if-then" (i32.const 4) (i32.const 0))) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 1))) -(assert_return (invoke "as-if-then" (i32.const 4) (i32.const 1))) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 0))) -(assert_return (invoke "as-if-else" (i32.const 3) (i32.const 0))) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 1))) -(assert_return (invoke "as-if-else" (i32.const 3) (i32.const 1))) - -(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 21)) -(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 9)) - -(assert_invalid - (module (func $type-false-i32 (block (i32.ctz (br_if 0 (i32.const 0)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-false-i64 (block (i64.ctz (br_if 0 (i32.const 0)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-false-f32 (block (f32.neg (br_if 0 (i32.const 0)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-false-f64 (block (f64.neg (br_if 0 (i32.const 0)))))) - "type mismatch" -) - -(assert_invalid - (module (func $type-true-i32 (block (i32.ctz (br_if 0 (i32.const 1)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-true-i64 (block (i64.ctz (br_if 0 (i64.const 1)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-true-f32 (block (f32.neg (br_if 0 (f32.const 1)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-true-f64 (block (f64.neg (br_if 0 (i64.const 1)))))) - "type mismatch" -) - -(assert_invalid - (module (func $type-false-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (i32.const 0)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-false-arg-num-vs-void - (block (br_if 0 (i32.const 0) (i32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-num-vs-void - (block (br_if 0 (i32.const 0) (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-false-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (nop) (i32.const 0)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (nop) (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-false-arg-num-vs-num (result i32) - (block (result i32) - (drop (br_if 0 (i64.const 1) (i32.const 0))) (i32.const 1) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-num-vs-num (result i32) - (block (result i32) - (drop (br_if 0 (i64.const 1) (i32.const 0))) (i32.const 1) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-cond-void-vs-i32 - (block (br_if 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-cond-num-vs-i32 - (block (br_if 0 (i64.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-cond-void-vs-i32 (result i32) - (block (result i32) (br_if 0 (i32.const 0) (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br_if 1 (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-cond-num-vs-i32 (result i32) - (block (result i32) (br_if 0 (i32.const 0) (i64.const 0)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $unbound-label (br_if 1 (i32.const 1)))) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label (block (block (br_if 5 (i32.const 1)))))) - "unknown label" -) -(assert_invalid - (module (func $large-label (br_if 0x10000001 (i32.const 1)))) - "unknown label" -) - diff --git a/tests/samples/br_table.wast b/tests/samples/br_table.wast deleted file mode 100644 index 81259ca..0000000 --- a/tests/samples/br_table.wast +++ /dev/null @@ -1,1515 +0,0 @@ -;; Test `br_table` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") - (block (drop (i32.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-i64") - (block (drop (i64.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f32") - (block (drop (f32.neg (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f64") - (block (drop (f64.neg (br_table 0 0 (i32.const 0))))) - ) - - (func (export "type-i32-value") (result i32) - (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0)))) - ) - (func (export "type-i64-value") (result i64) - (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0)))) - ) - (func (export "type-f32-value") (result f32) - (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0)))) - ) - (func (export "type-f64-value") (result f64) - (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0)))) - ) - - (func (export "empty") (param i32) (result i32) - (block (br_table 0 (get_local 0)) (return (i32.const 21))) - (i32.const 22) - ) - (func (export "empty-value") (param i32) (result i32) - (block (result i32) - (br_table 0 (i32.const 33) (get_local 0)) (i32.const 31) - ) - ) - - (func (export "singleton") (param i32) (result i32) - (block - (block - (br_table 1 0 (get_local 0)) - (return (i32.const 21)) - ) - (return (i32.const 20)) - ) - (i32.const 22) - ) - - (func (export "singleton-value") (param i32) (result i32) - (block (result i32) - (drop - (block (result i32) - (br_table 0 1 (i32.const 33) (get_local 0)) - (return (i32.const 31)) - ) - ) - (i32.const 32) - ) - ) - - (func (export "multiple") (param i32) (result i32) - (block - (block - (block - (block - (block - (br_table 3 2 1 0 4 (get_local 0)) - (return (i32.const 99)) - ) - (return (i32.const 100)) - ) - (return (i32.const 101)) - ) - (return (i32.const 102)) - ) - (return (i32.const 103)) - ) - (i32.const 104) - ) - - (func (export "multiple-value") (param i32) (result i32) - (local i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (br_table 3 2 1 0 4 (i32.const 200) (get_local 0)) - (return (i32.add (get_local 1) (i32.const 99))) - )) - (return (i32.add (get_local 1) (i32.const 10))) - )) - (return (i32.add (get_local 1) (i32.const 11))) - )) - (return (i32.add (get_local 1) (i32.const 12))) - )) - (return (i32.add (get_local 1) (i32.const 13))) - )) - (i32.add (get_local 1) (i32.const 14)) - ) - - (func (export "large") (param i32) (result i32) - (block - (block - (br_table - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - (get_local 0) - ) - (return (i32.const -1)) - ) - (return (i32.const 0)) - ) - (return (i32.const 1)) - ) - - (func (export "as-block-first") - (block (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0))) - ) - (func (export "as-block-value") (result i32) - (block (result i32) - (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0)) - ) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) - (call $dummy) - (br_table 1 1 1 (i32.const 4) (i32.const -1)) - (i32.const 2) - ) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) - (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1)) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (br 0 (i32.const 9)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (br_table 0 0 0 (i32.const 1)))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1))) - (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0)))) - (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (br_table 0 (i32.const 1)))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1)) - (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1))) - (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0)))) - ) - - (func (export "as-if-cond") (result i32) - (block (result i32) - (if (result i32) - (br_table 0 (i32.const 2) (i32.const 0)) - (then (i32.const 0)) - (else (i32.const 1)) - ) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (get_local 0) - (then (br_table 1 (i32.const 3) (i32.const 0))) - (else (get_local 1)) - ) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (get_local 0) - (then (get_local 1)) - (else (br_table 1 0 (i32.const 4) (i32.const 0))) - ) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (block (result i32) - (select - (br_table 0 (i32.const 5) (i32.const 0)) (get_local 0) (get_local 1) - ) - ) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (block (result i32) - (select - (get_local 0) (br_table 0 (i32.const 6) (i32.const 1)) (get_local 1) - ) - ) - ) - (func (export "as-select-cond") (result i32) - (block (result i32) - (select - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1)) - ) - ) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (block (result i32) - (call $f - (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call-mid") (result i32) - (block (result i32) - (call $f - (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3) - ) - ) - ) - (func (export "as-call-last") (result i32) - (block (result i32) - (call $f - (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1)) - ) - ) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table anyfunc (elem $f)) - (func (export "as-call_indirect-first") (result i32) - (block (result i32) - (call_indirect (type $sig) - (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1)) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-func") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) - (br_table 0 (i32.const 23) (i32.const 1)) - ) - ) - ) - - (func (export "as-set_local-value") (result i32) - (local f32) - (block (result i32) - (set_local 0 (br_table 0 (i32.const 17) (i32.const 1))) - (i32.const -1) - ) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1)))) - ) - (func (export "as-loadN-address") (result i64) - (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1)))) - ) - - (func (export "as-store-address") (result i32) - (block (result i32) - (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7)) - (i32.const -1) - ) - ) - (func (export "as-store-value") (result i32) - (block (result i32) - (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1))) - (i32.const -1) - ) - ) - - (func (export "as-storeN-address") (result i32) - (block (result i32) - (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7)) - (i32.const -1) - ) - ) - (func (export "as-storeN-value") (result i32) - (block (result i32) - (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0))) - (i32.const -1) - ) - ) - - (func (export "as-unary-operand") (result f32) - (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0)))) - ) - - (func (export "as-binary-left") (result i32) - (block (result i32) - (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10)) - ) - ) - (func (export "as-binary-right") (result i64) - (block (result i64) - (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0))) - ) - ) - - (func (export "as-test-operand") (result i32) - (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0)))) - ) - - (func (export "as-compare-left") (result i32) - (block (result i32) - (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10)) - ) - ) - (func (export "as-compare-right") (result i32) - (block (result i32) - (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0))) - ) - ) - - (func (export "as-convert-operand") (result i32) - (block (result i32) - (i32.wrap/i64 (br_table 0 (i32.const 41) (i32.const 0))) - ) - ) - - (func (export "as-memory.grow-size") (result i32) - (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0)))) - ) - - (func (export "nested-block-value") (param i32) (result i32) - (block (result i32) - (drop (i32.const -1)) - (i32.add - (i32.const 1) - (block (result i32) - (i32.add - (i32.const 2) - (block (result i32) - (drop (i32.const 4)) - (i32.add - (i32.const 8) - (br_table 0 1 2 (i32.const 16) (get_local 0)) - ) - ) - ) - ) - ) - ) - ) - - (func (export "nested-br-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br 0 (br_table 2 1 0 (i32.const 8) (get_local 0))) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (drop - (br_if 0 - (br_table 0 1 2 (i32.const 8) (get_local 0)) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (get_local 0))) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br_table 0 (br_table 0 1 2 (i32.const 8) (get_local 0)) (i32.const 1)) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value-index") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (get_local 0))) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-loop-block") (param i32) (result i32) - (set_local 0 - (loop (result i32) - (block - (br_table 1 0 0 (get_local 0)) - ) - (i32.const 0) - ) - ) - (loop (result i32) - (block - (br_table 0 1 1 (get_local 0)) - ) - (i32.const 3) - ) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "type-i32-value") (i32.const 1)) -(assert_return (invoke "type-i64-value") (i64.const 2)) -(assert_return (invoke "type-f32-value") (f32.const 3)) -(assert_return (invoke "type-f64-value") (f64.const 4)) - -(assert_return (invoke "empty" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 11)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -100)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22)) - -(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20)) - -(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103)) -(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102)) -(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101)) -(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100)) -(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104)) - -(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213)) -(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212)) -(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211)) -(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210)) -(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214)) - -(assert_return (invoke "large" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 100)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 101)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 10000)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 10001)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index")) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-first") (i32.const 20)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 21)) -(assert_return (invoke "as-call_indirect-last") (i32.const 22)) -(assert_return (invoke "as-call_indirect-func") (i32.const 23)) - -(assert_return (invoke "as-set_local-value") (i32.const 17)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19)) -(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17)) -(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16)) - -(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8)) -(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17)) - -(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3)) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (br_table 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-num (result i32) - (block (result i32) - (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-arg-num - (block - (block (result f32) - (br_table 0 1 (f32.const 0) (i32.const 0)) - ) - (drop) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-index-void-vs-i32 - (block (br_table 0 0 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-index-num-vs-i32 - (block (br_table 0 (i64.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-void-vs-i32 (result i32) - (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-num-vs-i32 (result i32) - (block (result i32) - (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $unbound-label - (block (br_table 2 1 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label - (block (br_table 0 0x10000001 0 (i32.const 1))) - )) - "unknown label" -) - -(assert_invalid - (module (func $unbound-label-default - (block (br_table 1 2 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label-default - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label-default - (block (br_table 0 0 0x10000001 (i32.const 1))) - )) - "unknown label" -) - diff --git a/tests/samples/break-drop.wast b/tests/samples/break-drop.wast deleted file mode 100644 index e10df66..0000000 --- a/tests/samples/break-drop.wast +++ /dev/null @@ -1,9 +0,0 @@ -(module - (func (export "br") (block (br 0))) - (func (export "br_if") (block (br_if 0 (i32.const 1)))) - (func (export "br_table") (block (br_table 0 (i32.const 0)))) -) - -(assert_return (invoke "br")) -(assert_return (invoke "br_if")) -(assert_return (invoke "br_table")) diff --git a/tests/samples/call.wast b/tests/samples/call.wast deleted file mode 100644 index 3a89f23..0000000 --- a/tests/samples/call.wast +++ /dev/null @@ -1,242 +0,0 @@ -;; Test `call` operator - -(module - ;; Auxiliary definitions - (func $const-i32 (result i32) (i32.const 0x132)) - (func $const-i64 (result i64) (i64.const 0x164)) - (func $const-f32 (result f32) (f32.const 0xf32)) - (func $const-f64 (result f64) (f64.const 0xf64)) - - (func $id-i32 (param i32) (result i32) (get_local 0)) - (func $id-i64 (param i64) (result i64) (get_local 0)) - (func $id-f32 (param f32) (result f32) (get_local 0)) - (func $id-f64 (param f64) (result f64) (get_local 0)) - - (func $f32-i32 (param f32 i32) (result i32) (get_local 1)) - (func $i32-i64 (param i32 i64) (result i64) (get_local 1)) - (func $f64-f32 (param f64 f32) (result f32) (get_local 1)) - (func $i64-f64 (param i64 f64) (result f64) (get_local 1)) - - ;; Typing - - (func (export "type-i32") (result i32) (call $const-i32)) - (func (export "type-i64") (result i64) (call $const-i64)) - (func (export "type-f32") (result f32) (call $const-f32)) - (func (export "type-f64") (result f64) (call $const-f64)) - - (func (export "type-first-i32") (result i32) (call $id-i32 (i32.const 32))) - (func (export "type-first-i64") (result i64) (call $id-i64 (i64.const 64))) - (func (export "type-first-f32") (result f32) (call $id-f32 (f32.const 1.32))) - (func (export "type-first-f64") (result f64) (call $id-f64 (f64.const 1.64))) - - (func (export "type-second-i32") (result i32) - (call $f32-i32 (f32.const 32.1) (i32.const 32)) - ) - (func (export "type-second-i64") (result i64) - (call $i32-i64 (i32.const 32) (i64.const 64)) - ) - (func (export "type-second-f32") (result f32) - (call $f64-f32 (f64.const 64) (f32.const 32)) - ) - (func (export "type-second-f64") (result f64) - (call $i64-f64 (i64.const 64) (f64.const 64.1)) - ) - - ;; Recursion - - (func $fac (export "fac") (param i64) (result i64) - (if (result i64) (i64.eqz (get_local 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local 0) - (call $fac (i64.sub (get_local 0) (i64.const 1))) - ) - ) - ) - ) - - (func $fac-acc (export "fac-acc") (param i64 i64) (result i64) - (if (result i64) (i64.eqz (get_local 0)) - (then (get_local 1)) - (else - (call $fac-acc - (i64.sub (get_local 0) (i64.const 1)) - (i64.mul (get_local 0) (get_local 1)) - ) - ) - ) - ) - - (func $fib (export "fib") (param i64) (result i64) - (if (result i64) (i64.le_u (get_local 0) (i64.const 1)) - (then (i64.const 1)) - (else - (i64.add - (call $fib (i64.sub (get_local 0) (i64.const 2))) - (call $fib (i64.sub (get_local 0) (i64.const 1))) - ) - ) - ) - ) - - (func $even (export "even") (param i64) (result i32) - (if (result i32) (i64.eqz (get_local 0)) - (then (i32.const 44)) - (else (call $odd (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - (func $odd (export "odd") (param i64) (result i32) - (if (result i32) (i64.eqz (get_local 0)) - (then (i32.const 99)) - (else (call $even (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - - ;; Stack exhaustion - - ;; Implementations are required to have every call consume some abstract - ;; resource towards exhausting some abstract finite limit, such that - ;; infinitely recursive test cases reliably trap in finite time. This is - ;; because otherwise applications could come to depend on it on those - ;; implementations and be incompatible with implementations that don't do - ;; it (or don't do it under the same circumstances). - - (func $runaway (export "runaway") (call $runaway)) - - (func $mutual-runaway1 (export "mutual-runaway") (call $mutual-runaway2)) - (func $mutual-runaway2 (call $mutual-runaway1)) -) - -(assert_return (invoke "type-i32") (i32.const 0x132)) -(assert_return (invoke "type-i64") (i64.const 0x164)) -(assert_return (invoke "type-f32") (f32.const 0xf32)) -(assert_return (invoke "type-f64") (f64.const 0xf64)) - -(assert_return (invoke "type-first-i32") (i32.const 32)) -(assert_return (invoke "type-first-i64") (i64.const 64)) -(assert_return (invoke "type-first-f32") (f32.const 1.32)) -(assert_return (invoke "type-first-f64") (f64.const 1.64)) - -(assert_return (invoke "type-second-i32") (i32.const 32)) -(assert_return (invoke "type-second-i64") (i64.const 64)) -(assert_return (invoke "type-second-f32") (f32.const 32)) -(assert_return (invoke "type-second-f64") (f64.const 64.1)) - -(assert_return (invoke "fac" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 5)) (i64.const 120)) -(assert_return (invoke "fac" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-acc" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac-acc" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac-acc" (i64.const 5) (i64.const 1)) (i64.const 120)) -(assert_return - (invoke "fac-acc" (i64.const 25) (i64.const 1)) - (i64.const 7034535277573963776) -) - -(assert_return (invoke "fib" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 2)) (i64.const 2)) -(assert_return (invoke "fib" (i64.const 5)) (i64.const 8)) -(assert_return (invoke "fib" (i64.const 20)) (i64.const 10946)) - -(assert_return (invoke "even" (i64.const 0)) (i32.const 44)) -(assert_return (invoke "even" (i64.const 1)) (i32.const 99)) -(assert_return (invoke "even" (i64.const 100)) (i32.const 44)) -(assert_return (invoke "even" (i64.const 77)) (i32.const 99)) -(assert_return (invoke "odd" (i64.const 0)) (i32.const 99)) -(assert_return (invoke "odd" (i64.const 1)) (i32.const 44)) -(assert_return (invoke "odd" (i64.const 200)) (i32.const 99)) -(assert_return (invoke "odd" (i64.const 77)) (i32.const 44)) - -(assert_exhaustion (invoke "runaway") "call stack exhausted") -(assert_exhaustion (invoke "mutual-runaway") "call stack exhausted") - - -;; Invalid typing - -(assert_invalid - (module - (func $type-void-vs-num (i32.eqz (call 1))) - (func) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-num-vs-num (i32.eqz (call 1))) - (func (result i64) (i64.const 1)) - ) - "type mismatch" -) - -(assert_invalid - (module - (func $arity-0-vs-1 (call 1)) - (func (param i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $arity-0-vs-2 (call 1)) - (func (param f64 i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $arity-1-vs-0 (call 1 (i32.const 1))) - (func) - ) - "type mismatch" -) -(assert_invalid - (module - (func $arity-2-vs-0 (call 1 (f64.const 2) (i32.const 1))) - (func) - ) - "type mismatch" -) - -(assert_invalid - (module - (func $type-first-void-vs-num (call 1 (nop) (i32.const 1))) - (func (param i32 i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-second-void-vs-num (call 1 (i32.const 1) (nop))) - (func (param i32 i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-first-num-vs-num (call 1 (f64.const 1) (i32.const 1))) - (func (param i32 f64)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-second-num-vs-num (call 1 (i32.const 1) (f64.const 1))) - (func (param f64 i32)) - ) - "type mismatch" -) - - -;; Unbound function - -(assert_invalid - (module (func $unbound-func (call 1))) - "unknown function" -) -(assert_invalid - (module (func $large-func (call 1012321300))) - "unknown function" -) diff --git a/tests/samples/call_indirect.wast b/tests/samples/call_indirect.wast deleted file mode 100644 index e1fa417..0000000 --- a/tests/samples/call_indirect.wast +++ /dev/null @@ -1,536 +0,0 @@ -;; Test `call_indirect` operator - -(module - ;; Auxiliary definitions - (type $proc (func)) - (type $out-i32 (func (result i32))) - (type $out-i64 (func (result i64))) - (type $out-f32 (func (result f32))) - (type $out-f64 (func (result f64))) - (type $over-i32 (func (param i32) (result i32))) - (type $over-i64 (func (param i64) (result i64))) - (type $over-f32 (func (param f32) (result f32))) - (type $over-f64 (func (param f64) (result f64))) - (type $f32-i32 (func (param f32 i32) (result i32))) - (type $i32-i64 (func (param i32 i64) (result i64))) - (type $f64-f32 (func (param f64 f32) (result f32))) - (type $i64-f64 (func (param i64 f64) (result f64))) - (type $over-i32-duplicate (func (param i32) (result i32))) - (type $over-i64-duplicate (func (param i64) (result i64))) - (type $over-f32-duplicate (func (param f32) (result f32))) - (type $over-f64-duplicate (func (param f64) (result f64))) - - (func $const-i32 (type $out-i32) (i32.const 0x132)) - (func $const-i64 (type $out-i64) (i64.const 0x164)) - (func $const-f32 (type $out-f32) (f32.const 0xf32)) - (func $const-f64 (type $out-f64) (f64.const 0xf64)) - - (func $id-i32 (type $over-i32) (get_local 0)) - (func $id-i64 (type $over-i64) (get_local 0)) - (func $id-f32 (type $over-f32) (get_local 0)) - (func $id-f64 (type $over-f64) (get_local 0)) - - (func $i32-i64 (type $i32-i64) (get_local 1)) - (func $i64-f64 (type $i64-f64) (get_local 1)) - (func $f32-i32 (type $f32-i32) (get_local 1)) - (func $f64-f32 (type $f64-f32) (get_local 1)) - - (func $over-i32-duplicate (type $over-i32-duplicate) (get_local 0)) - (func $over-i64-duplicate (type $over-i64-duplicate) (get_local 0)) - (func $over-f32-duplicate (type $over-f32-duplicate) (get_local 0)) - (func $over-f64-duplicate (type $over-f64-duplicate) (get_local 0)) - - (table anyfunc - (elem - $const-i32 $const-i64 $const-f32 $const-f64 - $id-i32 $id-i64 $id-f32 $id-f64 - $f32-i32 $i32-i64 $f64-f32 $i64-f64 - $fac $fib $even $odd - $runaway $mutual-runaway1 $mutual-runaway2 - $over-i32-duplicate $over-i64-duplicate - $over-f32-duplicate $over-f64-duplicate - ) - ) - - ;; Syntax - - (func - (call_indirect (i32.const 0)) - (call_indirect (param i64) (i64.const 0) (i32.const 0)) - (call_indirect (param i64) (param) (param f64 i32 i64) - (i64.const 0) (f64.const 0) (i32.const 0) (i64.const 0) (i32.const 0) - ) - (call_indirect (result) (i32.const 0)) - (drop (i32.eqz (call_indirect (result i32) (i32.const 0)))) - (drop (i32.eqz (call_indirect (result i32) (result) (i32.const 0)))) - (drop (i32.eqz - (call_indirect (param i64) (result i32) (i64.const 0) (i32.const 0)) - )) - (drop (i32.eqz - (call_indirect - (param) (param i64) (param) (param f64 i32 i64) (param) (param) - (result) (result i32) (result) (result) - (i64.const 0) (f64.const 0) (i32.const 0) (i64.const 0) (i32.const 0) - ) - )) - (drop (i64.eqz - (call_indirect (type $over-i64) (param i64) (result i64) - (i64.const 0) (i32.const 0) - ) - )) - ) - - ;; Typing - - (func (export "type-i32") (result i32) - (call_indirect (type $out-i32) (i32.const 0)) - ) - (func (export "type-i64") (result i64) - (call_indirect (type $out-i64) (i32.const 1)) - ) - (func (export "type-f32") (result f32) - (call_indirect (type $out-f32) (i32.const 2)) - ) - (func (export "type-f64") (result f64) - (call_indirect (type $out-f64) (i32.const 3)) - ) - - (func (export "type-index") (result i64) - (call_indirect (type $over-i64) (i64.const 100) (i32.const 5)) - ) - - (func (export "type-first-i32") (result i32) - (call_indirect (type $over-i32) (i32.const 32) (i32.const 4)) - ) - (func (export "type-first-i64") (result i64) - (call_indirect (type $over-i64) (i64.const 64) (i32.const 5)) - ) - (func (export "type-first-f32") (result f32) - (call_indirect (type $over-f32) (f32.const 1.32) (i32.const 6)) - ) - (func (export "type-first-f64") (result f64) - (call_indirect (type $over-f64) (f64.const 1.64) (i32.const 7)) - ) - - (func (export "type-second-i32") (result i32) - (call_indirect (type $f32-i32) (f32.const 32.1) (i32.const 32) (i32.const 8)) - ) - (func (export "type-second-i64") (result i64) - (call_indirect (type $i32-i64) (i32.const 32) (i64.const 64) (i32.const 9)) - ) - (func (export "type-second-f32") (result f32) - (call_indirect (type $f64-f32) (f64.const 64) (f32.const 32) (i32.const 10)) - ) - (func (export "type-second-f64") (result f64) - (call_indirect (type $i64-f64) (i64.const 64) (f64.const 64.1) (i32.const 11)) - ) - - ;; Dispatch - - (func (export "dispatch") (param i32 i64) (result i64) - (call_indirect (type $over-i64) (get_local 1) (get_local 0)) - ) - - (func (export "dispatch-structural") (param i32) (result i64) - (call_indirect (type $over-i64-duplicate) (i64.const 9) (get_local 0)) - ) - - ;; Recursion - - (func $fac (export "fac") (type $over-i64) - (if (result i64) (i64.eqz (get_local 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local 0) - (call_indirect (type $over-i64) - (i64.sub (get_local 0) (i64.const 1)) - (i32.const 12) - ) - ) - ) - ) - ) - - (func $fib (export "fib") (type $over-i64) - (if (result i64) (i64.le_u (get_local 0) (i64.const 1)) - (then (i64.const 1)) - (else - (i64.add - (call_indirect (type $over-i64) - (i64.sub (get_local 0) (i64.const 2)) - (i32.const 13) - ) - (call_indirect (type $over-i64) - (i64.sub (get_local 0) (i64.const 1)) - (i32.const 13) - ) - ) - ) - ) - ) - - (func $even (export "even") (param i32) (result i32) - (if (result i32) (i32.eqz (get_local 0)) - (then (i32.const 44)) - (else - (call_indirect (type $over-i32) - (i32.sub (get_local 0) (i32.const 1)) - (i32.const 15) - ) - ) - ) - ) - (func $odd (export "odd") (param i32) (result i32) - (if (result i32) (i32.eqz (get_local 0)) - (then (i32.const 99)) - (else - (call_indirect (type $over-i32) - (i32.sub (get_local 0) (i32.const 1)) - (i32.const 14) - ) - ) - ) - ) - - ;; Stack exhaustion - - ;; Implementations are required to have every call consume some abstract - ;; resource towards exhausting some abstract finite limit, such that - ;; infinitely recursive test cases reliably trap in finite time. This is - ;; because otherwise applications could come to depend on it on those - ;; implementations and be incompatible with implementations that don't do - ;; it (or don't do it under the same circumstances). - - (func $runaway (export "runaway") (call_indirect (type $proc) (i32.const 16))) - - (func $mutual-runaway1 (export "mutual-runaway") (call_indirect (type $proc) (i32.const 18))) - (func $mutual-runaway2 (call_indirect (type $proc) (i32.const 17))) -) - -(assert_return (invoke "type-i32") (i32.const 0x132)) -(assert_return (invoke "type-i64") (i64.const 0x164)) -(assert_return (invoke "type-f32") (f32.const 0xf32)) -(assert_return (invoke "type-f64") (f64.const 0xf64)) - -(assert_return (invoke "type-index") (i64.const 100)) - -(assert_return (invoke "type-first-i32") (i32.const 32)) -(assert_return (invoke "type-first-i64") (i64.const 64)) -(assert_return (invoke "type-first-f32") (f32.const 1.32)) -(assert_return (invoke "type-first-f64") (f64.const 1.64)) - -(assert_return (invoke "type-second-i32") (i32.const 32)) -(assert_return (invoke "type-second-i64") (i64.const 64)) -(assert_return (invoke "type-second-f32") (f32.const 32)) -(assert_return (invoke "type-second-f64") (f64.const 64.1)) - -(assert_return (invoke "dispatch" (i32.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "dispatch" (i32.const 5) (i64.const 5)) (i64.const 5)) -(assert_return (invoke "dispatch" (i32.const 12) (i64.const 5)) (i64.const 120)) -(assert_return (invoke "dispatch" (i32.const 13) (i64.const 5)) (i64.const 8)) -(assert_return (invoke "dispatch" (i32.const 20) (i64.const 2)) (i64.const 2)) -(assert_trap (invoke "dispatch" (i32.const 0) (i64.const 2)) "indirect call type mismatch") -(assert_trap (invoke "dispatch" (i32.const 15) (i64.const 2)) "indirect call type mismatch") -(assert_trap (invoke "dispatch" (i32.const 23) (i64.const 2)) "undefined element") -(assert_trap (invoke "dispatch" (i32.const -1) (i64.const 2)) "undefined element") -(assert_trap (invoke "dispatch" (i32.const 1213432423) (i64.const 2)) "undefined element") - -(assert_return (invoke "dispatch-structural" (i32.const 5)) (i64.const 9)) -(assert_return (invoke "dispatch-structural" (i32.const 5)) (i64.const 9)) -(assert_return (invoke "dispatch-structural" (i32.const 12)) (i64.const 362880)) -(assert_return (invoke "dispatch-structural" (i32.const 20)) (i64.const 9)) -(assert_trap (invoke "dispatch-structural" (i32.const 11)) "indirect call type mismatch") -(assert_trap (invoke "dispatch-structural" (i32.const 22)) "indirect call type mismatch") - -(assert_return (invoke "fac" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 5)) (i64.const 120)) -(assert_return (invoke "fac" (i64.const 25)) (i64.const 7034535277573963776)) - -(assert_return (invoke "fib" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 2)) (i64.const 2)) -(assert_return (invoke "fib" (i64.const 5)) (i64.const 8)) -(assert_return (invoke "fib" (i64.const 20)) (i64.const 10946)) - -(assert_return (invoke "even" (i32.const 0)) (i32.const 44)) -(assert_return (invoke "even" (i32.const 1)) (i32.const 99)) -(assert_return (invoke "even" (i32.const 100)) (i32.const 44)) -(assert_return (invoke "even" (i32.const 77)) (i32.const 99)) -(assert_return (invoke "odd" (i32.const 0)) (i32.const 99)) -(assert_return (invoke "odd" (i32.const 1)) (i32.const 44)) -(assert_return (invoke "odd" (i32.const 200)) (i32.const 99)) -(assert_return (invoke "odd" (i32.const 77)) (i32.const 44)) - -(assert_exhaustion (invoke "runaway") "call stack exhausted") -(assert_exhaustion (invoke "mutual-runaway") "call stack exhausted") - - -;; Invalid syntax - -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (result i32) (param i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (param i32) (type $sig) (result i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (param i32) (result i32) (type $sig)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (result i32) (type $sig) (param i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (result i32) (param i32) (type $sig)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (result i32) (param i32) (i32.const 0) (i32.const 0))" - ")" - ) - "unexpected token" -) - -(assert_malformed - (module quote - "(table 0 anyfunc)" - "(func (call_indirect (param $x i32) (i32.const 0) (i32.const 0)))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (result i32) (i32.const 0))" - ")" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (result i32) (i32.const 0))" - ")" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func" - " (call_indirect (type $sig) (param i32) (i32.const 0) (i32.const 0))" - ")" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32 i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (param i32) (result i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "inline function type" -) - -;; Invalid typing - -(assert_invalid - (module - (type (func)) - (func $no-table (call_indirect (type 0) (i32.const 0))) - ) - "unknown table" -) - -(assert_invalid - (module - (type (func)) - (table 0 anyfunc) - (func $type-void-vs-num (i32.eqz (call_indirect (type 0) (i32.const 0)))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (result i64))) - (table 0 anyfunc) - (func $type-num-vs-num (i32.eqz (call_indirect (type 0) (i32.const 0)))) - ) - "type mismatch" -) - -(assert_invalid - (module - (type (func (param i32))) - (table 0 anyfunc) - (func $arity-0-vs-1 (call_indirect (type 0) (i32.const 0))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param f64 i32))) - (table 0 anyfunc) - (func $arity-0-vs-2 (call_indirect (type 0) (i32.const 0))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func)) - (table 0 anyfunc) - (func $arity-1-vs-0 (call_indirect (type 0) (i32.const 1) (i32.const 0))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func)) - (table 0 anyfunc) - (func $arity-2-vs-0 - (call_indirect (type 0) (f64.const 2) (i32.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) - -(assert_invalid - (module - (type (func (param i32))) - (table 0 anyfunc) - (func $type-func-void-vs-i32 (call_indirect (type 0) (i32.const 1) (nop))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param i32))) - (table 0 anyfunc) - (func $type-func-num-vs-i32 (call_indirect (type 0) (i32.const 0) (i64.const 1))) - ) - "type mismatch" -) - -(assert_invalid - (module - (type (func (param i32 i32))) - (table 0 anyfunc) - (func $type-first-void-vs-num - (call_indirect (type 0) (nop) (i32.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param i32 i32))) - (table 0 anyfunc) - (func $type-second-void-vs-num - (call_indirect (type 0) (i32.const 1) (nop) (i32.const 0)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param i32 f64))) - (table 0 anyfunc) - (func $type-first-num-vs-num - (call_indirect (type 0) (f64.const 1) (i32.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param f64 i32))) - (table 0 anyfunc) - (func $type-second-num-vs-num - (call_indirect (type 0) (i32.const 1) (f64.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) - - -;; Unbound type - -(assert_invalid - (module - (table 0 anyfunc) - (func $unbound-type (call_indirect (type 1) (i32.const 0))) - ) - "unknown type" -) -(assert_invalid - (module - (table 0 anyfunc) - (func $large-type (call_indirect (type 1012321300) (i32.const 0))) - ) - "unknown type" -) - - -;; Unbound function in table - -(assert_invalid - (module (table anyfunc (elem 0 0))) - "unknown function 0" -) diff --git a/tests/samples/comments.wast b/tests/samples/comments.wast deleted file mode 100644 index 90a64b42d9ec854f6522e940c0466eb6c1ca6de9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmcDvRtQNgE>TF%&&^HED^Vz}%qvN(;Nr5jhKhig)-b@urJ$gofF!4Z#L3N1Da}bm zNNOUOT-Mf_T-Fdm0nAj;u;${@0EuvEz^t;?1PehehVsxPVJ-pDVC5Qc05X_M!&(yo zAVxsVQ$ppTbHRLTYX!$(XHQQB0|Q+{Hys6YH!clp21X`k7FITP4o)s^9$r3v0YM>Q z5m7O52}vnw8Cf~`dWgXushNl8rz(UW-cwXulAMv62N8ZhW7hjgD 8000 0000 -(assert_return (invoke "i32.trunc_u_f32" (f32.const 4294967040.0)) (i32.const -256)) -(assert_return (invoke "i32.trunc_u_f32" (f32.const -0x1.ccccccp-1)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f32" (f32.const -0x1.fffffep-1)) (i32.const 0)) -(assert_trap (invoke "i32.trunc_u_f32" (f32.const 4294967296.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -1.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const nan:0x200000)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -nan:0x200000)) "invalid conversion to integer") - -(assert_return (invoke "i32.trunc_s_f64" (f64.const 0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 1.0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 0x1.199999999999ap+0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 1.5)) (i32.const 1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -1.0)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -0x1.199999999999ap+0)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -1.5)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -1.9)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -2.0)) (i32.const -2)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 2147483647.0)) (i32.const 2147483647)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -2147483648.0)) (i32.const -2147483648)) -(assert_trap (invoke "i32.trunc_s_f64" (f64.const 2147483648.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -2147483649.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "i32.trunc_u_f64" (f64.const 0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1.0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 0x1.199999999999ap+0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1.5)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1.9)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 2.0)) (i32.const 2)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 2147483648)) (i32.const -2147483648)) ;; 0x1.00000p+31 -> 8000 0000 -(assert_return (invoke "i32.trunc_u_f64" (f64.const 4294967295.0)) (i32.const -1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0x1.ccccccccccccdp-1)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0x1.fffffffffffffp-1)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1e8)) (i32.const 100000000)) -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 4294967296.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -1.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 1e16)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 1e30)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 9223372036854775808)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_s_f32" (f32.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 0x1.19999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -1.0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -0x1.19999ap+0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -1.5)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -1.9)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -2.0)) (i64.const -2)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 4294967296)) (i64.const 4294967296)) ;; 0x1.00000p+32 -> 1 0000 0000 -(assert_return (invoke "i64.trunc_s_f32" (f32.const -4294967296)) (i64.const -4294967296)) ;; -0x1.00000p+32 -> ffff ffff 0000 0000 -(assert_return (invoke "i64.trunc_s_f32" (f32.const 9223371487098961920.0)) (i64.const 9223371487098961920)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -9223372036854775808.0)) (i64.const -9223372036854775808)) -(assert_trap (invoke "i64.trunc_s_f32" (f32.const 9223372036854775808.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -9223373136366403584.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const nan:0x200000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -nan:0x200000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_u_f32" (f32.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 0x1.19999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 4294967296)) (i64.const 4294967296)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 18446742974197923840.0)) (i64.const -1099511627776)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0x1.ccccccp-1)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0x1.fffffep-1)) (i64.const 0)) -(assert_trap (invoke "i64.trunc_u_f32" (f32.const 18446744073709551616.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -1.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const nan:0x200000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -nan:0x200000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_s_f64" (f64.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 0x1.199999999999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -1.0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -0x1.199999999999ap+0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -1.5)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -1.9)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -2.0)) (i64.const -2)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 4294967296)) (i64.const 4294967296)) ;; 0x1.00000p+32 -> 1 0000 0000 -(assert_return (invoke "i64.trunc_s_f64" (f64.const -4294967296)) (i64.const -4294967296)) ;; -0x1.00000p+32 -> ffff ffff 0000 0000 -(assert_return (invoke "i64.trunc_s_f64" (f64.const 9223372036854774784.0)) (i64.const 9223372036854774784)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -9223372036854775808.0)) (i64.const -9223372036854775808)) -(assert_trap (invoke "i64.trunc_s_f64" (f64.const 9223372036854775808.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -9223372036854777856.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_u_f64" (f64.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 0x1.199999999999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 4294967295)) (i64.const 0xffffffff)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 4294967296)) (i64.const 0x100000000)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 18446744073709549568.0)) (i64.const -2048)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0x1.ccccccccccccdp-1)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0x1.fffffffffffffp-1)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1e8)) (i64.const 100000000)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1e16)) (i64.const 10000000000000000)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 9223372036854775808)) (i64.const -9223372036854775808)) -(assert_trap (invoke "i64.trunc_u_f64" (f64.const 18446744073709551616.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -1.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "f32.convert_s_i32" (i32.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -1)) (f32.const -1.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 2147483647)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -2147483648)) (f32.const -2147483648)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 1234567890)) (f32.const 0x1.26580cp+30)) -;; Test rounding directions. -(assert_return (invoke "f32.convert_s_i32" (i32.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -16777217)) (f32.const -16777216.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 16777219)) (f32.const 16777220.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -16777219)) (f32.const -16777220.0)) - -(assert_return (invoke "f32.convert_s_i64" (i64.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -1)) (f32.const -1.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 9223372036854775807)) (f32.const 9223372036854775807)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -9223372036854775808)) (f32.const -9223372036854775808)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 314159265358979)) (f32.const 0x1.1db9e8p+48)) ;; PI -;; Test rounding directions. -(assert_return (invoke "f32.convert_s_i64" (i64.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -16777217)) (f32.const -16777216.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 16777219)) (f32.const 16777220.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -16777219)) (f32.const -16777220.0)) - -(assert_return (invoke "f64.convert_s_i32" (i32.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_s_i32" (i32.const -1)) (f64.const -1.0)) -(assert_return (invoke "f64.convert_s_i32" (i32.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_s_i32" (i32.const 2147483647)) (f64.const 2147483647)) -(assert_return (invoke "f64.convert_s_i32" (i32.const -2147483648)) (f64.const -2147483648)) -(assert_return (invoke "f64.convert_s_i32" (i32.const 987654321)) (f64.const 987654321)) - -(assert_return (invoke "f64.convert_s_i64" (i64.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -1)) (f64.const -1.0)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 9223372036854775807)) (f64.const 9223372036854775807)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -9223372036854775808)) (f64.const -9223372036854775808)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 4669201609102990)) (f64.const 4669201609102990)) ;; Feigenbaum -;; Test rounding directions. -(assert_return (invoke "f64.convert_s_i64" (i64.const 9007199254740993)) (f64.const 9007199254740992)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -9007199254740993)) (f64.const -9007199254740992)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 9007199254740995)) (f64.const 9007199254740996)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -9007199254740995)) (f64.const -9007199254740996)) - -(assert_return (invoke "f32.convert_u_i32" (i32.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 2147483647)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_u_i32" (i32.const -2147483648)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x12345678)) (f32.const 0x1.234568p+28)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xffffffff)) (f32.const 4294967296.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x80000080)) (f32.const 0x1.000000p+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x80000081)) (f32.const 0x1.000002p+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x80000082)) (f32.const 0x1.000002p+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xfffffe80)) (f32.const 0x1.fffffcp+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xfffffe81)) (f32.const 0x1.fffffep+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xfffffe82)) (f32.const 0x1.fffffep+31)) -;; Test rounding directions. -(assert_return (invoke "f32.convert_u_i32" (i32.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 16777219)) (f32.const 16777220.0)) - -(assert_return (invoke "f32.convert_u_i64" (i64.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 9223372036854775807)) (f32.const 9223372036854775807)) -(assert_return (invoke "f32.convert_u_i64" (i64.const -9223372036854775808)) (f32.const 9223372036854775808)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 0xffffffffffffffff)) (f32.const 18446744073709551616.0)) -;; Test rounding directions. -(assert_return (invoke "f32.convert_u_i64" (i64.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 16777219)) (f32.const 16777220.0)) - -(assert_return (invoke "f64.convert_u_i32" (i32.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_u_i32" (i32.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_u_i32" (i32.const 2147483647)) (f64.const 2147483647)) -(assert_return (invoke "f64.convert_u_i32" (i32.const -2147483648)) (f64.const 2147483648)) -(assert_return (invoke "f64.convert_u_i32" (i32.const 0xffffffff)) (f64.const 4294967295.0)) - -(assert_return (invoke "f64.convert_u_i64" (i64.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 9223372036854775807)) (f64.const 9223372036854775807)) -(assert_return (invoke "f64.convert_u_i64" (i64.const -9223372036854775808)) (f64.const 9223372036854775808)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xffffffffffffffff)) (f64.const 18446744073709551616.0)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0x8000000000000400)) (f64.const 0x1.0000000000000p+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0x8000000000000401)) (f64.const 0x1.0000000000001p+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0x8000000000000402)) (f64.const 0x1.0000000000001p+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xfffffffffffff400)) (f64.const 0x1.ffffffffffffep+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xfffffffffffff401)) (f64.const 0x1.fffffffffffffp+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xfffffffffffff402)) (f64.const 0x1.fffffffffffffp+63)) -;; Test rounding directions. -(assert_return (invoke "f64.convert_u_i64" (i64.const 9007199254740993)) (f64.const 9007199254740992)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 9007199254740995)) (f64.const 9007199254740996)) - -(assert_return (invoke "f64.promote_f32" (f32.const 0.0)) (f64.const 0.0)) -(assert_return (invoke "f64.promote_f32" (f32.const -0.0)) (f64.const -0.0)) -(assert_return (invoke "f64.promote_f32" (f32.const 0x1p-149)) (f64.const 0x1p-149)) -(assert_return (invoke "f64.promote_f32" (f32.const -0x1p-149)) (f64.const -0x1p-149)) -(assert_return (invoke "f64.promote_f32" (f32.const 1.0)) (f64.const 1.0)) -(assert_return (invoke "f64.promote_f32" (f32.const -1.0)) (f64.const -1.0)) -(assert_return (invoke "f64.promote_f32" (f32.const -0x1.fffffep+127)) (f64.const -0x1.fffffep+127)) -(assert_return (invoke "f64.promote_f32" (f32.const 0x1.fffffep+127)) (f64.const 0x1.fffffep+127)) -;; Generated randomly by picking a random int and reinterpret it to float. -(assert_return (invoke "f64.promote_f32" (f32.const 0x1p-119)) (f64.const 0x1p-119)) -;; Generated randomly by picking a random float. -(assert_return (invoke "f64.promote_f32" (f32.const 0x1.8f867ep+125)) (f64.const 6.6382536710104395e+37)) -(assert_return (invoke "f64.promote_f32" (f32.const inf)) (f64.const inf)) -(assert_return (invoke "f64.promote_f32" (f32.const -inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "f64.promote_f32" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "f64.promote_f32" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f64.promote_f32" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "f64.promote_f32" (f32.const -nan:0x200000))) - -(assert_return (invoke "f32.demote_f64" (f64.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0.0)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x0.0000000000001p-1022)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x0.0000000000001p-1022)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 1.0)) (f32.const 1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -1.0)) (f32.const -1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffe0000000p-127)) (f32.const 0x1p-126)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffe0000000p-127)) (f32.const -0x1p-126)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffdfffffffp-127)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffdfffffffp-127)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffd0000000p+127)) (f32.const 0x1.fffffcp+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffd0000000p+127)) (f32.const -0x1.fffffcp+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffd0000001p+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffd0000001p+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffefffffffp+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffefffffffp+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.ffffffp+127)) (f32.const inf)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.ffffffp+127)) (f32.const -inf)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1p-119)) (f32.const 0x1p-119)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.8f867ep+125)) (f32.const 0x1.8f867ep+125)) -(assert_return (invoke "f32.demote_f64" (f64.const inf)) (f32.const inf)) -(assert_return (invoke "f32.demote_f64" (f64.const -inf)) (f32.const -inf)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000000000001p+0)) (f32.const 1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffffffffffp-1)) (f32.const 1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000000p+0)) (f32.const 0x1.000000p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000001p+0)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.000002fffffffp+0)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000030000000p+0)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000050000000p+0)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000000p+24)) (f32.const 0x1.0p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000001p+24)) (f32.const 0x1.000002p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.000002fffffffp+24)) (f32.const 0x1.000002p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000030000000p+24)) (f32.const 0x1.000004p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.4eae4f7024c7p+108)) (f32.const 0x1.4eae5p+108)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.a12e71e358685p-113)) (f32.const 0x1.a12e72p-113)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.cb98354d521ffp-127)) (f32.const 0x1.cb9834p-127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.6972b30cfb562p+1)) (f32.const -0x1.6972b4p+1)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.bedbe4819d4c4p+112)) (f32.const -0x1.bedbe4p+112)) -(assert_return_canonical_nan (invoke "f32.demote_f64" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f32.demote_f64" (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "f32.demote_f64" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "f32.demote_f64" (f64.const -nan:0x4000000000000))) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1p-1022)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1p-1022)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0p-150)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.0p-150)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000000000001p-150)) (f32.const 0x1p-149)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.0000000000001p-150)) (f32.const -0x1p-149)) - -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x80000000)) (f32.const -0.0)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 1)) (f32.const 0x1p-149)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const -1)) (f32.const -nan:0x7fffff)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 123456789)) (f32.const 0x1.b79a2ap-113)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const -2147483647)) (f32.const -0x1p-149)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x7f800000)) (f32.const inf)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0xff800000)) (f32.const -inf)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x7fc00000)) (f32.const nan)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0xffc00000)) (f32.const -nan)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x7fa00000)) (f32.const nan:0x200000)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0xffa00000)) (f32.const -nan:0x200000)) - -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const -1)) (f64.const -nan:0xfffffffffffff)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x8000000000000000)) (f64.const -0.0)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 1234567890)) (f64.const 0x0.00000499602d2p-1022)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const -9223372036854775807)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x7ff0000000000000)) (f64.const inf)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0xfff0000000000000)) (f64.const -inf)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x7ff8000000000000)) (f64.const nan)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0xfff8000000000000)) (f64.const -nan)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x7ff4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0xfff4000000000000)) (f64.const -nan:0x4000000000000)) - -(assert_return (invoke "i32.reinterpret_f32" (f32.const 0.0)) (i32.const 0)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -0.0)) (i32.const 0x80000000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -nan:0x7fffff)) (i32.const -1)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -0x1p-149)) (i32.const 0x80000001)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 1.0)) (i32.const 1065353216)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 3.1415926)) (i32.const 1078530010)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 0x1.fffffep+127)) (i32.const 2139095039)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -0x1.fffffep+127)) (i32.const -8388609)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const inf)) (i32.const 0x7f800000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -inf)) (i32.const 0xff800000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const nan)) (i32.const 0x7fc00000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -nan)) (i32.const 0xffc00000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const nan:0x200000)) (i32.const 0x7fa00000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -nan:0x200000)) (i32.const 0xffa00000)) - -(assert_return (invoke "i64.reinterpret_f64" (f64.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -0.0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 0x0.0000000000001p-1022)) (i64.const 1)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -nan:0xfffffffffffff)) (i64.const -1)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -0x0.0000000000001p-1022)) (i64.const 0x8000000000000001)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 1.0)) (i64.const 4607182418800017408)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 3.14159265358979)) (i64.const 4614256656552045841)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 0x1.fffffffffffffp+1023)) (i64.const 9218868437227405311)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -0x1.fffffffffffffp+1023)) (i64.const -4503599627370497)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const inf)) (i64.const 0x7ff0000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -inf)) (i64.const 0xfff0000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const nan)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -nan)) (i64.const 0xfff8000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const nan:0x4000000000000)) (i64.const 0x7ff4000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -nan:0x4000000000000)) (i64.const 0xfff4000000000000)) diff --git a/tests/samples/custom.wast b/tests/samples/custom.wast deleted file mode 100644 index fb04f2f..0000000 --- a/tests/samples/custom.wast +++ /dev/null @@ -1,120 +0,0 @@ -(module binary - "\00asm" "\01\00\00\00" - "\00\24\10" "a custom section" "this is the payload" - "\00\20\10" "a custom section" "this is payload" - "\00\11\10" "a custom section" "" - "\00\10\00" "" "this is payload" - "\00\01\00" "" "" - "\00\24\10" "\00\00custom sectio\00" "this is the payload" - "\00\24\10" "\ef\bb\bfa custom sect" "this is the payload" - "\00\24\10" "a custom sect\e2\8c\a3" "this is the payload" - "\00\1f\16" "module within a module" "\00asm" "\01\00\00\00" -) - -(module binary - "\00asm" "\01\00\00\00" - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\01\01\00" ;; type section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\02\01\00" ;; import section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\03\01\00" ;; function section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\04\01\00" ;; table section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\05\01\00" ;; memory section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\06\01\00" ;; global section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\07\01\00" ;; export section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\09\01\00" ;; element section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\0a\01\00" ;; code section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\0b\01\00" ;; data section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" -) - -(module binary - "\00asm" "\01\00\00\00" - "\01\07\01\60\02\7f\7f\01\7f" ;; type section - "\00\1a\06" "custom" "this is the payload" ;; custom section - "\03\02\01\00" ;; function section - "\07\0a\01\06\61\64\64\54\77\6f\00\00" ;; export section - "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section - "\00\1b\07" "custom2" "this is the payload" ;; custom section -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\00" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\00\00\05\01\00\07\00\00" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\26\10" "a custom section" "this is the payload" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\25\10" "a custom section" "this is the payload" - "\00\24\10" "a custom section" "this is the payload" - ) - "invalid section id" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\07\01\60\02\7f\7f\01\7f" ;; type section - "\00\25\10" "a custom section" "this is the payload" ;; invalid length! - "\03\02\01\00" ;; function section - "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section - "\00\1b\07" "custom2" "this is the payload" ;; custom section - ) - "function and code section have inconsistent lengths" -) - -;; Test concatenated modules. -(assert_malformed - (module binary - "\00asm\01\00\00\00" - "\00asm\01\00\00\00" - ) - "length out of bounds" -) diff --git a/tests/samples/data.wast b/tests/samples/data.wast deleted file mode 100644 index 46b9543..0000000 --- a/tests/samples/data.wast +++ /dev/null @@ -1,335 +0,0 @@ -;; Test the data section - -;; Syntax - -(module - (memory $m 1) - (data (i32.const 0)) - (data (i32.const 1) "a" "" "bcd") - (data (offset (i32.const 0))) - (data (offset (i32.const 0)) "" "a" "bc" "") - (data 0 (i32.const 0)) - (data 0x0 (i32.const 1) "a" "" "bcd") - (data 0x000 (offset (i32.const 0))) - (data 0 (offset (i32.const 0)) "" "a" "bc" "") - (data $m (i32.const 0)) - (data $m (i32.const 1) "a" "" "bcd") - (data $m (offset (i32.const 0))) - (data $m (offset (i32.const 0)) "" "a" "bc" "") -) - -;; Basic use - -(module - (memory 1) - (data (i32.const 0) "a") -) -(module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0) "a") -) - -(module - (memory 1) - (data (i32.const 0) "a") - (data (i32.const 3) "b") - (data (i32.const 100) "cde") - (data (i32.const 5) "x") - (data (i32.const 3) "c") -) -(module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0) "a") - (data (i32.const 1) "b") - (data (i32.const 2) "cde") - (data (i32.const 3) "f") - (data (i32.const 2) "g") - (data (i32.const 1) "h") -) - -(module - (global (import "spectest" "global_i32") i32) - (memory 1) - (data (get_global 0) "a") -) -(module - (global (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 1)) - (data (get_global 0) "a") -) - -(module - (global $g (import "spectest" "global_i32") i32) - (memory 1) - (data (get_global $g) "a") -) -(module - (global $g (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 1)) - (data (get_global $g) "a") -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (module (memory 1) (data (get_global 0) "a") (global i32 (i32.const 0))) -;; (module (memory 1) (data (get_global $g) "a") (global $g i32 (i32.const 0))) - -;; Corner cases - -(module - (memory 1) - (data (i32.const 0) "a") - (data (i32.const 0xffff) "b") -) -(module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0) "a") - (data (i32.const 0xffff) "b") -) - -(module - (memory 2) - (data (i32.const 0x1_ffff) "a") -) - -(module - (memory 0) - (data (i32.const 0)) -) -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 0)) -) - -(module - (memory 0 0) - (data (i32.const 0)) -) - -(module - (memory 1) - (data (i32.const 0x1_0000) "") -) - -(module - (memory 0) - (data (i32.const 0) "" "") -) -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 0) "" "") -) - -(module - (memory 0 0) - (data (i32.const 0) "" "") -) - -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 0) "a") -) - -(module - (import "spectest" "memory" (memory 0 3)) - (data (i32.const 0) "a") -) - -(module - (global (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 0)) - (data (get_global 0) "a") -) - -(module - (global (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 0 3)) - (data (get_global 0) "a") -) - -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 1) "a") -) - -(module - (import "spectest" "memory" (memory 0 3)) - (data (i32.const 1) "a") -) - -;; Invalid bounds for data - -(assert_unlinkable - (module - (memory 0) - (data (i32.const 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0 0) - (data (i32.const 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0 1) - (data (i32.const 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0) - (data (i32.const 1)) - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0 1) - (data (i32.const 1)) - ) - "data segment does not fit" -) - -;; This seems to cause a time-out on Travis. -(;assert_unlinkable - (module - (memory 0x10000) - (data (i32.const 0xffffffff) "ab") - ) - "" ;; either out of memory or segment does not fit -;) - -(assert_unlinkable - (module - (global (import "spectest" "global_i32") i32) - (memory 0) - (data (get_global 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 1 2) - (data (i32.const 0x1_0000) "a") - ) - "data segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0x1_0000) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 2) - (data (i32.const 0x2_0000) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 2 3) - (data (i32.const 0x2_0000) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 1) - (data (i32.const -1) "a") - ) - "data segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "memory" (memory 1)) - (data (i32.const -1) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 2) - (data (i32.const -100) "a") - ) - "data segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "memory" (memory 1)) - (data (i32.const -100) "a") - ) - "data segment does not fit" -) - -;; Data without memory - -(assert_invalid - (module - (data (i32.const 0) "") - ) - "unknown memory 0" -) - -;; Invalid offsets - -(assert_invalid - (module - (memory 1) - (data (i64.const 0)) - ) - "type mismatch" -) - -(assert_invalid - (module - (memory 1) - (data (i32.ctz (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (memory 1) - (data (nop)) - ) - "constant expression required" -) - -(assert_invalid - (module - (memory 1) - (data (offset (nop) (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (memory 1) - (data (offset (i32.const 0) (nop))) - ) - "constant expression required" -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (get_global $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) diff --git a/tests/samples/elem.wast b/tests/samples/elem.wast deleted file mode 100644 index 3c204c0..0000000 --- a/tests/samples/elem.wast +++ /dev/null @@ -1,381 +0,0 @@ -;; Test the element section - -;; Syntax -(module - (table $t 10 anyfunc) - (func $f) - (elem (i32.const 0)) - (elem (i32.const 0) $f $f) - (elem (offset (i32.const 0))) - (elem (offset (i32.const 0)) $f $f) - (elem 0 (i32.const 0)) - (elem 0x0 (i32.const 0) $f $f) - (elem 0x000 (offset (i32.const 0))) - (elem 0 (offset (i32.const 0)) $f $f) - (elem $t (i32.const 0)) - (elem $t (i32.const 0) $f $f) - (elem $t (offset (i32.const 0))) - (elem $t (offset (i32.const 0)) $f $f) -) - -;; Basic use - -(module - (table 10 anyfunc) - (func $f) - (elem (i32.const 0) $f) -) -(module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (table 10 anyfunc) - (func $f) - (elem (i32.const 0) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 5) $f) - (elem (i32.const 3) $f) -) -(module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 9) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 3) $f) - (elem (i32.const 5) $f) -) - -(module - (global (import "spectest" "global_i32") i32) - (table 1000 anyfunc) - (func $f) - (elem (get_global 0) $f) -) - -(module - (global $g (import "spectest" "global_i32") i32) - (table 1000 anyfunc) - (func $f) - (elem (get_global $g) $f) -) - -(module - (type $out-i32 (func (result i32))) - (table 10 anyfunc) - (elem (i32.const 7) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-7") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 7)) - ) - (func (export "call-9") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-7") (i32.const 65)) -(assert_return (invoke "call-9") (i32.const 66)) - -;; Corner cases - -(module - (table 10 anyfunc) - (func $f) - (elem (i32.const 9) $f) -) -(module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 9) $f) -) - -(module - (table 0 anyfunc) - (elem (i32.const 0)) -) -(module - (import "spectest" "table" (table 0 anyfunc)) - (elem (i32.const 0)) -) - -(module - (table 0 0 anyfunc) - (elem (i32.const 0)) -) - -(module - (table 20 anyfunc) - (elem (i32.const 20)) -) - -(module - (import "spectest" "table" (table 0 anyfunc)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 100 anyfunc)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 anyfunc)) - (func $f) - (elem (i32.const 1) $f) -) - -(module - (import "spectest" "table" (table 0 30 anyfunc)) - (func $f) - (elem (i32.const 1) $f) -) - -;; Invalid bounds for elements - -(assert_unlinkable - (module - (table 0 anyfunc) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 0 anyfunc) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 1 anyfunc) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 anyfunc) - (elem (i32.const 1)) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 anyfunc) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 20 anyfunc) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 anyfunc) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 anyfunc) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) - -;; Element without table - -(assert_invalid - (module - (func $f) - (elem (i32.const 0) $f) - ) - "unknown table 0" -) - -;; Invalid offsets - -(assert_invalid - (module - (table 1 anyfunc) - (elem (i64.const 0)) - ) - "type mismatch" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (i32.ctz (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (nop)) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (offset (nop) (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (offset (i32.const 0) (nop))) - ) - "constant expression required" -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (get_global $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) - -;; Two elements target the same slot - -(module - (type $out-i32 (func (result i32))) - (table 10 anyfunc) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten") (i32.const 66)) - -(module - (type $out-i32 (func (result i32))) - (import "spectest" "table" (table 10 anyfunc)) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten-element") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten-element") (i32.const 66)) - -;; Element sections across multiple modules change the same table - -(module $module1 - (type $out-i32 (func (result i32))) - (table (export "shared-table") 10 anyfunc) - (elem (i32.const 8) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-7") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 7)) - ) - (func (export "call-8") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 8)) - ) - (func (export "call-9") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) - -(register "module1" $module1) - -(assert_trap (invoke $module1 "call-7") "uninitialized element 7") -(assert_return (invoke $module1 "call-8") (i32.const 65)) -(assert_return (invoke $module1 "call-9") (i32.const 66)) - -(module $module2 - (type $out-i32 (func (result i32))) - (import "module1" "shared-table" (table 10 anyfunc)) - (elem (i32.const 7) $const-i32-c) - (elem (i32.const 8) $const-i32-d) - (func $const-i32-c (type $out-i32) (i32.const 67)) - (func $const-i32-d (type $out-i32) (i32.const 68)) -) - -(assert_return (invoke $module1 "call-7") (i32.const 67)) -(assert_return (invoke $module1 "call-8") (i32.const 68)) -(assert_return (invoke $module1 "call-9") (i32.const 66)) - -(module $module3 - (type $out-i32 (func (result i32))) - (import "module1" "shared-table" (table 10 anyfunc)) - (elem (i32.const 8) $const-i32-e) - (elem (i32.const 9) $const-i32-f) - (func $const-i32-e (type $out-i32) (i32.const 69)) - (func $const-i32-f (type $out-i32) (i32.const 70)) -) - -(assert_return (invoke $module1 "call-7") (i32.const 67)) -(assert_return (invoke $module1 "call-8") (i32.const 69)) -(assert_return (invoke $module1 "call-9") (i32.const 70)) diff --git a/tests/samples/endianess.wast b/tests/samples/endianess.wast deleted file mode 100644 index 4e52741..0000000 --- a/tests/samples/endianess.wast +++ /dev/null @@ -1,131 +0,0 @@ -(module - (memory 1) - - ;; Stores an i16 value in little-endian-format - (func $i16_store_little (param $address i32) (param $value i32) - (i32.store8 (get_local $address) (get_local $value)) - (i32.store8 (i32.add (get_local $address) (i32.const 1)) (i32.shr_u (get_local $value) (i32.const 8))) - ) - - ;; Stores an i32 value in little-endian format - (func $i32_store_little (param $address i32) (param $value i32) - (call $i16_store_little (get_local $address) (get_local $value)) - (call $i16_store_little (i32.add (get_local $address) (i32.const 2)) (i32.shr_u (get_local $value) (i32.const 16))) - ) - - ;; Stores an i64 value in little-endian format - (func $i64_store_little (param $address i32) (param $value i64) - (call $i32_store_little (get_local $address) (i32.wrap/i64 (get_local $value))) - (call $i32_store_little (i32.add (get_local $address) (i32.const 4)) (i32.wrap/i64 (i64.shr_u (get_local $value) (i64.const 32)))) - ) - - ;; Loads an i16 value in little-endian format - (func $i16_load_little (param $address i32) (result i32) - (i32.or - (i32.load8_u (get_local $address)) - (i32.shl (i32.load8_u (i32.add (get_local $address) (i32.const 1))) (i32.const 8)) - ) - ) - - ;; Loads an i32 value in little-endian format - (func $i32_load_little (param $address i32) (result i32) - (i32.or - (call $i16_load_little (get_local $address)) - (i32.shl (call $i16_load_little (i32.add (get_local $address) (i32.const 2))) (i32.const 16)) - ) - ) - - ;; Loads an i64 value in little-endian format - (func $i64_load_little (param $address i32) (result i64) - (i64.or - (i64.extend_u/i32 (call $i32_load_little (get_local $address))) - (i64.shl (i64.extend_u/i32 (call $i32_load_little (i32.add (get_local $address) (i32.const 4)))) (i64.const 32)) - ) - ) - - (func (export "i32_load16_s") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_s (i32.const 0)) - ) - - (func (export "i32_load16_u") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_u (i32.const 0)) - ) - - (func (export "i32_load") (param $value i32) (result i32) - (call $i32_store_little (i32.const 0) (get_local $value)) - (i32.load (i32.const 0)) - ) - - (func (export "i64_load16_s") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_s (i32.const 0)) - ) - - (func (export "i64_load16_u") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_u (i32.const 0)) - ) - - (func (export "i64_load32_s") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_s (i32.const 0)) - ) - - (func (export "i64_load32_u") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_u (i32.const 0)) - ) - - (func (export "i64_load") (param $value i64) (result i64) - (call $i64_store_little (i32.const 0) (get_local $value)) - (i64.load (i32.const 0)) - ) - - (func (export "f32_load") (param $value f32) (result f32) - (call $i32_store_little (i32.const 0) (i32.reinterpret/f32 (get_local $value))) - (f32.load (i32.const 0)) - ) - - (func (export "f64_load") (param $value f64) (result f64) - (call $i64_store_little (i32.const 0) (i64.reinterpret/f64 (get_local $value))) - (f64.load (i32.const 0)) - ) - - - (func (export "i32_store16") (param $value i32) (result i32) - (i32.store16 (i32.const 0) (get_local $value)) - (call $i16_load_little (i32.const 0)) - ) - - (func (export "i32_store") (param $value i32) (result i32) - (i32.store (i32.const 0) (get_local $value)) - (call $i32_load_little (i32.const 0)) - ) - - (func (export "i64_store16") (param $value i64) (result i64) - (i64.store16 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i16_load_little (i32.const 0))) - ) - - (func (export "i64_store32") (param $value i64) (result i64) - (i64.store32 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "i64_store") (param $value i64) (result i64) - (i64.store (i32.const 0) (get_local $value)) - (call $i64_load_little (i32.const 0)) - ) - - (func (export "f32_store") (param $value f32) (result f32) - (f32.store (i32.const 0) (get_local $value)) - (f32.reinterpret/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "f64_store") (param $value f64) (result f64) - (f64.store (i32.const 0) (get_local $value)) - (f64.reinterpret/i64 (call $i64_load_little (i32.const 0))) - ) -) \ No newline at end of file diff --git a/tests/samples/endianness.wast b/tests/samples/endianness.wast deleted file mode 100644 index 8dc0c2e..0000000 --- a/tests/samples/endianness.wast +++ /dev/null @@ -1,217 +0,0 @@ -(module - (memory 1) - - ;; Stores an i16 value in little-endian-format - (func $i16_store_little (param $address i32) (param $value i32) - (i32.store8 (get_local $address) (get_local $value)) - (i32.store8 (i32.add (get_local $address) (i32.const 1)) (i32.shr_u (get_local $value) (i32.const 8))) - ) - - ;; Stores an i32 value in little-endian format - (func $i32_store_little (param $address i32) (param $value i32) - (call $i16_store_little (get_local $address) (get_local $value)) - (call $i16_store_little (i32.add (get_local $address) (i32.const 2)) (i32.shr_u (get_local $value) (i32.const 16))) - ) - - ;; Stores an i64 value in little-endian format - (func $i64_store_little (param $address i32) (param $value i64) - (call $i32_store_little (get_local $address) (i32.wrap/i64 (get_local $value))) - (call $i32_store_little (i32.add (get_local $address) (i32.const 4)) (i32.wrap/i64 (i64.shr_u (get_local $value) (i64.const 32)))) - ) - - ;; Loads an i16 value in little-endian format - (func $i16_load_little (param $address i32) (result i32) - (i32.or - (i32.load8_u (get_local $address)) - (i32.shl (i32.load8_u (i32.add (get_local $address) (i32.const 1))) (i32.const 8)) - ) - ) - - ;; Loads an i32 value in little-endian format - (func $i32_load_little (param $address i32) (result i32) - (i32.or - (call $i16_load_little (get_local $address)) - (i32.shl (call $i16_load_little (i32.add (get_local $address) (i32.const 2))) (i32.const 16)) - ) - ) - - ;; Loads an i64 value in little-endian format - (func $i64_load_little (param $address i32) (result i64) - (i64.or - (i64.extend_u/i32 (call $i32_load_little (get_local $address))) - (i64.shl (i64.extend_u/i32 (call $i32_load_little (i32.add (get_local $address) (i32.const 4)))) (i64.const 32)) - ) - ) - - (func (export "i32_load16_s") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_s (i32.const 0)) - ) - - (func (export "i32_load16_u") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_u (i32.const 0)) - ) - - (func (export "i32_load") (param $value i32) (result i32) - (call $i32_store_little (i32.const 0) (get_local $value)) - (i32.load (i32.const 0)) - ) - - (func (export "i64_load16_s") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_s (i32.const 0)) - ) - - (func (export "i64_load16_u") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_u (i32.const 0)) - ) - - (func (export "i64_load32_s") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_s (i32.const 0)) - ) - - (func (export "i64_load32_u") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_u (i32.const 0)) - ) - - (func (export "i64_load") (param $value i64) (result i64) - (call $i64_store_little (i32.const 0) (get_local $value)) - (i64.load (i32.const 0)) - ) - - (func (export "f32_load") (param $value f32) (result f32) - (call $i32_store_little (i32.const 0) (i32.reinterpret/f32 (get_local $value))) - (f32.load (i32.const 0)) - ) - - (func (export "f64_load") (param $value f64) (result f64) - (call $i64_store_little (i32.const 0) (i64.reinterpret/f64 (get_local $value))) - (f64.load (i32.const 0)) - ) - - - (func (export "i32_store16") (param $value i32) (result i32) - (i32.store16 (i32.const 0) (get_local $value)) - (call $i16_load_little (i32.const 0)) - ) - - (func (export "i32_store") (param $value i32) (result i32) - (i32.store (i32.const 0) (get_local $value)) - (call $i32_load_little (i32.const 0)) - ) - - (func (export "i64_store16") (param $value i64) (result i64) - (i64.store16 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i16_load_little (i32.const 0))) - ) - - (func (export "i64_store32") (param $value i64) (result i64) - (i64.store32 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "i64_store") (param $value i64) (result i64) - (i64.store (i32.const 0) (get_local $value)) - (call $i64_load_little (i32.const 0)) - ) - - (func (export "f32_store") (param $value f32) (result f32) - (f32.store (i32.const 0) (get_local $value)) - (f32.reinterpret/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "f64_store") (param $value f64) (result f64) - (f64.store (i32.const 0) (get_local $value)) - (f64.reinterpret/i64 (call $i64_load_little (i32.const 0))) - ) -) - -(assert_return (invoke "i32_load16_s" (i32.const -1)) (i32.const -1)) -(assert_return (invoke "i32_load16_s" (i32.const -4242)) (i32.const -4242)) -(assert_return (invoke "i32_load16_s" (i32.const 42)) (i32.const 42)) -(assert_return (invoke "i32_load16_s" (i32.const 0x3210)) (i32.const 0x3210)) - -(assert_return (invoke "i32_load16_u" (i32.const -1)) (i32.const 0xFFFF)) -(assert_return (invoke "i32_load16_u" (i32.const -4242)) (i32.const 61294)) -(assert_return (invoke "i32_load16_u" (i32.const 42)) (i32.const 42)) -(assert_return (invoke "i32_load16_u" (i32.const 0xCAFE)) (i32.const 0xCAFE)) - -(assert_return (invoke "i32_load" (i32.const -1)) (i32.const -1)) -(assert_return (invoke "i32_load" (i32.const -42424242)) (i32.const -42424242)) -(assert_return (invoke "i32_load" (i32.const 42424242)) (i32.const 42424242)) -(assert_return (invoke "i32_load" (i32.const 0xABAD1DEA)) (i32.const 0xABAD1DEA)) - -(assert_return (invoke "i64_load16_s" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_load16_s" (i64.const -4242)) (i64.const -4242)) -(assert_return (invoke "i64_load16_s" (i64.const 42)) (i64.const 42)) -(assert_return (invoke "i64_load16_s" (i64.const 0x3210)) (i64.const 0x3210)) - -(assert_return (invoke "i64_load16_u" (i64.const -1)) (i64.const 0xFFFF)) -(assert_return (invoke "i64_load16_u" (i64.const -4242)) (i64.const 61294)) -(assert_return (invoke "i64_load16_u" (i64.const 42)) (i64.const 42)) -(assert_return (invoke "i64_load16_u" (i64.const 0xCAFE)) (i64.const 0xCAFE)) - -(assert_return (invoke "i64_load32_s" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_load32_s" (i64.const -42424242)) (i64.const -42424242)) -(assert_return (invoke "i64_load32_s" (i64.const 42424242)) (i64.const 42424242)) -(assert_return (invoke "i64_load32_s" (i64.const 0x12345678)) (i64.const 0x12345678)) - -(assert_return (invoke "i64_load32_u" (i64.const -1)) (i64.const 0xFFFFFFFF)) -(assert_return (invoke "i64_load32_u" (i64.const -42424242)) (i64.const 4252543054)) -(assert_return (invoke "i64_load32_u" (i64.const 42424242)) (i64.const 42424242)) -(assert_return (invoke "i64_load32_u" (i64.const 0xABAD1DEA)) (i64.const 0xABAD1DEA)) - -(assert_return (invoke "i64_load" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_load" (i64.const -42424242)) (i64.const -42424242)) -(assert_return (invoke "i64_load" (i64.const 0xABAD1DEA)) (i64.const 0xABAD1DEA)) -(assert_return (invoke "i64_load" (i64.const 0xABADCAFEDEAD1DEA)) (i64.const 0xABADCAFEDEAD1DEA)) - -(assert_return (invoke "f32_load" (f32.const -1)) (f32.const -1)) -(assert_return (invoke "f32_load" (f32.const 1234e-5)) (f32.const 1234e-5)) -(assert_return (invoke "f32_load" (f32.const 4242.4242)) (f32.const 4242.4242)) -(assert_return (invoke "f32_load" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) - -(assert_return (invoke "f64_load" (f64.const -1)) (f64.const -1)) -(assert_return (invoke "f64_load" (f64.const 123456789e-5)) (f64.const 123456789e-5)) -(assert_return (invoke "f64_load" (f64.const 424242.424242)) (f64.const 424242.424242)) -(assert_return (invoke "f64_load" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) - - -(assert_return (invoke "i32_store16" (i32.const -1)) (i32.const 0xFFFF)) -(assert_return (invoke "i32_store16" (i32.const -4242)) (i32.const 61294)) -(assert_return (invoke "i32_store16" (i32.const 42)) (i32.const 42)) -(assert_return (invoke "i32_store16" (i32.const 0xCAFE)) (i32.const 0xCAFE)) - -(assert_return (invoke "i32_store" (i32.const -1)) (i32.const -1)) -(assert_return (invoke "i32_store" (i32.const -4242)) (i32.const -4242)) -(assert_return (invoke "i32_store" (i32.const 42424242)) (i32.const 42424242)) -(assert_return (invoke "i32_store" (i32.const 0xDEADCAFE)) (i32.const 0xDEADCAFE)) - -(assert_return (invoke "i64_store16" (i64.const -1)) (i64.const 0xFFFF)) -(assert_return (invoke "i64_store16" (i64.const -4242)) (i64.const 61294)) -(assert_return (invoke "i64_store16" (i64.const 42)) (i64.const 42)) -(assert_return (invoke "i64_store16" (i64.const 0xCAFE)) (i64.const 0xCAFE)) - -(assert_return (invoke "i64_store32" (i64.const -1)) (i64.const 0xFFFFFFFF)) -(assert_return (invoke "i64_store32" (i64.const -4242)) (i64.const 4294963054)) -(assert_return (invoke "i64_store32" (i64.const 42424242)) (i64.const 42424242)) -(assert_return (invoke "i64_store32" (i64.const 0xDEADCAFE)) (i64.const 0xDEADCAFE)) - -(assert_return (invoke "i64_store" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_store" (i64.const -42424242)) (i64.const -42424242)) -(assert_return (invoke "i64_store" (i64.const 0xABAD1DEA)) (i64.const 0xABAD1DEA)) -(assert_return (invoke "i64_store" (i64.const 0xABADCAFEDEAD1DEA)) (i64.const 0xABADCAFEDEAD1DEA)) - -(assert_return (invoke "f32_store" (f32.const -1)) (f32.const -1)) -(assert_return (invoke "f32_store" (f32.const 1234e-5)) (f32.const 1234e-5)) -(assert_return (invoke "f32_store" (f32.const 4242.4242)) (f32.const 4242.4242)) -(assert_return (invoke "f32_store" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) - -(assert_return (invoke "f64_store" (f64.const -1)) (f64.const -1)) -(assert_return (invoke "f64_store" (f64.const 123456789e-5)) (f64.const 123456789e-5)) -(assert_return (invoke "f64_store" (f64.const 424242.424242)) (f64.const 424242.424242)) -(assert_return (invoke "f64_store" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) diff --git a/tests/samples/exports.wast b/tests/samples/exports.wast deleted file mode 100644 index 6841aa8..0000000 --- a/tests/samples/exports.wast +++ /dev/null @@ -1,198 +0,0 @@ -;; Functions - -(module (func) (export "a" (func 0))) -(module (func) (export "a" (func 0)) (export "b" (func 0))) -(module (func) (func) (export "a" (func 0)) (export "b" (func 1))) - -(module (func (export "a"))) -(module (func (export "a") (export "b") (export "c"))) -(module (func (export "a") (export "b") (param i32))) -(module (func) (export "a" (func 0))) -(module (func $a (export "a"))) -(module (func $a) (export "a" (func $a))) -(module (export "a" (func 0)) (func)) -(module (export "a" (func $a)) (func $a)) - -(module $Func - (export "e" (func $f)) - (func $f (param $n i32) (result i32) - (return (i32.add (get_local $n) (i32.const 1))) - ) -) -(assert_return (invoke "e" (i32.const 42)) (i32.const 43)) -(assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) -(module) -(module $Other1) -(assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) - -(assert_invalid - (module (func) (export "a" (func 1))) - "unknown function" -) -(assert_invalid - (module (func) (export "a" (func 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (func) (func) (export "a" (func 0)) (export "a" (func 1))) - "duplicate export name" -) -(assert_invalid - (module (func) (global i32 (i32.const 0)) (export "a" (func 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (func) (table 0 anyfunc) (export "a" (func 0)) (export "a" (table 0))) - "duplicate export name" -) -(assert_invalid - (module (func) (memory 0) (export "a" (func 0)) (export "a" (memory 0))) - "duplicate export name" -) - - -;; Globals - -(module (global i32 (i32.const 0)) (export "a" (global 0))) -(module (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 0))) -(module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 1))) - -(module (global (export "a") i32 (i32.const 0))) -(module (global i32 (i32.const 0)) (export "a" (global 0))) -(module (global $a (export "a") i32 (i32.const 0))) -(module (global $a i32 (i32.const 0)) (export "a" (global $a))) -(module (export "a" (global 0)) (global i32 (i32.const 0))) -(module (export "a" (global $a)) (global $a i32 (i32.const 0))) - -(module $Global - (export "e" (global $g)) - (global $g i32 (i32.const 42)) -) -(assert_return (get "e") (i32.const 42)) -(assert_return (get $Global "e") (i32.const 42)) -(module) -(module $Other2) -(assert_return (get $Global "e") (i32.const 42)) - -(assert_invalid - (module (global i32 (i32.const 0)) (export "a" (global 1))) - "unknown global" -) -(assert_invalid - (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 1))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (func) (export "a" (global 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (table 0 anyfunc) (export "a" (global 0)) (export "a" (table 0))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (memory 0) (export "a" (global 0)) (export "a" (memory 0))) - "duplicate export name" -) - - -;; Tables - -(module (table 0 anyfunc) (export "a" (table 0))) -(module (table 0 anyfunc) (export "a" (table 0)) (export "b" (table 0))) -;; No multiple tables yet. -;; (module (table 0 anyfunc) (table 0 anyfunc) (export "a" (table 0)) (export "b" (table 1))) - -(module (table (export "a") 0 anyfunc)) -(module (table (export "a") 0 1 anyfunc)) -(module (table 0 anyfunc) (export "a" (table 0))) -(module (table 0 1 anyfunc) (export "a" (table 0))) -(module (table $a (export "a") 0 anyfunc)) -(module (table $a (export "a") 0 1 anyfunc)) -(module (table $a 0 anyfunc) (export "a" (table $a))) -(module (table $a 0 1 anyfunc) (export "a" (table $a))) -(module (export "a" (table 0)) (table 0 anyfunc)) -(module (export "a" (table 0)) (table 0 1 anyfunc)) -(module (export "a" (table $a)) (table $a 0 anyfunc)) -(module (export "a" (table $a)) (table $a 0 1 anyfunc)) - -(; TODO: access table ;) - -(assert_invalid - (module (table 0 anyfunc) (export "a" (table 1))) - "unknown table" -) -(assert_invalid - (module (table 0 anyfunc) (export "a" (table 0)) (export "a" (table 0))) - "duplicate export name" -) -;; No multiple tables yet. -;; (assert_invalid -;; (module (table 0 anyfunc) (table 0 anyfunc) (export "a" (table 0)) (export "a" (table 1))) -;; "duplicate export name" -;; ) -(assert_invalid - (module (table 0 anyfunc) (func) (export "a" (table 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (table 0 anyfunc) (global i32 (i32.const 0)) (export "a" (table 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (table 0 anyfunc) (memory 0) (export "a" (table 0)) (export "a" (memory 0))) - "duplicate export name" -) - - -;; Memories - -(module (memory 0) (export "a" (memory 0))) -(module (memory 0) (export "a" (memory 0)) (export "b" (memory 0))) -;; No multiple memories yet. -;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "b" (memory 1))) - -(module (memory (export "a") 0)) -(module (memory (export "a") 0 1)) -(module (memory 0) (export "a" (memory 0))) -(module (memory 0 1) (export "a" (memory 0))) -(module (memory $a (export "a") 0)) -(module (memory $a (export "a") 0 1)) -(module (memory $a 0) (export "a" (memory $a))) -(module (memory $a 0 1) (export "a" (memory $a))) -(module (export "a" (memory 0)) (memory 0)) -(module (export "a" (memory 0)) (memory 0 1)) -(module (export "a" (memory $a)) (memory $a 0)) -(module (export "a" (memory $a)) (memory $a 0 1)) - -(; TODO: access memory ;) - -(assert_invalid - (module (memory 0) (export "a" (memory 1))) - "unknown memory" -) -(assert_invalid - (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) - "duplicate export name" -) -;; No multiple memories yet. -;; (assert_invalid -;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "a" (memory 1))) -;; "duplicate export name" -;; ) -(assert_invalid - (module (memory 0) (func) (export "a" (memory 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (memory 0) (global i32 (i32.const 0)) (export "a" (memory 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (memory 0) (table 0 anyfunc) (export "a" (memory 0)) (export "a" (table 0))) - "duplicate export name" -) diff --git a/tests/samples/f32.wast b/tests/samples/f32.wast deleted file mode 100644 index 2595a4a..0000000 --- a/tests/samples/f32.wast +++ /dev/null @@ -1,2518 +0,0 @@ -;; Test all the f32 operators on major boundary values and all special -;; values (except comparison and bitwise operators, which are tested in -;; f32_bitwise.wast and f32_cmp.wast). - -(module - (func (export "add") (param $x f32) (param $y f32) (result f32) (f32.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x f32) (param $y f32) (result f32) (f32.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x f32) (param $y f32) (result f32) (f32.mul (get_local $x) (get_local $y))) - (func (export "div") (param $x f32) (param $y f32) (result f32) (f32.div (get_local $x) (get_local $y))) - (func (export "sqrt") (param $x f32) (result f32) (f32.sqrt (get_local $x))) - (func (export "min") (param $x f32) (param $y f32) (result f32) (f32.min (get_local $x) (get_local $y))) - (func (export "max") (param $x f32) (param $y f32) (result f32) (f32.max (get_local $x) (get_local $y))) - (func (export "ceil") (param $x f32) (result f32) (f32.ceil (get_local $x))) - (func (export "floor") (param $x f32) (result f32) (f32.floor (get_local $x))) - (func (export "trunc") (param $x f32) (result f32) (f32.trunc (get_local $x))) - (func (export "nearest") (param $x f32) (result f32) (f32.nearest (get_local $x))) -) - -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-148)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-148)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-125)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-125)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+1)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+1)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const -inf))) -(assert_return (invoke "add" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p-148)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p-148)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x1p-125)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const 0x1p-125)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+1)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+1)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const -inf))) -(assert_return (invoke "sub" (f32.const -inf) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p-2)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p-2)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-2)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-2)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const 0x0p+0))) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const 0x0p+0))) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1p-23)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1p-23)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-23)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-23)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-148)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-148)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-148)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-148)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1p+23)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1p+23)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p+23)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p+23)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-125)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-125)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-125)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-125)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p+125)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p+125)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p+125)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p+125)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-129)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-129)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-129)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-129)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+126)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+126)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+126)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+126)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p+1)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p+1)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+1)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+1)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-128)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-128)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-128)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-128)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const inf)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x1p-149)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const inf)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x1p-126)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const inf)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x1p-1)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const inf)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x1p+0)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "min" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -inf)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -inf)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -inf)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -inf)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "sqrt" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "sqrt" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-149))) -(assert_return (invoke "sqrt" (f32.const 0x1p-149)) (f32.const 0x1.6a09e6p-75)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-126))) -(assert_return (invoke "sqrt" (f32.const 0x1p-126)) (f32.const 0x1p-63)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-1))) -(assert_return (invoke "sqrt" (f32.const 0x1p-1)) (f32.const 0x1.6a09e6p-1)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p+0))) -(assert_return (invoke "sqrt" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1.921fb6p+2))) -(assert_return (invoke "sqrt" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.40d932p+1)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1.fffffep+127))) -(assert_return (invoke "sqrt" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+63)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -inf))) -(assert_return (invoke "sqrt" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sqrt" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f32.const nan:0x200000))) -(assert_return (invoke "floor" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "floor" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "floor" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.cp+2)) -(assert_return (invoke "floor" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2)) -(assert_return (invoke "floor" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "floor" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "floor" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "floor" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "floor" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "floor" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "floor" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "floor" (f32.const nan:0x200000))) -(assert_return (invoke "ceil" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p+2)) -(assert_return (invoke "ceil" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.cp+2)) -(assert_return (invoke "ceil" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "ceil" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "ceil" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "ceil" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "ceil" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "ceil" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f32.const nan:0x200000))) -(assert_return (invoke "trunc" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "trunc" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p+2)) -(assert_return (invoke "trunc" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2)) -(assert_return (invoke "trunc" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "trunc" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "trunc" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "trunc" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "trunc" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "trunc" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f32.const nan:0x200000))) -(assert_return (invoke "nearest" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "nearest" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p+2)) -(assert_return (invoke "nearest" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2)) -(assert_return (invoke "nearest" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "nearest" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "nearest" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "nearest" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "nearest" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "nearest" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f32.const nan:0x200000))) diff --git a/tests/samples/f32_bitwise.wast b/tests/samples/f32_bitwise.wast deleted file mode 100644 index 12bdb86..0000000 --- a/tests/samples/f32_bitwise.wast +++ /dev/null @@ -1,369 +0,0 @@ -;; Test all the f32 bitwise operators on major boundary values and all special -;; values. - -(module - (func (export "abs") (param $x f32) (result f32) (f32.abs (get_local $x))) - (func (export "neg") (param $x f32) (result f32) (f32.neg (get_local $x))) - (func (export "copysign") (param $x f32) (param $y f32) (result f32) (f32.copysign (get_local $x) (get_local $y))) -) - -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const nan)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const nan)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const inf)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const nan)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const nan)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const inf)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const nan)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const nan)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const inf)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const nan)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const nan)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const inf)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const nan)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const nan)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -nan)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const nan)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -nan)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const nan)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -inf)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const inf)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -inf)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const inf)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "abs" (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "abs" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "abs" (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "abs" (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "abs" (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "abs" (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "abs" (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "abs" (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "abs" (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "abs" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "abs" (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "abs" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "abs" (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "abs" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "abs" (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "abs" (f32.const inf)) (f32.const inf)) -(assert_return (invoke "abs" (f32.const -nan)) (f32.const nan)) -(assert_return (invoke "abs" (f32.const nan)) (f32.const nan)) -(assert_return (invoke "neg" (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "neg" (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "neg" (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "neg" (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "neg" (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "neg" (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "neg" (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "neg" (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "neg" (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "neg" (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "neg" (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "neg" (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "neg" (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "neg" (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "neg" (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "neg" (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "neg" (f32.const -nan)) (f32.const nan)) -(assert_return (invoke "neg" (f32.const nan)) (f32.const -nan)) diff --git a/tests/samples/f32_cmp.wast b/tests/samples/f32_cmp.wast deleted file mode 100644 index 5bae18b..0000000 --- a/tests/samples/f32_cmp.wast +++ /dev/null @@ -1,2412 +0,0 @@ -;; Test all the f32 comparison operators on major boundary values and all -;; special values. - -(module - (func (export "eq") (param $x f32) (param $y f32) (result i32) (f32.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x f32) (param $y f32) (result i32) (f32.ne (get_local $x) (get_local $y))) - (func (export "lt") (param $x f32) (param $y f32) (result i32) (f32.lt (get_local $x) (get_local $y))) - (func (export "le") (param $x f32) (param $y f32) (result i32) (f32.le (get_local $x) (get_local $y))) - (func (export "gt") (param $x f32) (param $y f32) (result i32) (f32.gt (get_local $x) (get_local $y))) - (func (export "ge") (param $x f32) (param $y f32) (result i32) (f32.ge (get_local $x) (get_local $y))) -) - -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) diff --git a/tests/samples/f64.wast b/tests/samples/f64.wast deleted file mode 100644 index 50db4e7..0000000 --- a/tests/samples/f64.wast +++ /dev/null @@ -1,2518 +0,0 @@ -;; Test all the f64 operators on major boundary values and all special -;; values (except comparison and bitwise operators, which are tested in -;; f64_bitwise.wast and f64_cmp.wast). - -(module - (func (export "add") (param $x f64) (param $y f64) (result f64) (f64.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x f64) (param $y f64) (result f64) (f64.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x f64) (param $y f64) (result f64) (f64.mul (get_local $x) (get_local $y))) - (func (export "div") (param $x f64) (param $y f64) (result f64) (f64.div (get_local $x) (get_local $y))) - (func (export "sqrt") (param $x f64) (result f64) (f64.sqrt (get_local $x))) - (func (export "min") (param $x f64) (param $y f64) (result f64) (f64.min (get_local $x) (get_local $y))) - (func (export "max") (param $x f64) (param $y f64) (result f64) (f64.max (get_local $x) (get_local $y))) - (func (export "ceil") (param $x f64) (result f64) (f64.ceil (get_local $x))) - (func (export "floor") (param $x f64) (result f64) (f64.floor (get_local $x))) - (func (export "trunc") (param $x f64) (result f64) (f64.trunc (get_local $x))) - (func (export "nearest") (param $x f64) (result f64) (f64.nearest (get_local $x))) -) - -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1021)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1021)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+1)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+1)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "add" (f64.const inf) (f64.const -inf))) -(assert_return (invoke "add" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p-1021)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p-1021)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+1)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+1)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -inf) (f64.const -inf))) -(assert_return (invoke "sub" (f64.const -inf) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p-2)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p-2)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-2)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-2)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const 0x0p+0))) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const 0x0p+0))) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p-52)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p-52)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-52)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-52)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+52)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+52)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+52)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+52)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1021)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1021)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1021)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1021)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p+1021)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p+1021)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p+1021)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p+1021)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0.2p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0.2p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.2p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.2p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p+1)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p+1)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+1)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+1)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0.4p-1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0.4p-1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.4p-1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.4p-1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const inf)) (f64.const 0x1p-1022)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const inf)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const inf)) (f64.const 0x1p-1)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const inf)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const inf)) (f64.const 0x1p+0)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "min" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -inf)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -inf)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sqrt" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "sqrt" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x0.0000000000001p-1022))) -(assert_return (invoke "sqrt" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-537)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p-1022))) -(assert_return (invoke "sqrt" (f64.const 0x1p-1022)) (f64.const 0x1p-511)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p-1))) -(assert_return (invoke "sqrt" (f64.const 0x1p-1)) (f64.const 0x1.6a09e667f3bcdp-1)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p+0))) -(assert_return (invoke "sqrt" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1.921fb54442d18p+2))) -(assert_return (invoke "sqrt" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.40d931ff62705p+1)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1.fffffffffffffp+1023))) -(assert_return (invoke "sqrt" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+511)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -inf))) -(assert_return (invoke "sqrt" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sqrt" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f64.const nan:0x4000000000000))) -(assert_return (invoke "floor" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "floor" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "floor" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.cp+2)) -(assert_return (invoke "floor" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.8p+2)) -(assert_return (invoke "floor" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "floor" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "floor" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "floor" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "floor" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "floor" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "floor" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "floor" (f64.const nan:0x4000000000000))) -(assert_return (invoke "ceil" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "ceil" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "ceil" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.8p+2)) -(assert_return (invoke "ceil" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.cp+2)) -(assert_return (invoke "ceil" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "ceil" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "ceil" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "ceil" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "ceil" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "ceil" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f64.const nan:0x4000000000000))) -(assert_return (invoke "trunc" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "trunc" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "trunc" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.8p+2)) -(assert_return (invoke "trunc" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.8p+2)) -(assert_return (invoke "trunc" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "trunc" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "trunc" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "trunc" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "trunc" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "trunc" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f64.const nan:0x4000000000000))) -(assert_return (invoke "nearest" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "nearest" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "nearest" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.8p+2)) -(assert_return (invoke "nearest" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.8p+2)) -(assert_return (invoke "nearest" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "nearest" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "nearest" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "nearest" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "nearest" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "nearest" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f64.const nan:0x4000000000000))) diff --git a/tests/samples/f64_bitwise.wast b/tests/samples/f64_bitwise.wast deleted file mode 100644 index 86c64b5..0000000 --- a/tests/samples/f64_bitwise.wast +++ /dev/null @@ -1,369 +0,0 @@ -;; Test all the f64 bitwise operators on major boundary values and all special -;; values. - -(module - (func (export "abs") (param $x f64) (result f64) (f64.abs (get_local $x))) - (func (export "neg") (param $x f64) (result f64) (f64.neg (get_local $x))) - (func (export "copysign") (param $x f64) (param $y f64) (result f64) (f64.copysign (get_local $x) (get_local $y))) -) - -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -nan)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const nan)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -nan)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const nan)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const inf)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const inf)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -nan)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const nan)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -nan)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const nan)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const inf)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const inf)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -nan)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const nan)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -nan)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const nan)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const inf)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const inf)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -nan)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const nan)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -nan)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const nan)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -nan)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const nan)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -nan)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const nan)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -inf)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const inf)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -inf)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const inf)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "abs" (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "abs" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "abs" (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "abs" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "abs" (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "abs" (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "abs" (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "abs" (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "abs" (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "abs" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "abs" (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "abs" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "abs" (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "abs" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "abs" (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "abs" (f64.const inf)) (f64.const inf)) -(assert_return (invoke "abs" (f64.const -nan)) (f64.const nan)) -(assert_return (invoke "abs" (f64.const nan)) (f64.const nan)) -(assert_return (invoke "neg" (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "neg" (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "neg" (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "neg" (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "neg" (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "neg" (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "neg" (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "neg" (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "neg" (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "neg" (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "neg" (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "neg" (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "neg" (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "neg" (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "neg" (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "neg" (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "neg" (f64.const -nan)) (f64.const nan)) -(assert_return (invoke "neg" (f64.const nan)) (f64.const -nan)) diff --git a/tests/samples/f64_cmp.wast b/tests/samples/f64_cmp.wast deleted file mode 100644 index 8fe9be4..0000000 --- a/tests/samples/f64_cmp.wast +++ /dev/null @@ -1,2412 +0,0 @@ -;; Test all the f64 comparison operators on major boundary values and all -;; special values. - -(module - (func (export "eq") (param $x f64) (param $y f64) (result i32) (f64.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x f64) (param $y f64) (result i32) (f64.ne (get_local $x) (get_local $y))) - (func (export "lt") (param $x f64) (param $y f64) (result i32) (f64.lt (get_local $x) (get_local $y))) - (func (export "le") (param $x f64) (param $y f64) (result i32) (f64.le (get_local $x) (get_local $y))) - (func (export "gt") (param $x f64) (param $y f64) (result i32) (f64.gt (get_local $x) (get_local $y))) - (func (export "ge") (param $x f64) (param $y f64) (result i32) (f64.ge (get_local $x) (get_local $y))) -) - -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) diff --git a/tests/samples/fac.wast b/tests/samples/fac.wast deleted file mode 100644 index acc8962..0000000 --- a/tests/samples/fac.wast +++ /dev/null @@ -1,89 +0,0 @@ -(module - ;; Recursive factorial - (func (export "fac-rec") (param i64) (result i64) - (if (result i64) (i64.eq (get_local 0) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul (get_local 0) (call 0 (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - ) - - ;; Recursive factorial named - (func $fac-rec-named (export "fac-rec-named") (param $n i64) (result i64) - (if (result i64) (i64.eq (get_local $n) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local $n) - (call $fac-rec-named (i64.sub (get_local $n) (i64.const 1))) - ) - ) - ) - ) - - ;; Iterative factorial - (func (export "fac-iter") (param i64) (result i64) - (local i64 i64) - (set_local 1 (get_local 0)) - (set_local 2 (i64.const 1)) - (block - (loop - (if - (i64.eq (get_local 1) (i64.const 0)) - (then (br 2)) - (else - (set_local 2 (i64.mul (get_local 1) (get_local 2))) - (set_local 1 (i64.sub (get_local 1) (i64.const 1))) - ) - ) - (br 0) - ) - ) - (get_local 2) - ) - - ;; Iterative factorial named - (func (export "fac-iter-named") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (if - (i64.eq (get_local $i) (i64.const 0)) - (then (br $done)) - (else - (set_local $res (i64.mul (get_local $i) (get_local $res))) - (set_local $i (i64.sub (get_local $i) (i64.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - ;; Optimized factorial. - (func (export "fac-opt") (param i64) (result i64) - (local i64) - (set_local 1 (i64.const 1)) - (block - (br_if 0 (i64.lt_s (get_local 0) (i64.const 2))) - (loop - (set_local 1 (i64.mul (get_local 1) (get_local 0))) - (set_local 0 (i64.add (get_local 0) (i64.const -1))) - (br_if 0 (i64.gt_s (get_local 0) (i64.const 1))) - ) - ) - (get_local 1) - ) -) - -(assert_return (invoke "fac-rec" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-iter" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-rec-named" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-iter-named" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-opt" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_exhaustion (invoke "fac-rec" (i64.const 1073741824)) "call stack exhausted") diff --git a/tests/samples/fact.wast b/tests/samples/fact.wast deleted file mode 100644 index 6550937..0000000 --- a/tests/samples/fact.wast +++ /dev/null @@ -1,117 +0,0 @@ -(module - ;; Recursive factorial - (func (export "fac-rec") (param i64) (result i64) - (if (result i64) (i64.eq (get_local 0) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul (get_local 0) (call 0 (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - ) - - ;; Recursive factorial named - (func $fac-rec-named (export "fac-rec-named") (param $n i64) (result i64) - (if (result i64) (i64.eq (get_local $n) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local $n) - (call $fac-rec-named (i64.sub (get_local $n) (i64.const 1))) - ) - ) - ) - ) - - ;; Recursive factorial named - (func $fac-rec-named-32 (export "fac-rec-named-32") (param $n i32) (result i32) - (if (result i32) (i32.eq (get_local $n) (i32.const 0)) - (then (i32.const 1)) - (else - (i32.mul - (get_local $n) - (call $fac-rec-named-32 (i32.sub (get_local $n) (i32.const 1))) - ) - ) - ) - ) - - ;; Iterative factorial - (func (export "fac-iter") (param i64) (result i64) - (local i64 i64) - (set_local 1 (get_local 0)) - (set_local 2 (i64.const 1)) - (block - (loop - (if - (i64.eq (get_local 1) (i64.const 0)) - (then (br 2)) - (else - (set_local 2 (i64.mul (get_local 1) (get_local 2))) - (set_local 1 (i64.sub (get_local 1) (i64.const 1))) - ) - ) - (br 0) - ) - ) - (get_local 2) - ) - - ;; Iterative factorial named - (func (export "fac-iter-named") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (if - (i64.eq (get_local $i) (i64.const 0)) - (then (br $done)) - (else - (set_local $res (i64.mul (get_local $i) (get_local $res))) - (set_local $i (i64.sub (get_local $i) (i64.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - ;; Iterative factorial named - (func (export "fac-iter-named-32") (param $n i32) (result i32) - (local $i i32) - (local $res i32) - (set_local $i (get_local $n)) - (set_local $res (i32.const 1)) - (block $done - (loop $loop - (if - (i32.eq (get_local $i) (i32.const 0)) - (then (br $done)) - (else - (set_local $res (i32.mul (get_local $i) (get_local $res))) - (set_local $i (i32.sub (get_local $i) (i32.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - ;; Optimized factorial. - (func (export "fac-opt") (param i64) (result i64) - (local i64) - (set_local 1 (i64.const 1)) - (block - (br_if 0 (i64.lt_s (get_local 0) (i64.const 2))) - (loop - (set_local 1 (i64.mul (get_local 1) (get_local 0))) - (set_local 0 (i64.add (get_local 0) (i64.const -1))) - (br_if 0 (i64.gt_s (get_local 0) (i64.const 1))) - ) - ) - (get_local 1) - ) -) \ No newline at end of file diff --git a/tests/samples/float_exprs.wast b/tests/samples/float_exprs.wast deleted file mode 100644 index 5cee2d4..0000000 --- a/tests/samples/float_exprs.wast +++ /dev/null @@ -1,2570 +0,0 @@ -;; Test interesting floating-point "expressions". These tests contain code -;; patterns which tempt common value-changing optimizations. - -;; Test that x*y+z is not done with x87-style intermediate precision. - -(module - (func (export "f64.no_contraction") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.add (f64.mul (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f64.no_contraction" (f64.const -0x1.9e87ce14273afp-103) (f64.const 0x1.2515ad31db63ep+664) (f64.const 0x1.868c6685e6185p+533)) (f64.const -0x1.da94885b11493p+561)) -(assert_return (invoke "f64.no_contraction" (f64.const 0x1.da21c460a6f44p+52) (f64.const 0x1.60859d2e7714ap-321) (f64.const 0x1.e63f1b7b660e1p-302)) (f64.const 0x1.4672f256d1794p-268)) -(assert_return (invoke "f64.no_contraction" (f64.const -0x1.f3eaf43f327cp-594) (f64.const 0x1.dfcc009906b57p+533) (f64.const 0x1.5984e03c520a1p-104)) (f64.const -0x1.d4797fb3db166p-60)) -(assert_return (invoke "f64.no_contraction" (f64.const 0x1.dab6c772cb2e2p-69) (f64.const -0x1.d761663679a84p-101) (f64.const 0x1.f22f92c843226p-218)) (f64.const -0x1.b50d72dfcef68p-169)) -(assert_return (invoke "f64.no_contraction" (f64.const -0x1.87c5def1e4d3dp-950) (f64.const -0x1.50cd5dab2207fp+935) (f64.const 0x1.e629bd0da8c5dp-54)) (f64.const 0x1.01b6feb4e78a7p-14)) - -;; Test that x*y+z is not folded to fma. - -(module - (func (export "f32.no_fma") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.add (f32.mul (get_local $x) (get_local $y)) (get_local $z))) - (func (export "f64.no_fma") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.add (f64.mul (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f32.no_fma" (f32.const 0x1.a78402p+124) (f32.const 0x1.cf8548p-23) (f32.const 0x1.992adap+107)) (f32.const 0x1.a5262cp+107)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.ed15a4p-28) (f32.const -0x1.613c72p-50) (f32.const 0x1.4757bp-88)) (f32.const -0x1.5406b8p-77)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.ae63a2p+37) (f32.const 0x1.b3a59ap-13) (f32.const 0x1.c16918p+10)) (f32.const 0x1.6e385cp+25)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.2a77fap-8) (f32.const -0x1.bb7356p+22) (f32.const -0x1.32be2ap+1)) (f32.const -0x1.0286d4p+15)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.298fb6p+126) (f32.const -0x1.03080cp-70) (f32.const -0x1.418de6p+34)) (f32.const -0x1.2d15c6p+56)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.ac357ff46eed4p+557) (f64.const 0x1.852c01a5e7297p+430) (f64.const -0x1.05995704eda8ap+987)) (f64.const 0x1.855d905d338ep+987)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.e2fd6bf32010cp+749) (f64.const 0x1.01c2238d405e4p-130) (f64.const 0x1.2ecc0db4b9f94p+573)) (f64.const 0x1.e64eb07e063bcp+619)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.92b7c7439ede3p-721) (f64.const -0x1.6aa97586d3de6p+1011) (f64.const 0x1.8de4823f6358ap+237)) (f64.const -0x1.1d4139fd20ecdp+291)) -(assert_return (invoke "f64.no_fma" (f64.const -0x1.466d30bddb453p-386) (f64.const -0x1.185a4d739c7aap+443) (f64.const 0x1.5f9c436fbfc7bp+55)) (f64.const 0x1.bd61a350fcc1ap+57)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.7e2c44058a799p+52) (f64.const 0x1.c73b71765b8b2p+685) (f64.const -0x1.16c641df0b108p+690)) (f64.const 0x1.53ccb53de0bd1p+738)) - -;; Test that x+0.0 is not folded to x. -;; See IEEE 754-2008 10.4 "Literal meaning and value-changing optimizations". - -(module - (func (export "f32.no_fold_add_zero") (param $x f32) (result f32) - (f32.add (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_add_zero") (param $x f64) (result f64) - (f64.add (get_local $x) (f64.const 0.0))) -) - -(assert_return (invoke "f32.no_fold_add_zero" (f32.const -0.0)) (f32.const 0.0)) -(assert_return (invoke "f64.no_fold_add_zero" (f64.const -0.0)) (f64.const 0.0)) -(assert_return_arithmetic_nan (invoke "f32.no_fold_add_zero" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_add_zero" (f64.const nan:0x4000000000000))) - -;; Test that 0.0 - x is not folded to -x. - -(module - (func (export "f32.no_fold_zero_sub") (param $x f32) (result f32) - (f32.sub (f32.const 0.0) (get_local $x))) - (func (export "f64.no_fold_zero_sub") (param $x f64) (result f64) - (f64.sub (f64.const 0.0) (get_local $x))) -) - -(assert_return (invoke "f32.no_fold_zero_sub" (f32.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f64.no_fold_zero_sub" (f64.const 0.0)) (f64.const 0.0)) -(assert_return_arithmetic_nan (invoke "f32.no_fold_zero_sub" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_zero_sub" (f64.const nan:0x4000000000000))) - -;; Test that x - 0.0 is not folded to x. - -(module - (func (export "f32.no_fold_sub_zero") (param $x f32) (result f32) - (f32.sub (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_sub_zero") (param $x f64) (result f64) - (f64.sub (get_local $x) (f64.const 0.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_sub_zero" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_sub_zero" (f64.const nan:0x4000000000000))) - -;; Test that x*0.0 is not folded to 0.0. - -(module - (func (export "f32.no_fold_mul_zero") (param $x f32) (result f32) - (f32.mul (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_mul_zero") (param $x f64) (result f64) - (f64.mul (get_local $x) (f64.const 0.0))) -) - -(assert_return (invoke "f32.no_fold_mul_zero" (f32.const -0.0)) (f32.const -0.0)) -(assert_return (invoke "f32.no_fold_mul_zero" (f32.const -1.0)) (f32.const -0.0)) -(assert_return (invoke "f32.no_fold_mul_zero" (f32.const -2.0)) (f32.const -0.0)) -(assert_return_arithmetic_nan (invoke "f32.no_fold_mul_zero" (f32.const nan:0x200000))) -(assert_return (invoke "f64.no_fold_mul_zero" (f64.const -0.0)) (f64.const -0.0)) -(assert_return (invoke "f64.no_fold_mul_zero" (f64.const -1.0)) (f64.const -0.0)) -(assert_return (invoke "f64.no_fold_mul_zero" (f64.const -2.0)) (f64.const -0.0)) -(assert_return_arithmetic_nan (invoke "f64.no_fold_mul_zero" (f64.const nan:0x4000000000000))) - -;; Test that x*1.0 is not folded to x. -;; See IEEE 754-2008 10.4 "Literal meaning and value-changing optimizations". - -(module - (func (export "f32.no_fold_mul_one") (param $x f32) (result f32) - (f32.mul (get_local $x) (f32.const 1.0))) - (func (export "f64.no_fold_mul_one") (param $x f64) (result f64) - (f64.mul (get_local $x) (f64.const 1.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_mul_one" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_mul_one" (f64.const nan:0x4000000000000))) - -;; Test that 0.0/x is not folded to 0.0. - -(module - (func (export "f32.no_fold_zero_div") (param $x f32) (result f32) - (f32.div (f32.const 0.0) (get_local $x))) - (func (export "f64.no_fold_zero_div") (param $x f64) (result f64) - (f64.div (f64.const 0.0) (get_local $x))) -) - -(assert_return_canonical_nan (invoke "f32.no_fold_zero_div" (f32.const 0.0))) -(assert_return_canonical_nan (invoke "f32.no_fold_zero_div" (f32.const -0.0))) -(assert_return_canonical_nan (invoke "f32.no_fold_zero_div" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "f32.no_fold_zero_div" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f64.no_fold_zero_div" (f64.const 0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_zero_div" (f64.const -0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_zero_div" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_zero_div" (f64.const nan:0x4000000000000))) - -;; Test that x/1.0 is not folded to x. - -(module - (func (export "f32.no_fold_div_one") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const 1.0))) - (func (export "f64.no_fold_div_one") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const 1.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_one" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_one" (f64.const nan:0x4000000000000))) - -;; Test that x/-1.0 is not folded to -x. - -(module - (func (export "f32.no_fold_div_neg1") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const -1.0))) - (func (export "f64.no_fold_div_neg1") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const -1.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_neg1" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_neg1" (f64.const nan:0x4000000000000))) - -;; Test that -0.0 - x is not folded to -x. - -(module - (func (export "f32.no_fold_neg0_sub") (param $x f32) (result f32) - (f32.sub (f32.const -0.0) (get_local $x))) - (func (export "f64.no_fold_neg0_sub") (param $x f64) (result f64) - (f64.sub (f64.const -0.0) (get_local $x))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_neg0_sub" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_neg0_sub" (f64.const nan:0x4000000000000))) - -;; Test that -1.0 * x is not folded to -x. - -(module - (func (export "f32.no_fold_neg1_mul") (param $x f32) (result f32) - (f32.mul (f32.const -1.0) (get_local $x))) - (func (export "f64.no_fold_neg1_mul") (param $x f64) (result f64) - (f64.mul (f64.const -1.0) (get_local $x))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_neg1_mul" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_neg1_mul" (f64.const nan:0x4000000000000))) - -;; Test that x == x is not folded to true. - -(module - (func (export "f32.no_fold_eq_self") (param $x f32) (result i32) - (f32.eq (get_local $x) (get_local $x))) - (func (export "f64.no_fold_eq_self") (param $x f64) (result i32) - (f64.eq (get_local $x) (get_local $x))) -) - -(assert_return (invoke "f32.no_fold_eq_self" (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_fold_eq_self" (f64.const nan)) (i32.const 0)) - -;; Test that x != x is not folded to false. - -(module - (func (export "f32.no_fold_ne_self") (param $x f32) (result i32) - (f32.ne (get_local $x) (get_local $x))) - (func (export "f64.no_fold_ne_self") (param $x f64) (result i32) - (f64.ne (get_local $x) (get_local $x))) -) - -(assert_return (invoke "f32.no_fold_ne_self" (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f64.no_fold_ne_self" (f64.const nan)) (i32.const 1)) - -;; Test that x - x is not folded to 0.0. - -(module - (func (export "f32.no_fold_sub_self") (param $x f32) (result f32) - (f32.sub (get_local $x) (get_local $x))) - (func (export "f64.no_fold_sub_self") (param $x f64) (result f64) - (f64.sub (get_local $x) (get_local $x))) -) - -(assert_return_canonical_nan (invoke "f32.no_fold_sub_self" (f32.const inf))) -(assert_return_canonical_nan (invoke "f32.no_fold_sub_self" (f32.const nan))) -(assert_return_canonical_nan (invoke "f64.no_fold_sub_self" (f64.const inf))) -(assert_return_canonical_nan (invoke "f64.no_fold_sub_self" (f64.const nan))) - -;; Test that x / x is not folded to 1.0. - -(module - (func (export "f32.no_fold_div_self") (param $x f32) (result f32) - (f32.div (get_local $x) (get_local $x))) - (func (export "f64.no_fold_div_self") (param $x f64) (result f64) - (f64.div (get_local $x) (get_local $x))) -) - -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const inf))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const nan))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const 0.0))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const -0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const inf))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const nan))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const 0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const -0.0))) - -;; Test that x/3 is not folded to x*(1/3). - -(module - (func (export "f32.no_fold_div_3") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const 3.0))) - (func (export "f64.no_fold_div_3") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const 3.0))) -) - -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.359c26p+50)) (f32.const -0x1.9cd032p+48)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.e45646p+93)) (f32.const -0x1.42e42ep+92)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.2a3916p-83)) (f32.const -0x1.8da172p-85)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.1f8b38p-124)) (f32.const -0x1.7f644ap-126)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.d64f64p-56)) (f32.const -0x1.398a42p-57)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const -0x1.a8a88d29e2cc3p+632)) (f64.const -0x1.1b1b08c69732dp+631)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const -0x1.bcf52dc950972p-167)) (f64.const -0x1.28a373db8b0f7p-168)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const 0x1.bd3c0d989f7a4p-874)) (f64.const 0x1.28d2b3bb14fc3p-875)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const -0x1.0138bf530a53cp+1007)) (f64.const -0x1.56f6546eb86fbp+1005)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const 0x1.052b87f9d794dp+415)) (f64.const 0x1.5c3a0aa274c67p+413)) - -;; Test that (x*z)+(y*z) is not folded to (x+y)*z. - -(module - (func (export "f32.no_factor") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.add (f32.mul (get_local $x) (get_local $z)) (f32.mul (get_local $y) (get_local $z)))) - (func (export "f64.no_factor") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.add (f64.mul (get_local $x) (get_local $z)) (f64.mul (get_local $y) (get_local $z)))) -) - -(assert_return (invoke "f32.no_factor" (f32.const -0x1.4e2352p+40) (f32.const -0x1.842e2cp+49) (f32.const 0x1.eea602p+59)) (f32.const -0x1.77a7dp+109)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.b4e7f6p-6) (f32.const 0x1.8c990cp-5) (f32.const -0x1.70cc02p-9)) (f32.const -0x1.00a342p-14)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.06722ep-41) (f32.const 0x1.eed3cep-64) (f32.const 0x1.5c5558p+123)) (f32.const -0x1.651aaep+82)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.f8c6a4p-64) (f32.const 0x1.08c806p-83) (f32.const 0x1.b5ceccp+118)) (f32.const -0x1.afa15p+55)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.3aaa1ep-84) (f32.const 0x1.c6d5eep-71) (f32.const 0x1.8d2924p+20)) (f32.const 0x1.60c9cep-50)) -(assert_return (invoke "f64.no_factor" (f64.const 0x1.3adeda9144977p-424) (f64.const 0x1.c15af887049e1p-462) (f64.const -0x1.905179c4c4778p-225)) (f64.const -0x1.ec606bcb87b1ap-649)) -(assert_return (invoke "f64.no_factor" (f64.const 0x1.3c84821c1d348p-662) (f64.const -0x1.4ffd4c77ad037p-1009) (f64.const -0x1.dd275335c6f4p-957)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.no_factor" (f64.const -0x1.074f372347051p-334) (f64.const -0x1.aaeef661f4c96p-282) (f64.const -0x1.9bd34abe8696dp+479)) (f64.const 0x1.5767029593e2p+198)) -(assert_return (invoke "f64.no_factor" (f64.const -0x1.c4ded58a6f389p-289) (f64.const 0x1.ba6fdef5d59c9p-260) (f64.const -0x1.c1201c0470205p-253)) (f64.const -0x1.841ada2e0f184p-512)) -(assert_return (invoke "f64.no_factor" (f64.const 0x1.9d3688f8e375ap-608) (f64.const 0x1.bf91311588256p-579) (f64.const -0x1.1605a6b5d5ff8p+489)) (f64.const -0x1.e6118ca76af53p-90)) - -;; Test that (x+y)*z is not folded to (x*z)+(y*z). - -(module - (func (export "f32.no_distribute") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.mul (f32.add (get_local $x) (get_local $y)) (get_local $z))) - (func (export "f64.no_distribute") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.mul (f64.add (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.4e2352p+40) (f32.const -0x1.842e2cp+49) (f32.const 0x1.eea602p+59)) (f32.const -0x1.77a7d2p+109)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.b4e7f6p-6) (f32.const 0x1.8c990cp-5) (f32.const -0x1.70cc02p-9)) (f32.const -0x1.00a34p-14)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.06722ep-41) (f32.const 0x1.eed3cep-64) (f32.const 0x1.5c5558p+123)) (f32.const -0x1.651abp+82)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.f8c6a4p-64) (f32.const 0x1.08c806p-83) (f32.const 0x1.b5ceccp+118)) (f32.const -0x1.afa14ep+55)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.3aaa1ep-84) (f32.const 0x1.c6d5eep-71) (f32.const 0x1.8d2924p+20)) (f32.const 0x1.60c9ccp-50)) -(assert_return (invoke "f64.no_distribute" (f64.const 0x1.3adeda9144977p-424) (f64.const 0x1.c15af887049e1p-462) (f64.const -0x1.905179c4c4778p-225)) (f64.const -0x1.ec606bcb87b1bp-649)) -(assert_return (invoke "f64.no_distribute" (f64.const 0x1.3c84821c1d348p-662) (f64.const -0x1.4ffd4c77ad037p-1009) (f64.const -0x1.dd275335c6f4p-957)) (f64.const -0x0p+0)) -(assert_return (invoke "f64.no_distribute" (f64.const -0x1.074f372347051p-334) (f64.const -0x1.aaeef661f4c96p-282) (f64.const -0x1.9bd34abe8696dp+479)) (f64.const 0x1.5767029593e1fp+198)) -(assert_return (invoke "f64.no_distribute" (f64.const -0x1.c4ded58a6f389p-289) (f64.const 0x1.ba6fdef5d59c9p-260) (f64.const -0x1.c1201c0470205p-253)) (f64.const -0x1.841ada2e0f183p-512)) -(assert_return (invoke "f64.no_distribute" (f64.const 0x1.9d3688f8e375ap-608) (f64.const 0x1.bf91311588256p-579) (f64.const -0x1.1605a6b5d5ff8p+489)) (f64.const -0x1.e6118ca76af52p-90)) - -;; Test that x*(y/z) is not folded to (x*y)/z. - -(module - (func (export "f32.no_regroup_div_mul") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.mul (get_local $x) (f32.div (get_local $y) (get_local $z)))) - (func (export "f64.no_regroup_div_mul") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.mul (get_local $x) (f64.div (get_local $y) (get_local $z)))) -) - -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.2d14a6p-115) (f32.const -0x1.575a6cp-64) (f32.const 0x1.5cee0ep-116)) (f32.const 0x1.2844cap-63)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.454738p+91) (f32.const -0x1.b28a66p-115) (f32.const -0x1.f53908p+72)) (f32.const -0x0p+0)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.6be56ep+16) (f32.const -0x1.b46fc6p-21) (f32.const -0x1.a51df6p-123)) (f32.const -0x1.792258p+118)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.c343f8p-94) (f32.const 0x1.e4d906p+73) (f32.const 0x1.be69f8p+68)) (f32.const -0x1.ea1df2p-89)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const 0x1.c6ae76p+112) (f32.const 0x1.fc953cp+24) (f32.const -0x1.60b3e8p+71)) (f32.const -0x1.47d0eap+66)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.3c04b815e30bp-423) (f64.const -0x1.379646fd98127p-119) (f64.const 0x1.bddb158506031p-642)) (f64.const -0x1.b9b3301f2dd2dp+99)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.46b3a402f86d5p+337) (f64.const 0x1.6fbf1b9e1798dp-447) (f64.const -0x1.bd9704a5a6a06p+797)) (f64.const -0x0p+0)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.6c9765bb4347fp-479) (f64.const 0x1.a4af42e34a141p+902) (f64.const 0x1.d2dde70eb68f9p-448)) (f64.const inf)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const -0x1.706023645be72p+480) (f64.const -0x1.6c229f7d9101dp+611) (f64.const -0x1.4d50fa68d3d9ep+836)) (f64.const -0x1.926fa3cacc651p+255)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.8cc63d8caf4c7p-599) (f64.const 0x1.8671ac4c35753p-878) (f64.const -0x1.ef35b1695e659p-838)) (f64.const -0x1.38d55f56406dp-639)) - -;; Test that (x*y)/z is not folded to x*(y/z). - -(module - (func (export "f32.no_regroup_mul_div") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.div (f32.mul (get_local $x) (get_local $y)) (get_local $z))) - (func (export "f64.no_regroup_mul_div") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.div (f64.mul (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.2d14a6p-115) (f32.const -0x1.575a6cp-64) (f32.const 0x1.5cee0ep-116)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.454738p+91) (f32.const -0x1.b28a66p-115) (f32.const -0x1.f53908p+72)) (f32.const -0x1.1a00e8p-96)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.6be56ep+16) (f32.const -0x1.b46fc6p-21) (f32.const -0x1.a51df6p-123)) (f32.const -0x1.79225ap+118)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.c343f8p-94) (f32.const 0x1.e4d906p+73) (f32.const 0x1.be69f8p+68)) (f32.const -0x1.ea1df4p-89)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const 0x1.c6ae76p+112) (f32.const 0x1.fc953cp+24) (f32.const -0x1.60b3e8p+71)) (f32.const -inf)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.3c04b815e30bp-423) (f64.const -0x1.379646fd98127p-119) (f64.const 0x1.bddb158506031p-642)) (f64.const -0x1.b9b3301f2dd2ep+99)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.46b3a402f86d5p+337) (f64.const 0x1.6fbf1b9e1798dp-447) (f64.const -0x1.bd9704a5a6a06p+797)) (f64.const -0x1.0da0b6328e09p-907)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.6c9765bb4347fp-479) (f64.const 0x1.a4af42e34a141p+902) (f64.const 0x1.d2dde70eb68f9p-448)) (f64.const 0x1.4886b6d9a9a79p+871)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const -0x1.706023645be72p+480) (f64.const -0x1.6c229f7d9101dp+611) (f64.const -0x1.4d50fa68d3d9ep+836)) (f64.const -inf)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.8cc63d8caf4c7p-599) (f64.const 0x1.8671ac4c35753p-878) (f64.const -0x1.ef35b1695e659p-838)) (f64.const -0x0p+0)) - -;; Test that x+y+z+w is not reassociated. - -(module - (func (export "f32.no_reassociate_add") (param $x f32) (param $y f32) (param $z f32) (param $w f32) (result f32) - (f32.add (f32.add (f32.add (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) - (func (export "f64.no_reassociate_add") (param $x f64) (param $y f64) (param $z f64) (param $w f64) (result f64) - (f64.add (f64.add (f64.add (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) -) - -(assert_return (invoke "f32.no_reassociate_add" (f32.const -0x1.5f7ddcp+44) (f32.const 0x1.854e1p+34) (f32.const -0x1.b2068cp+47) (f32.const -0x1.209692p+41)) (f32.const -0x1.e26c76p+47)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const 0x1.da3b78p-9) (f32.const -0x1.4312fap-7) (f32.const 0x1.0395e6p-4) (f32.const -0x1.6d5ea6p-7)) (f32.const 0x1.78b31ap-5)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const -0x1.fdb93ap+34) (f32.const -0x1.b6fce6p+41) (f32.const 0x1.c131d8p+44) (f32.const 0x1.8835b6p+38)) (f32.const 0x1.8ff3a2p+44)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const 0x1.1739fcp+47) (f32.const 0x1.a4b186p+49) (f32.const -0x1.0c623cp+35) (f32.const 0x1.16a102p+51)) (f32.const 0x1.913ff6p+51)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const 0x1.733cfap+108) (f32.const -0x1.38d30cp+108) (f32.const 0x1.2f5854p+105) (f32.const -0x1.ccb058p+94)) (f32.const 0x1.813716p+106)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.697a4d9ff19a6p+841) (f64.const 0x1.b305466238397p+847) (f64.const 0x1.e0b2d9bfb4e72p+855) (f64.const -0x1.6e1f3ae2b06bbp+857)) (f64.const -0x1.eb0e5936f087ap+856)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const 0x1.00ef6746b30e1p-543) (f64.const 0x1.cc1cfafdf3fe1p-544) (f64.const -0x1.f7726df3ecba6p-543) (f64.const -0x1.b26695f99d307p-594)) (f64.const -0x1.074892e3fad76p-547)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.e807b3bd6d854p+440) (f64.const 0x1.cedae26c2c5fp+407) (f64.const -0x1.00ab6e1442541p+437) (f64.const 0x1.28538a55997bdp+397)) (f64.const -0x1.040e90bf871ebp+441)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.ba2b6f35a2402p-317) (f64.const 0x1.ad1c3fea7cd9ep-307) (f64.const -0x1.93aace2bf1261p-262) (f64.const 0x1.9fddbe472847ep-260)) (f64.const 0x1.3af30abc2c01bp-260)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.ccb9c6092fb1dp+641) (f64.const -0x1.4b7c28c108244p+614) (f64.const 0x1.8a7cefef4bde1p+646) (f64.const -0x1.901b28b08b482p+644)) (f64.const 0x1.1810579194126p+646)) - -;; Test that x*y*z*w is not reassociated. - -(module - (func (export "f32.no_reassociate_mul") (param $x f32) (param $y f32) (param $z f32) (param $w f32) (result f32) - (f32.mul (f32.mul (f32.mul (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) - (func (export "f64.no_reassociate_mul") (param $x f64) (param $y f64) (param $z f64) (param $w f64) (result f64) - (f64.mul (f64.mul (f64.mul (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) -) - -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.950ba8p-116) (f32.const 0x1.efdacep-33) (f32.const -0x1.5f9bcp+102) (f32.const 0x1.f04508p-56)) (f32.const -0x1.ff356ep-101)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.5990aep-56) (f32.const -0x1.7dfb04p+102) (f32.const -0x1.4f774ap-125) (f32.const -0x1.595fe6p+70)) (f32.const -0x1.c7c8fcp-8)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.6ad9a4p-48) (f32.const -0x1.9138aap+55) (f32.const -0x1.4a774ep-40) (f32.const 0x1.1ff08p+76)) (f32.const 0x1.9cd8ecp+44)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.e1caecp-105) (f32.const 0x1.af0dd2p+77) (f32.const -0x1.016eep+56) (f32.const -0x1.ab70d6p+59)) (f32.const 0x1.54870ep+89)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const -0x1.3b1dcp-99) (f32.const 0x1.4e5a34p-49) (f32.const -0x1.38ba5ap+3) (f32.const 0x1.7fb8eep+59)) (f32.const 0x1.5bbf98p-85)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const -0x1.e7842ab7181p-667) (f64.const -0x1.fabf40ceeceafp+990) (f64.const -0x1.1a38a825ab01ap-376) (f64.const -0x1.27e8ea469b14fp+664)) (f64.const 0x1.336eb428af4f3p+613)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.4ca2292a6acbcp+454) (f64.const 0x1.6ffbab850089ap-516) (f64.const -0x1.547c32e1f5b93p-899) (f64.const -0x1.c7571d9388375p+540)) (f64.const 0x1.1ac796954fc1p-419)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.73881a52e0401p-501) (f64.const -0x1.1b68dd9efb1a7p+788) (f64.const 0x1.d1c5e6a3eb27cp-762) (f64.const -0x1.56cb2fcc7546fp+88)) (f64.const 0x1.f508db92c34efp-386)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.2efa87859987cp+692) (f64.const 0x1.68e4373e241p-423) (f64.const 0x1.4e2d0fb383a57p+223) (f64.const -0x1.301d3265c737bp-23)) (f64.const -0x1.4b2b6c393f30cp+470)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.1013f7498b95fp-234) (f64.const 0x1.d2d1c36fff138p-792) (f64.const -0x1.cbf1824ea7bfdp+728) (f64.const -0x1.440da9c8b836dp-599)) (f64.const 0x1.1a16512881c91p-895)) - -;; Test that x/0 is not folded away. - -(module - (func (export "f32.no_fold_div_0") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_div_0") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const 0.0))) -) - -(assert_return (invoke "f32.no_fold_div_0" (f32.const 1.0)) (f32.const inf)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const -1.0)) (f32.const -inf)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const inf)) (f32.const inf)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const -inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "f32.no_fold_div_0" (f32.const 0))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_0" (f32.const -0))) -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_0" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_0" (f32.const nan))) -(assert_return (invoke "f64.no_fold_div_0" (f64.const 1.0)) (f64.const inf)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const -1.0)) (f64.const -inf)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const inf)) (f64.const inf)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const -inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "f64.no_fold_div_0" (f64.const 0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_0" (f64.const -0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_0" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_0" (f64.const nan:0x4000000000000))) - -;; Test that x/-0 is not folded away. - -(module - (func (export "f32.no_fold_div_neg0") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const -0.0))) - (func (export "f64.no_fold_div_neg0") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const -0.0))) -) - -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const 1.0)) (f32.const -inf)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const -1.0)) (f32.const inf)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const -inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "f32.no_fold_div_neg0" (f32.const 0))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_neg0" (f32.const -0))) -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_neg0" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_neg0" (f32.const nan))) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const 1.0)) (f64.const -inf)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const -1.0)) (f64.const inf)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const -inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "f64.no_fold_div_neg0" (f64.const 0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_neg0" (f64.const -0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_neg0" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_neg0" (f64.const nan:0x4000000000000))) - -;; Test that sqrt(x*x+y*y) is not folded to hypot. - -(module - (func (export "f32.no_fold_to_hypot") (param $x f32) (param $y f32) (result f32) - (f32.sqrt (f32.add (f32.mul (get_local $x) (get_local $x)) - (f32.mul (get_local $y) (get_local $y))))) - (func (export "f64.no_fold_to_hypot") (param $x f64) (param $y f64) (result f64) - (f64.sqrt (f64.add (f64.mul (get_local $x) (get_local $x)) - (f64.mul (get_local $y) (get_local $y))))) -) - -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const 0x1.c2f338p-81) (f32.const 0x1.401b5ep-68)) (f32.const 0x1.401cccp-68)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const -0x1.c38d1p-71) (f32.const -0x1.359ddp-107)) (f32.const 0x1.c36a62p-71)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const -0x1.99e0cap-114) (f32.const -0x1.ed0c6cp-69)) (f32.const 0x1.ed0e48p-69)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const -0x1.1b6ceap+5) (f32.const 0x1.5440bep+17)) (f32.const 0x1.5440cp+17)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const 0x1.8f019ep-76) (f32.const -0x1.182308p-71)) (f32.const 0x1.17e2bcp-71)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.1a0ac4f7c8711p-636) (f64.const 0x1.1372ebafff551p-534)) (f64.const 0x1.13463fa37014ep-534)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.b793512167499p+395) (f64.const -0x1.11cbc52af4c36p+410)) (f64.const 0x1.11cbc530783a2p+410)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.76777f44ff40bp-536) (f64.const -0x1.c3896e4dc1fbp-766)) (f64.const 0x1.8p-536)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const -0x1.889ac72cc6b5dp-521) (f64.const 0x1.8d7084e659f3bp-733)) (f64.const 0x1.889ac72ca843ap-521)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.5ee588c02cb08p-670) (f64.const -0x1.05ce25788d9ecp-514)) (f64.const 0x1.05ce25788d9dfp-514)) - -;; Test that 1.0/x isn't approximated. - -(module - (func (export "f32.no_approximate_reciprocal") (param $x f32) (result f32) - (f32.div (f32.const 1.0) (get_local $x))) -) - -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const -0x1.2900b6p-10)) (f32.const -0x1.b950d4p+9)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const 0x1.e7212p+127)) (f32.const 0x1.0d11f8p-128)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const -0x1.42a466p-93)) (f32.const -0x1.963ee6p+92)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const 0x1.5d0c32p+76)) (f32.const 0x1.778362p-77)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const -0x1.601de2p-82)) (f32.const -0x1.743d7ep+81)) - -;; Test that 1.0/sqrt(x) isn't approximated or fused. - -(module - (func (export "f32.no_approximate_reciprocal_sqrt") (param $x f32) (result f32) - (f32.div (f32.const 1.0) (f32.sqrt (get_local $x)))) - (func (export "f64.no_fuse_reciprocal_sqrt") (param $x f64) (result f64) - (f64.div (f64.const 1.0) (f64.sqrt (get_local $x)))) -) - -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.6af12ap-43)) (f32.const 0x1.300ed4p+21)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.e82fc6p-8)) (f32.const 0x1.72c376p+3)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.b9fa9cp-66)) (f32.const 0x1.85a9bap+32)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.f4f546p-44)) (f32.const 0x1.6e01c2p+21)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.5da7aap-86)) (f32.const 0x1.b618cap+42)) - -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.1568a63b55fa3p+889)) (f64.const 0x1.5bc9c74c9952p-445)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.239fcd0939cafp+311)) (f64.const 0x1.5334a922b4818p-156)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.6e36a24e11054p+104)) (f64.const 0x1.ac13f20977f29p-53)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.23ee173219f83p+668)) (f64.const 0x1.df753e055862dp-335)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.b30f74caf9babp+146)) (f64.const 0x1.88bfc3d1764a9p-74)) - -;; Test that sqrt(1.0/x) isn't approximated. - -(module - (func (export "f32.no_approximate_sqrt_reciprocal") (param $x f32) (result f32) - (f32.sqrt (f32.div (f32.const 1.0) (get_local $x)))) -) - -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.a4c986p+60)) (f32.const 0x1.8f5ac6p-31)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.50511ep-9)) (f32.const 0x1.3bdd46p+4)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.125ec2p+69)) (f32.const 0x1.5db572p-35)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.ba4c5p+13)) (f32.const 0x1.136f16p-7)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.4a5be2p+104)) (f32.const 0x1.c2b5bp-53)) - -;; Test that converting i32/i64 to f32/f64 and back isn't folded away. - -(module - (func (export "i32.no_fold_f32_s") (param i32) (result i32) - (i32.trunc_s/f32 (f32.convert_s/i32 (get_local 0)))) - (func (export "i32.no_fold_f32_u") (param i32) (result i32) - (i32.trunc_u/f32 (f32.convert_u/i32 (get_local 0)))) - (func (export "i64.no_fold_f64_s") (param i64) (result i64) - (i64.trunc_s/f64 (f64.convert_s/i64 (get_local 0)))) - (func (export "i64.no_fold_f64_u") (param i64) (result i64) - (i64.trunc_u/f64 (f64.convert_u/i64 (get_local 0)))) -) - -(assert_return (invoke "i32.no_fold_f32_s" (i32.const 0x1000000)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_s" (i32.const 0x1000001)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_s" (i32.const 0xf0000010)) (i32.const 0xf0000010)) - -(assert_return (invoke "i32.no_fold_f32_u" (i32.const 0x1000000)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_u" (i32.const 0x1000001)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_u" (i32.const 0xf0000010)) (i32.const 0xf0000000)) - -(assert_return (invoke "i64.no_fold_f64_s" (i64.const 0x20000000000000)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_s" (i64.const 0x20000000000001)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_s" (i64.const 0xf000000000000400)) (i64.const 0xf000000000000400)) - -(assert_return (invoke "i64.no_fold_f64_u" (i64.const 0x20000000000000)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_u" (i64.const 0x20000000000001)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_u" (i64.const 0xf000000000000400)) (i64.const 0xf000000000000000)) - -;; Test that x+y-y is not folded to x. - -(module - (func (export "f32.no_fold_add_sub") (param $x f32) (param $y f32) (result f32) - (f32.sub (f32.add (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_add_sub") (param $x f64) (param $y f64) (result f64) - (f64.sub (f64.add (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_add_sub" (f32.const 0x1.b553e4p-47) (f32.const -0x1.67db2cp-26)) (f32.const 0x1.cp-47)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const -0x1.a884dp-23) (f32.const 0x1.f2ae1ep-19)) (f32.const -0x1.a884ep-23)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const -0x1.fc04fp+82) (f32.const -0x1.65403ap+101)) (f32.const -0x1p+83)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const 0x1.870fa2p-78) (f32.const 0x1.c54916p-56)) (f32.const 0x1.8p-78)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const -0x1.17e966p-108) (f32.const -0x1.5fa61ap-84)) (f32.const -0x1p-107)) - -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.1053ea172dba8p-874) (f64.const 0x1.113c413408ac8p-857)) (f64.const -0x1.1053ea172p-874)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const 0x1.e377d54807972p-546) (f64.const 0x1.040a0a4d1ff7p-526)) (f64.const 0x1.e377d548p-546)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.75f53cd926b62p-30) (f64.const -0x1.66b176e602bb5p-3)) (f64.const -0x1.75f53dp-30)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.c450ff28332ap-341) (f64.const 0x1.15a5855023baep-305)) (f64.const -0x1.c451p-341)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.1ad4a596d3ea8p-619) (f64.const -0x1.17d81a41c0ea8p-588)) (f64.const -0x1.1ad4a8p-619)) - -;; Test that x-y+y is not folded to x. - -(module - (func (export "f32.no_fold_sub_add") (param $x f32) (param $y f32) (result f32) - (f32.add (f32.sub (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_sub_add") (param $x f64) (param $y f64) (result f64) - (f64.add (f64.sub (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_sub_add" (f32.const -0x1.523cb8p+9) (f32.const 0x1.93096cp+8)) (f32.const -0x1.523cbap+9)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const -0x1.a31a1p-111) (f32.const 0x1.745efp-95)) (f32.const -0x1.a4p-111)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const 0x1.3d5328p+26) (f32.const 0x1.58567p+35)) (f32.const 0x1.3d54p+26)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const 0x1.374e26p-39) (f32.const -0x1.66a5p-27)) (f32.const 0x1.374p-39)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const 0x1.320facp-3) (f32.const -0x1.ac069ap+14)) (f32.const 0x1.34p-3)) - -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.8f92aad2c9b8dp+255) (f64.const -0x1.08cd4992266cbp+259)) (f64.const 0x1.8f92aad2c9b9p+255)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.5aaff55742c8bp-666) (f64.const 0x1.8f5f47181f46dp-647)) (f64.const 0x1.5aaff5578p-666)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.21bc52967a98dp+251) (f64.const -0x1.fcffaa32d0884p+300)) (f64.const 0x1.2p+251)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.9c78361f47374p-26) (f64.const -0x1.69d69f4edc61cp-13)) (f64.const 0x1.9c78361f48p-26)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.4dbe68e4afab2p-367) (f64.const -0x1.dc24e5b39cd02p-361)) (f64.const 0x1.4dbe68e4afacp-367)) - -;; Test that x*y/y is not folded to x. - -(module - (func (export "f32.no_fold_mul_div") (param $x f32) (param $y f32) (result f32) - (f32.div (f32.mul (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_mul_div") (param $x f64) (param $y f64) (result f64) - (f64.div (f64.mul (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.cd859ap+54) (f32.const 0x1.6ca936p-47)) (f32.const -0x1.cd8598p+54)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.0b56b8p-26) (f32.const 0x1.48264cp-106)) (f32.const -0x1.0b56a4p-26)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.e7555cp-48) (f32.const -0x1.9161cp+48)) (f32.const -0x1.e7555ap-48)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const 0x1.aaa50ep+52) (f32.const -0x1.dfb39ep+60)) (f32.const 0x1.aaa50cp+52)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.2b7dfap-92) (f32.const -0x1.7c4ca6p-37)) (f32.const -0x1.2b7dfep-92)) - -(assert_return (invoke "f64.no_fold_mul_div" (f64.const -0x1.3d79ff4118a1ap-837) (f64.const -0x1.b8b5dda31808cp-205)) (f64.const -0x1.3d79ff412263ep-837)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const 0x1.f894d1ee6b3a4p+384) (f64.const 0x1.8c2606d03d58ap+585)) (f64.const 0x1.f894d1ee6b3a5p+384)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const -0x1.a022260acc993p+238) (f64.const -0x1.5fbc128fc8e3cp-552)) (f64.const -0x1.a022260acc992p+238)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const 0x1.9d4b8ed174f54p-166) (f64.const 0x1.ee3d467aeeac6p-906)) (f64.const 0x1.8dcc95a053b2bp-166)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const -0x1.e95ea897cdcd4p+660) (f64.const -0x1.854d5df085f2ep-327)) (f64.const -0x1.e95ea897cdcd5p+660)) - -;; Test that x/y*y is not folded to x. - -(module - (func (export "f32.no_fold_div_mul") (param $x f32) (param $y f32) (result f32) - (f32.mul (f32.div (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_div_mul") (param $x f64) (param $y f64) (result f64) - (f64.mul (f64.div (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_div_mul" (f32.const -0x1.dc6364p+38) (f32.const 0x1.d630ecp+29)) (f32.const -0x1.dc6362p+38)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const -0x1.1f9836p-52) (f32.const -0x1.16c4e4p-18)) (f32.const -0x1.1f9838p-52)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const 0x1.c5972cp-126) (f32.const -0x1.d6659ep+7)) (f32.const 0x1.c5980ep-126)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const -0x1.2e3a9ep-74) (f32.const -0x1.353994p+59)) (f32.const -0x1.2e3a4p-74)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const 0x1.d96b82p-98) (f32.const 0x1.95d908p+27)) (f32.const 0x1.d96b84p-98)) - -(assert_return (invoke "f64.no_fold_div_mul" (f64.const 0x1.d01f913a52481p-876) (f64.const -0x1.2cd0668b28344p+184)) (f64.const 0x1.d020daf71cdcp-876)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.81cb7d400918dp-714) (f64.const 0x1.7caa643586d6ep-53)) (f64.const -0x1.81cb7d400918ep-714)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.66904c97b5c8ep-145) (f64.const 0x1.5c3481592ad4cp+428)) (f64.const -0x1.66904c97b5c8dp-145)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.e75859d2f0765p-278) (f64.const -0x1.5f19b6ab497f9p+283)) (f64.const -0x1.e75859d2f0764p-278)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.515fe9c3b5f5p+620) (f64.const 0x1.36be869c99f7ap+989)) (f64.const -0x1.515fe9c3b5f4fp+620)) - -;; Test that x/2*2 is not folded to x. - -(module - (func (export "f32.no_fold_div2_mul2") (param $x f32) (result f32) - (f32.mul (f32.div (get_local $x) (f32.const 2.0)) (f32.const 2.0))) - (func (export "f64.no_fold_div2_mul2") (param $x f64) (result f64) - (f64.mul (f64.div (get_local $x) (f64.const 2.0)) (f64.const 2.0))) -) - -(assert_return (invoke "f32.no_fold_div2_mul2" (f32.const 0x1.fffffep-126)) (f32.const 0x1p-125)) -(assert_return (invoke "f64.no_fold_div2_mul2" (f64.const 0x1.fffffffffffffp-1022)) (f64.const 0x1p-1021)) - -;; Test that promote(demote(x)) is not folded to x. - -(module - (func (export "no_fold_demote_promote") (param $x f64) (result f64) - (f64.promote/f32 (f32.demote/f64 (get_local $x)))) -) - -(assert_return (invoke "no_fold_demote_promote" (f64.const -0x1.dece272390f5dp-133)) (f64.const -0x1.decep-133)) -(assert_return (invoke "no_fold_demote_promote" (f64.const -0x1.19e6c79938a6fp-85)) (f64.const -0x1.19e6c8p-85)) -(assert_return (invoke "no_fold_demote_promote" (f64.const 0x1.49b297ec44dc1p+107)) (f64.const 0x1.49b298p+107)) -(assert_return (invoke "no_fold_demote_promote" (f64.const -0x1.74f5bd865163p-88)) (f64.const -0x1.74f5bep-88)) -(assert_return (invoke "no_fold_demote_promote" (f64.const 0x1.26d675662367ep+104)) (f64.const 0x1.26d676p+104)) - -;; Test that demote(promote(x)) is not folded to x, and aside from NaN is -;; bit-preserving. - -(module - (func (export "no_fold_promote_demote") (param $x f32) (result f32) - (f32.demote/f64 (f64.promote/f32 (get_local $x)))) -) - -(assert_return_arithmetic_nan (invoke "no_fold_promote_demote" (f32.const nan:0x200000))) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1.fffffcp-127)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1.fffffcp-127)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const inf)) (f32.const inf)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -inf)) (f32.const -inf)) - -;; Test that demote(x+promote(y)) is not folded to demote(x)+y. - -(module - (func (export "no_demote_mixed_add") (param $x f64) (param $y f32) (result f32) - (f32.demote/f64 (f64.add (get_local $x) (f64.promote/f32 (get_local $y))))) - (func (export "no_demote_mixed_add_commuted") (param $y f32) (param $x f64) (result f32) - (f32.demote/f64 (f64.add (f64.promote/f32 (get_local $y)) (get_local $x)))) -) - -(assert_return (invoke "no_demote_mixed_add" (f64.const 0x1.f51a9d04854f9p-95) (f32.const 0x1.3f4e9cp-119)) (f32.const 0x1.f51a9ep-95)) -(assert_return (invoke "no_demote_mixed_add" (f64.const 0x1.065b3d81ad8dp+37) (f32.const 0x1.758cd8p+38)) (f32.const 0x1.f8ba76p+38)) -(assert_return (invoke "no_demote_mixed_add" (f64.const 0x1.626c80963bd17p-119) (f32.const -0x1.9bbf86p-121)) (f32.const 0x1.f6f93ep-120)) -(assert_return (invoke "no_demote_mixed_add" (f64.const -0x1.0d5110e3385bbp-20) (f32.const 0x1.096f4ap-29)) (f32.const -0x1.0ccc5ap-20)) -(assert_return (invoke "no_demote_mixed_add" (f64.const -0x1.73852db4e5075p-20) (f32.const -0x1.24e474p-41)) (f32.const -0x1.738536p-20)) - -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.3f4e9cp-119) (f64.const 0x1.f51a9d04854f9p-95)) (f32.const 0x1.f51a9ep-95)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.758cd8p+38) (f64.const 0x1.065b3d81ad8dp+37)) (f32.const 0x1.f8ba76p+38)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const -0x1.9bbf86p-121) (f64.const 0x1.626c80963bd17p-119)) (f32.const 0x1.f6f93ep-120)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.096f4ap-29) (f64.const -0x1.0d5110e3385bbp-20)) (f32.const -0x1.0ccc5ap-20)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const -0x1.24e474p-41) (f64.const -0x1.73852db4e5075p-20)) (f32.const -0x1.738536p-20)) - -;; Test that demote(x-promote(y)) is not folded to demote(x)-y. - -(module - (func (export "no_demote_mixed_sub") (param $x f64) (param $y f32) (result f32) - (f32.demote/f64 (f64.sub (get_local $x) (f64.promote/f32 (get_local $y))))) -) - -(assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a0a183220e9b1p+82) (f32.const 0x1.c5acf8p+61)) (f32.const 0x1.a0a174p+82)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const -0x1.6e2c5ac39f63ep+30) (f32.const 0x1.d48ca4p+17)) (f32.const -0x1.6e3bp+30)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const -0x1.98c74350dde6ap+6) (f32.const 0x1.9d69bcp-12)) (f32.const -0x1.98c7aap+6)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.0459f34091dbfp-54) (f32.const 0x1.61ad08p-71)) (f32.const 0x1.045942p-54)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a7498dca3fdb7p+14) (f32.const 0x1.ed21c8p+15)) (f32.const -0x1.197d02p+15)) - -;; Test that converting between integer and float and back isn't folded away. - -(module - (func (export "f32.i32.no_fold_trunc_s_convert_s") (param $x f32) (result f32) - (f32.convert_s/i32 (i32.trunc_s/f32 (get_local $x)))) - (func (export "f32.i32.no_fold_trunc_u_convert_s") (param $x f32) (result f32) - (f32.convert_s/i32 (i32.trunc_u/f32 (get_local $x)))) - (func (export "f32.i32.no_fold_trunc_s_convert_u") (param $x f32) (result f32) - (f32.convert_u/i32 (i32.trunc_s/f32 (get_local $x)))) - (func (export "f32.i32.no_fold_trunc_u_convert_u") (param $x f32) (result f32) - (f32.convert_u/i32 (i32.trunc_u/f32 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_s_convert_s") (param $x f64) (result f64) - (f64.convert_s/i32 (i32.trunc_s/f64 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_u_convert_s") (param $x f64) (result f64) - (f64.convert_s/i32 (i32.trunc_u/f64 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_s_convert_u") (param $x f64) (result f64) - (f64.convert_u/i32 (i32.trunc_s/f64 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_u_convert_u") (param $x f64) (result f64) - (f64.convert_u/i32 (i32.trunc_u/f64 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_s_convert_s") (param $x f32) (result f32) - (f32.convert_s/i64 (i64.trunc_s/f32 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_u_convert_s") (param $x f32) (result f32) - (f32.convert_s/i64 (i64.trunc_u/f32 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_s_convert_u") (param $x f32) (result f32) - (f32.convert_u/i64 (i64.trunc_s/f32 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_u_convert_u") (param $x f32) (result f32) - (f32.convert_u/i64 (i64.trunc_u/f32 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_s_convert_s") (param $x f64) (result f64) - (f64.convert_s/i64 (i64.trunc_s/f64 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_u_convert_s") (param $x f64) (result f64) - (f64.convert_s/i64 (i64.trunc_u/f64 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_s_convert_u") (param $x f64) (result f64) - (f64.convert_u/i64 (i64.trunc_s/f64 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_u_convert_u") (param $x f64) (result f64) - (f64.convert_u/i64 (i64.trunc_u/f64 (get_local $x)))) -) - -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_s" (f32.const -1.5)) (f32.const -1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_s" (f32.const -0.5)) (f32.const 0.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_u" (f32.const -1.5)) (f32.const 0x1p+32)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_u" (f32.const -0.5)) (f32.const 0.0)) - -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_s" (f64.const -1.5)) (f64.const -1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_s" (f64.const -0.5)) (f64.const 0.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_u" (f64.const -1.5)) (f64.const 0x1.fffffffep+31)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_u" (f64.const -0.5)) (f64.const 0.0)) - -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_s" (f32.const -1.5)) (f32.const -1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_s" (f32.const -0.5)) (f32.const 0.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_u" (f32.const -1.5)) (f32.const 0x1p+64)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_u" (f32.const -0.5)) (f32.const 0.0)) - -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_s" (f64.const -1.5)) (f64.const -1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_s" (f64.const -0.5)) (f64.const 0.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_u" (f64.const -1.5)) (f64.const 0x1p+64)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_u" (f64.const -0.5)) (f64.const 0.0)) - -;; Test that dividing by a loop-invariant constant isn't optimized to be a -;; multiplication by a reciprocal, which would be particularly tempting since -;; the reciprocal computation could be hoisted. - -(module - (memory 1 1) - (func (export "init") (param $i i32) (param $x f32) (f32.store (get_local $i) (get_local $x))) - - (func (export "run") (param $n i32) (param $z f32) - (local $i i32) - (block $exit - (loop $cont - (f32.store - (get_local $i) - (f32.div (f32.load (get_local $i)) (get_local $z)) - ) - (set_local $i (i32.add (get_local $i) (i32.const 4))) - (br_if $cont (i32.lt_u (get_local $i) (get_local $n))) - ) - ) - ) - - (func (export "check") (param $i i32) (result f32) (f32.load (get_local $i))) -) - -(invoke "init" (i32.const 0) (f32.const 15.1)) -(invoke "init" (i32.const 4) (f32.const 15.2)) -(invoke "init" (i32.const 8) (f32.const 15.3)) -(invoke "init" (i32.const 12) (f32.const 15.4)) -(assert_return (invoke "check" (i32.const 0)) (f32.const 15.1)) -(assert_return (invoke "check" (i32.const 4)) (f32.const 15.2)) -(assert_return (invoke "check" (i32.const 8)) (f32.const 15.3)) -(assert_return (invoke "check" (i32.const 12)) (f32.const 15.4)) -(invoke "run" (i32.const 16) (f32.const 3.0)) -(assert_return (invoke "check" (i32.const 0)) (f32.const 0x1.422222p+2)) -(assert_return (invoke "check" (i32.const 4)) (f32.const 0x1.444444p+2)) -(assert_return (invoke "check" (i32.const 8)) (f32.const 0x1.466666p+2)) -(assert_return (invoke "check" (i32.const 12)) (f32.const 0x1.488888p+2)) - -(module - (memory 1 1) - (func (export "init") (param $i i32) (param $x f64) (f64.store (get_local $i) (get_local $x))) - - (func (export "run") (param $n i32) (param $z f64) - (local $i i32) - (block $exit - (loop $cont - (f64.store - (get_local $i) - (f64.div (f64.load (get_local $i)) (get_local $z)) - ) - (set_local $i (i32.add (get_local $i) (i32.const 8))) - (br_if $cont (i32.lt_u (get_local $i) (get_local $n))) - ) - ) - ) - - (func (export "check") (param $i i32) (result f64) (f64.load (get_local $i))) -) - -(invoke "init" (i32.const 0) (f64.const 15.1)) -(invoke "init" (i32.const 8) (f64.const 15.2)) -(invoke "init" (i32.const 16) (f64.const 15.3)) -(invoke "init" (i32.const 24) (f64.const 15.4)) -(assert_return (invoke "check" (i32.const 0)) (f64.const 15.1)) -(assert_return (invoke "check" (i32.const 8)) (f64.const 15.2)) -(assert_return (invoke "check" (i32.const 16)) (f64.const 15.3)) -(assert_return (invoke "check" (i32.const 24)) (f64.const 15.4)) -(invoke "run" (i32.const 32) (f64.const 3.0)) -(assert_return (invoke "check" (i32.const 0)) (f64.const 0x1.4222222222222p+2)) -(assert_return (invoke "check" (i32.const 8)) (f64.const 0x1.4444444444444p+2)) -(assert_return (invoke "check" (i32.const 16)) (f64.const 0x1.4666666666667p+2)) -(assert_return (invoke "check" (i32.const 24)) (f64.const 0x1.4888888888889p+2)) - -;; Test that ult/ugt/etc. aren't folded to olt/ogt/etc. - -(module - (func (export "f32.ult") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.ge (get_local $x) (get_local $y)))) - (func (export "f32.ule") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.gt (get_local $x) (get_local $y)))) - (func (export "f32.ugt") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.le (get_local $x) (get_local $y)))) - (func (export "f32.uge") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.lt (get_local $x) (get_local $y)))) - - (func (export "f64.ult") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.ge (get_local $x) (get_local $y)))) - (func (export "f64.ule") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.gt (get_local $x) (get_local $y)))) - (func (export "f64.ugt") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.le (get_local $x) (get_local $y)))) - (func (export "f64.uge") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.lt (get_local $x) (get_local $y)))) -) - -(assert_return (invoke "f32.ult" (f32.const 3.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ult" (f32.const 2.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ult" (f32.const 2.0) (f32.const 3.0)) (i32.const 1)) -(assert_return (invoke "f32.ult" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f32.ule" (f32.const 3.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ule" (f32.const 2.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.ule" (f32.const 2.0) (f32.const 3.0)) (i32.const 1)) -(assert_return (invoke "f32.ule" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f32.ugt" (f32.const 3.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.ugt" (f32.const 2.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ugt" (f32.const 2.0) (f32.const 3.0)) (i32.const 0)) -(assert_return (invoke "f32.ugt" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f32.uge" (f32.const 3.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.uge" (f32.const 2.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.uge" (f32.const 2.0) (f32.const 3.0)) (i32.const 0)) -(assert_return (invoke "f32.uge" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f64.ult" (f64.const 3.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ult" (f64.const 2.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ult" (f64.const 2.0) (f64.const 3.0)) (i32.const 1)) -(assert_return (invoke "f64.ult" (f64.const 2.0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "f64.ule" (f64.const 3.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ule" (f64.const 2.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.ule" (f64.const 2.0) (f64.const 3.0)) (i32.const 1)) -(assert_return (invoke "f64.ule" (f64.const 2.0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "f64.ugt" (f64.const 3.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.ugt" (f64.const 2.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ugt" (f64.const 2.0) (f64.const 3.0)) (i32.const 0)) -(assert_return (invoke "f64.ugt" (f64.const 2.0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "f64.uge" (f64.const 3.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.uge" (f64.const 2.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.uge" (f64.const 2.0) (f64.const 3.0)) (i32.const 0)) -(assert_return (invoke "f64.uge" (f64.const 2.0) (f64.const nan)) (i32.const 1)) - -;; Test that x= y+z is not optimized to x >= y (monotonicity). -;; http://cs.nyu.edu/courses/spring13/CSCI-UA.0201-003/lecture6.pdf - -(module - (func (export "f32.no_fold_add_le_monotonicity") (param $x f32) (param $y f32) (param $z f32) (result i32) - (f32.le (f32.add (get_local $x) (get_local $z)) (f32.add (get_local $y) (get_local $z)))) - - (func (export "f32.no_fold_add_ge_monotonicity") (param $x f32) (param $y f32) (param $z f32) (result i32) - (f32.ge (f32.add (get_local $x) (get_local $z)) (f32.add (get_local $y) (get_local $z)))) - - (func (export "f64.no_fold_add_le_monotonicity") (param $x f64) (param $y f64) (param $z f64) (result i32) - (f64.le (f64.add (get_local $x) (get_local $z)) (f64.add (get_local $y) (get_local $z)))) - - (func (export "f64.no_fold_add_ge_monotonicity") (param $x f64) (param $y f64) (param $z f64) (result i32) - (f64.ge (f64.add (get_local $x) (get_local $z)) (f64.add (get_local $y) (get_local $z)))) -) - -(assert_return (invoke "f32.no_fold_add_le_monotonicity" (f32.const 0.0) (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_fold_add_le_monotonicity" (f32.const inf) (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "f64.no_fold_add_le_monotonicity" (f64.const 0.0) (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_fold_add_le_monotonicity" (f64.const inf) (f64.const -inf) (f64.const inf)) (i32.const 0)) - -;; Test that !(x < y) and friends are not optimized to x >= y and friends. - -(module - (func (export "f32.not_lt") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.lt (get_local $x) (get_local $y)))) - - (func (export "f32.not_le") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.le (get_local $x) (get_local $y)))) - - (func (export "f32.not_gt") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.gt (get_local $x) (get_local $y)))) - - (func (export "f32.not_ge") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.ge (get_local $x) (get_local $y)))) - - (func (export "f64.not_lt") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.lt (get_local $x) (get_local $y)))) - - (func (export "f64.not_le") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.le (get_local $x) (get_local $y)))) - - (func (export "f64.not_gt") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.gt (get_local $x) (get_local $y)))) - - (func (export "f64.not_ge") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.ge (get_local $x) (get_local $y)))) -) - -(assert_return (invoke "f32.not_lt" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f32.not_le" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f32.not_gt" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f32.not_ge" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_lt" (f64.const nan) (f64.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_le" (f64.const nan) (f64.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_gt" (f64.const nan) (f64.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_ge" (f64.const nan) (f64.const 0.0)) (i32.const 1)) - -;; Test that a method for approximating a "machine epsilon" produces the expected -;; approximation. -;; http://blogs.mathworks.com/cleve/2014/07/07/floating-point-numbers/#24cb4f4d-b8a9-4c19-b22b-9d2a9f7f3812 - -(module - (func (export "f32.epsilon") (result f32) - (f32.sub (f32.const 1.0) (f32.mul (f32.const 3.0) (f32.sub (f32.div (f32.const 4.0) (f32.const 3.0)) (f32.const 1.0))))) - - (func (export "f64.epsilon") (result f64) - (f64.sub (f64.const 1.0) (f64.mul (f64.const 3.0) (f64.sub (f64.div (f64.const 4.0) (f64.const 3.0)) (f64.const 1.0))))) -) - -(assert_return (invoke "f32.epsilon") (f32.const -0x1p-23)) -(assert_return (invoke "f64.epsilon") (f64.const 0x1p-52)) - -;; Test that a method for computing a "machine epsilon" produces the expected -;; result. -;; https://www.math.utah.edu/~beebe/software/ieee/ - -(module - (func (export "f32.epsilon") (result f32) - (local $x f32) - (local $result f32) - (set_local $x (f32.const 1)) - (loop $loop - (br_if $loop - (f32.gt - (f32.add - (tee_local $x - (f32.mul - (tee_local $result (get_local $x)) - (f32.const 0.5) - ) - ) - (f32.const 1) - ) - (f32.const 1) - ) - ) - ) - (get_local $result) - ) - - (func (export "f64.epsilon") (result f64) - (local $x f64) - (local $result f64) - (set_local $x (f64.const 1)) - (loop $loop - (br_if $loop - (f64.gt - (f64.add - (tee_local $x - (f64.mul - (tee_local $result (get_local $x)) - (f64.const 0.5) - ) - ) - (f64.const 1) - ) - (f64.const 1) - ) - ) - ) - (get_local $result) - ) -) - -(assert_return (invoke "f32.epsilon") (f32.const 0x1p-23)) -(assert_return (invoke "f64.epsilon") (f64.const 0x1p-52)) - -;; Test that floating-point numbers are not optimized as if they form a -;; trichotomy. - -(module - (func (export "f32.no_trichotomy_lt") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.lt (get_local $x) (get_local $y)) (f32.ge (get_local $x) (get_local $y)))) - (func (export "f32.no_trichotomy_le") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.le (get_local $x) (get_local $y)) (f32.gt (get_local $x) (get_local $y)))) - (func (export "f32.no_trichotomy_gt") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.gt (get_local $x) (get_local $y)) (f32.le (get_local $x) (get_local $y)))) - (func (export "f32.no_trichotomy_ge") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.ge (get_local $x) (get_local $y)) (f32.lt (get_local $x) (get_local $y)))) - - (func (export "f64.no_trichotomy_lt") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.lt (get_local $x) (get_local $y)) (f64.ge (get_local $x) (get_local $y)))) - (func (export "f64.no_trichotomy_le") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.le (get_local $x) (get_local $y)) (f64.gt (get_local $x) (get_local $y)))) - (func (export "f64.no_trichotomy_gt") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.gt (get_local $x) (get_local $y)) (f64.le (get_local $x) (get_local $y)))) - (func (export "f64.no_trichotomy_ge") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.ge (get_local $x) (get_local $y)) (f64.lt (get_local $x) (get_local $y)))) -) - -(assert_return (invoke "f32.no_trichotomy_lt" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_trichotomy_le" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_trichotomy_gt" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_trichotomy_ge" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_lt" (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_le" (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_gt" (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_ge" (f64.const 0.0) (f64.const nan)) (i32.const 0)) - -;; Some test harnesses which can run this testsuite are unable to perform tests -;; of NaN bitpatterns. The following tests whether the underlying platform is -;; generally producing the kinds of NaNs expected. -(module - (func (export "f32.arithmetic_nan_bitpattern") - (param $x i32) (param $y i32) (result i32) - (i32.and (i32.reinterpret/f32 - (f32.div - (f32.reinterpret/i32 (get_local $x)) - (f32.reinterpret/i32 (get_local $y)))) - (i32.const 0x7fc00000))) - (func (export "f32.canonical_nan_bitpattern") - (param $x i32) (param $y i32) (result i32) - (i32.and (i32.reinterpret/f32 - (f32.div - (f32.reinterpret/i32 (get_local $x)) - (f32.reinterpret/i32 (get_local $y)))) - (i32.const 0x7fffffff))) - (func (export "f32.nonarithmetic_nan_bitpattern") - (param $x i32) (result i32) - (i32.reinterpret/f32 (f32.neg (f32.reinterpret/i32 (get_local $x))))) - - (func (export "f64.arithmetic_nan_bitpattern") - (param $x i64) (param $y i64) (result i64) - (i64.and (i64.reinterpret/f64 - (f64.div - (f64.reinterpret/i64 (get_local $x)) - (f64.reinterpret/i64 (get_local $y)))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.canonical_nan_bitpattern") - (param $x i64) (param $y i64) (result i64) - (i64.and (i64.reinterpret/f64 - (f64.div - (f64.reinterpret/i64 (get_local $x)) - (f64.reinterpret/i64 (get_local $y)))) - (i64.const 0x7fffffffffffffff))) - (func (export "f64.nonarithmetic_nan_bitpattern") - (param $x i64) (result i64) - (i64.reinterpret/f64 (f64.neg (f64.reinterpret/i64 (get_local $x))))) - - ;; Versions of no_fold testcases that only care about NaN bitpatterns. - (func (export "f32.no_fold_sub_zero") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.sub (f32.reinterpret/i32 (get_local $x)) (f32.const 0.0))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_neg0_sub") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.sub (f32.const -0.0) (f32.reinterpret/i32 (get_local $x)))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_mul_one") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.mul (f32.reinterpret/i32 (get_local $x)) (f32.const 1.0))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_neg1_mul") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.mul (f32.const -1.0) (f32.reinterpret/i32 (get_local $x)))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_div_one") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.div (f32.reinterpret/i32 (get_local $x)) (f32.const 1.0))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_div_neg1") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.div (f32.reinterpret/i32 (get_local $x)) (f32.const -1.0))) - (i32.const 0x7fc00000))) - (func (export "f64.no_fold_sub_zero") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.sub (f64.reinterpret/i64 (get_local $x)) (f64.const 0.0))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_neg0_sub") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.sub (f64.const -0.0) (f64.reinterpret/i64 (get_local $x)))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_mul_one") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.mul (f64.reinterpret/i64 (get_local $x)) (f64.const 1.0))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_neg1_mul") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.mul (f64.const -1.0) (f64.reinterpret/i64 (get_local $x)))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_div_one") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.div (f64.reinterpret/i64 (get_local $x)) (f64.const 1.0))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_div_neg1") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.div (f64.reinterpret/i64 (get_local $x)) (f64.const -1.0))) - (i64.const 0x7ff8000000000000))) - (func (export "no_fold_promote_demote") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.demote/f64 (f64.promote/f32 (f32.reinterpret/i32 (get_local $x))))) - (i32.const 0x7fc00000))) -) - -(assert_return (invoke "f32.arithmetic_nan_bitpattern" (i32.const 0x7f803210) (i32.const 0x7f803210)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0) (i32.const 0)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0x7fc00000) (i32.const 0x7fc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0xffc00000) (i32.const 0x7fc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0x7fc00000) (i32.const 0xffc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0xffc00000) (i32.const 0xffc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0x7fc03210)) (i32.const 0xffc03210)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0xffc03210)) (i32.const 0x7fc03210)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0x7f803210)) (i32.const 0xff803210)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0xff803210)) (i32.const 0x7f803210)) -(assert_return (invoke "f64.arithmetic_nan_bitpattern" (i64.const 0x7ff0000000003210) (i64.const 0x7ff0000000003210)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0) (i64.const 0)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0x7ff8000000000000) (i64.const 0x7ff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0xfff8000000000000) (i64.const 0x7ff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0x7ff8000000000000) (i64.const 0xfff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0xfff8000000000000) (i64.const 0xfff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0x7ff8000000003210)) (i64.const 0xfff8000000003210)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0xfff8000000003210)) (i64.const 0x7ff8000000003210)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0x7ff0000000003210)) (i64.const 0xfff0000000003210)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0xfff0000000003210)) (i64.const 0x7ff0000000003210)) -(assert_return (invoke "f32.no_fold_sub_zero" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_neg0_sub" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_mul_one" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_neg1_mul" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_div_one" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_div_neg1" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f64.no_fold_sub_zero" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_neg0_sub" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_mul_one" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_neg1_mul" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_div_one" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_div_neg1" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "no_fold_promote_demote" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) - -;; Test that IEEE 754 double precision does, in fact, compute a certain dot -;; product correctly. - -(module - (func (export "dot_product_example") - (param $x0 f64) (param $x1 f64) (param $x2 f64) (param $x3 f64) - (param $y0 f64) (param $y1 f64) (param $y2 f64) (param $y3 f64) - (result f64) - (f64.add (f64.add (f64.add - (f64.mul (get_local $x0) (get_local $y0)) - (f64.mul (get_local $x1) (get_local $y1))) - (f64.mul (get_local $x2) (get_local $y2))) - (f64.mul (get_local $x3) (get_local $y3))) - ) - - (func (export "with_binary_sum_collapse") - (param $x0 f64) (param $x1 f64) (param $x2 f64) (param $x3 f64) - (param $y0 f64) (param $y1 f64) (param $y2 f64) (param $y3 f64) - (result f64) - (f64.add (f64.add (f64.mul (get_local $x0) (get_local $y0)) - (f64.mul (get_local $x1) (get_local $y1))) - (f64.add (f64.mul (get_local $x2) (get_local $y2)) - (f64.mul (get_local $x3) (get_local $y3)))) - ) -) - -(assert_return (invoke "dot_product_example" - (f64.const 3.2e7) (f64.const 1.0) (f64.const -1.0) (f64.const 8.0e7) - (f64.const 4.0e7) (f64.const 1.0) (f64.const -1.0) (f64.const -1.6e7)) - (f64.const 2.0)) -(assert_return (invoke "with_binary_sum_collapse" - (f64.const 3.2e7) (f64.const 1.0) (f64.const -1.0) (f64.const 8.0e7) - (f64.const 4.0e7) (f64.const 1.0) (f64.const -1.0) (f64.const -1.6e7)) - (f64.const 2.0)) - -;; http://www.vinc17.org/research/fptest.en.html#contract2fma - -(module - (func (export "f32.contract2fma") - (param $x f32) (param $y f32) (result f32) - (f32.sqrt (f32.sub (f32.mul (get_local $x) (get_local $x)) - (f32.mul (get_local $y) (get_local $y))))) - (func (export "f64.contract2fma") - (param $x f64) (param $y f64) (result f64) - (f64.sqrt (f64.sub (f64.mul (get_local $x) (get_local $x)) - (f64.mul (get_local $y) (get_local $y))))) -) - -(assert_return (invoke "f32.contract2fma" (f32.const 1.0) (f32.const 1.0)) (f32.const 0.0)) -(assert_return (invoke "f32.contract2fma" (f32.const 0x1.19999ap+0) (f32.const 0x1.19999ap+0)) (f32.const 0.0)) -(assert_return (invoke "f32.contract2fma" (f32.const 0x1.333332p+0) (f32.const 0x1.333332p+0)) (f32.const 0.0)) -(assert_return (invoke "f64.contract2fma" (f64.const 1.0) (f64.const 1.0)) (f64.const 0.0)) -(assert_return (invoke "f64.contract2fma" (f64.const 0x1.199999999999ap+0) (f64.const 0x1.199999999999ap+0)) (f64.const 0.0)) -(assert_return (invoke "f64.contract2fma" (f64.const 0x1.3333333333333p+0) (f64.const 0x1.3333333333333p+0)) (f64.const 0.0)) - -;; Test that floating-point isn't implemented with QuickBasic for MS-DOS. -;; https://support.microsoft.com/en-us/help/42980/-complete-tutorial-to-understand-ieee-floating-point-errors - -(module - (func (export "f32.division_by_small_number") - (param $a f32) (param $b f32) (param $c f32) (result f32) - (f32.sub (get_local $a) (f32.div (get_local $b) (get_local $c)))) - (func (export "f64.division_by_small_number") - (param $a f64) (param $b f64) (param $c f64) (result f64) - (f64.sub (get_local $a) (f64.div (get_local $b) (get_local $c)))) -) - -(assert_return (invoke "f32.division_by_small_number" (f32.const 112000000) (f32.const 100000) (f32.const 0.0009)) (f32.const 888888)) -(assert_return (invoke "f64.division_by_small_number" (f64.const 112000000) (f64.const 100000) (f64.const 0.0009)) (f64.const 888888.8888888806)) - -;; Test a simple golden ratio computation. -;; http://mathworld.wolfram.com/GoldenRatio.html - -(module - (func (export "f32.golden_ratio") (param $a f32) (param $b f32) (param $c f32) (result f32) - (f32.mul (get_local 0) (f32.add (get_local 1) (f32.sqrt (get_local 2))))) - (func (export "f64.golden_ratio") (param $a f64) (param $b f64) (param $c f64) (result f64) - (f64.mul (get_local 0) (f64.add (get_local 1) (f64.sqrt (get_local 2))))) -) - -(assert_return (invoke "f32.golden_ratio" (f32.const 0.5) (f32.const 1.0) (f32.const 5.0)) (f32.const 1.618034)) -(assert_return (invoke "f64.golden_ratio" (f64.const 0.5) (f64.const 1.0) (f64.const 5.0)) (f64.const 1.618033988749895)) - -;; Test some silver means computations. -;; http://mathworld.wolfram.com/SilverRatio.html - -(module - (func (export "f32.silver_means") (param $n f32) (result f32) - (f32.mul (f32.const 0.5) - (f32.add (get_local $n) - (f32.sqrt (f32.add (f32.mul (get_local $n) (get_local $n)) - (f32.const 4.0)))))) - (func (export "f64.silver_means") (param $n f64) (result f64) - (f64.mul (f64.const 0.5) - (f64.add (get_local $n) - (f64.sqrt (f64.add (f64.mul (get_local $n) (get_local $n)) - (f64.const 4.0)))))) -) - -(assert_return (invoke "f32.silver_means" (f32.const 0.0)) (f32.const 1.0)) -(assert_return (invoke "f32.silver_means" (f32.const 1.0)) (f32.const 1.6180340)) -(assert_return (invoke "f32.silver_means" (f32.const 2.0)) (f32.const 2.4142136)) -(assert_return (invoke "f32.silver_means" (f32.const 3.0)) (f32.const 3.3027756)) -(assert_return (invoke "f32.silver_means" (f32.const 4.0)) (f32.const 4.2360680)) -(assert_return (invoke "f32.silver_means" (f32.const 5.0)) (f32.const 5.1925821)) -(assert_return (invoke "f64.silver_means" (f64.const 0.0)) (f64.const 1.0)) -(assert_return (invoke "f64.silver_means" (f64.const 1.0)) (f64.const 1.618033988749895)) -(assert_return (invoke "f64.silver_means" (f64.const 2.0)) (f64.const 2.414213562373095)) -(assert_return (invoke "f64.silver_means" (f64.const 3.0)) (f64.const 3.302775637731995)) -(assert_return (invoke "f64.silver_means" (f64.const 4.0)) (f64.const 4.236067977499790)) -(assert_return (invoke "f64.silver_means" (f64.const 5.0)) (f64.const 5.192582403567252)) - -;; Test that an f64 0.4 isn't double-rounded as via extended precision. -;; https://bugs.llvm.org/show_bug.cgi?id=11200 - -(module - (func (export "point_four") (param $four f64) (param $ten f64) (result i32) - (f64.lt (f64.div (get_local $four) (get_local $ten)) (f64.const 0.4))) -) - -(assert_return (invoke "point_four" (f64.const 4.0) (f64.const 10.0)) (i32.const 0)) - -;; Test an approximation function for tau; it should produces the correctly -;; rounded result after (and only after) the expected number of iterations. - -(module - (func (export "tau") (param i32) (result f64) - (local f64 f64 f64 f64) - f64.const 0x0p+0 - set_local 1 - block - get_local 0 - i32.const 1 - i32.lt_s - br_if 0 - f64.const 0x1p+0 - set_local 2 - f64.const 0x0p+0 - set_local 3 - loop - get_local 1 - get_local 2 - f64.const 0x1p+3 - get_local 3 - f64.const 0x1p+3 - f64.mul - tee_local 4 - f64.const 0x1p+0 - f64.add - f64.div - f64.const 0x1p+2 - get_local 4 - f64.const 0x1p+2 - f64.add - f64.div - f64.sub - f64.const 0x1p+1 - get_local 4 - f64.const 0x1.4p+2 - f64.add - f64.div - f64.sub - f64.const 0x1p+1 - get_local 4 - f64.const 0x1.8p+2 - f64.add - f64.div - f64.sub - f64.mul - f64.add - set_local 1 - get_local 3 - f64.const 0x1p+0 - f64.add - set_local 3 - get_local 2 - f64.const 0x1p-4 - f64.mul - set_local 2 - get_local 0 - i32.const -1 - i32.add - tee_local 0 - br_if 0 - end - end - get_local 1 - ) -) - -(assert_return (invoke "tau" (i32.const 10)) (f64.const 0x1.921fb54442d14p+2)) -(assert_return (invoke "tau" (i32.const 11)) (f64.const 0x1.921fb54442d18p+2)) - -;; Test that y < 0 ? x : (x + 1) is not folded to x + (y < 0). - -(module - (func (export "f32.no_fold_conditional_inc") (param $x f32) (param $y f32) (result f32) - (select (get_local $x) - (f32.add (get_local $x) (f32.const 1.0)) - (f32.lt (get_local $y) (f32.const 0.0)))) - (func (export "f64.no_fold_conditional_inc") (param $x f64) (param $y f64) (result f64) - (select (get_local $x) - (f64.add (get_local $x) (f64.const 1.0)) - (f64.lt (get_local $y) (f64.const 0.0)))) -) - -(assert_return (invoke "f32.no_fold_conditional_inc" (f32.const -0.0) (f32.const -1.0)) (f32.const -0.0)) -(assert_return (invoke "f64.no_fold_conditional_inc" (f64.const -0.0) (f64.const -1.0)) (f64.const -0.0)) diff --git a/tests/samples/float_literals.wast b/tests/samples/float_literals.wast deleted file mode 100644 index ed5969b..0000000 --- a/tests/samples/float_literals.wast +++ /dev/null @@ -1,499 +0,0 @@ -;; Test floating-point literal parsing. - -(module - ;; f32 special values - (func (export "f32.nan") (result i32) (i32.reinterpret/f32 (f32.const nan))) - (func (export "f32.positive_nan") (result i32) (i32.reinterpret/f32 (f32.const +nan))) - (func (export "f32.negative_nan") (result i32) (i32.reinterpret/f32 (f32.const -nan))) - (func (export "f32.plain_nan") (result i32) (i32.reinterpret/f32 (f32.const nan:0x400000))) - (func (export "f32.informally_known_as_plain_snan") (result i32) (i32.reinterpret/f32 (f32.const nan:0x200000))) - (func (export "f32.all_ones_nan") (result i32) (i32.reinterpret/f32 (f32.const -nan:0x7fffff))) - (func (export "f32.misc_nan") (result i32) (i32.reinterpret/f32 (f32.const nan:0x012345))) - (func (export "f32.misc_positive_nan") (result i32) (i32.reinterpret/f32 (f32.const +nan:0x304050))) - (func (export "f32.misc_negative_nan") (result i32) (i32.reinterpret/f32 (f32.const -nan:0x2abcde))) - (func (export "f32.infinity") (result i32) (i32.reinterpret/f32 (f32.const inf))) - (func (export "f32.positive_infinity") (result i32) (i32.reinterpret/f32 (f32.const +inf))) - (func (export "f32.negative_infinity") (result i32) (i32.reinterpret/f32 (f32.const -inf))) - - ;; f32 numbers - (func (export "f32.zero") (result i32) (i32.reinterpret/f32 (f32.const 0x0.0p0))) - (func (export "f32.positive_zero") (result i32) (i32.reinterpret/f32 (f32.const +0x0.0p0))) - (func (export "f32.negative_zero") (result i32) (i32.reinterpret/f32 (f32.const -0x0.0p0))) - (func (export "f32.misc") (result i32) (i32.reinterpret/f32 (f32.const 0x1.921fb6p+2))) - (func (export "f32.min_positive") (result i32) (i32.reinterpret/f32 (f32.const 0x1p-149))) - (func (export "f32.min_normal") (result i32) (i32.reinterpret/f32 (f32.const 0x1p-126))) - (func (export "f32.max_finite") (result i32) (i32.reinterpret/f32 (f32.const 0x1.fffffep+127))) - (func (export "f32.max_subnormal") (result i32) (i32.reinterpret/f32 (f32.const 0x1.fffffcp-127))) - (func (export "f32.trailing_dot") (result i32) (i32.reinterpret/f32 (f32.const 0x1.p10))) - - ;; f32 in decimal format - (func (export "f32_dec.zero") (result i32) (i32.reinterpret/f32 (f32.const 0.0e0))) - (func (export "f32_dec.positive_zero") (result i32) (i32.reinterpret/f32 (f32.const +0.0e0))) - (func (export "f32_dec.negative_zero") (result i32) (i32.reinterpret/f32 (f32.const -0.0e0))) - (func (export "f32_dec.misc") (result i32) (i32.reinterpret/f32 (f32.const 6.28318548202514648))) - (func (export "f32_dec.min_positive") (result i32) (i32.reinterpret/f32 (f32.const 1.4013e-45))) - (func (export "f32_dec.min_normal") (result i32) (i32.reinterpret/f32 (f32.const 1.1754944e-38))) - (func (export "f32_dec.max_subnormal") (result i32) (i32.reinterpret/f32 (f32.const 1.1754942e-38))) - (func (export "f32_dec.max_finite") (result i32) (i32.reinterpret/f32 (f32.const 3.4028234e+38))) - (func (export "f32_dec.trailing_dot") (result i32) (i32.reinterpret/f32 (f32.const 1.e10))) - - ;; f64 special values - (func (export "f64.nan") (result i64) (i64.reinterpret/f64 (f64.const nan))) - (func (export "f64.positive_nan") (result i64) (i64.reinterpret/f64 (f64.const +nan))) - (func (export "f64.negative_nan") (result i64) (i64.reinterpret/f64 (f64.const -nan))) - (func (export "f64.plain_nan") (result i64) (i64.reinterpret/f64 (f64.const nan:0x8000000000000))) - (func (export "f64.informally_known_as_plain_snan") (result i64) (i64.reinterpret/f64 (f64.const nan:0x4000000000000))) - (func (export "f64.all_ones_nan") (result i64) (i64.reinterpret/f64 (f64.const -nan:0xfffffffffffff))) - (func (export "f64.misc_nan") (result i64) (i64.reinterpret/f64 (f64.const nan:0x0123456789abc))) - (func (export "f64.misc_positive_nan") (result i64) (i64.reinterpret/f64 (f64.const +nan:0x3040506070809))) - (func (export "f64.misc_negative_nan") (result i64) (i64.reinterpret/f64 (f64.const -nan:0x2abcdef012345))) - (func (export "f64.infinity") (result i64) (i64.reinterpret/f64 (f64.const inf))) - (func (export "f64.positive_infinity") (result i64) (i64.reinterpret/f64 (f64.const +inf))) - (func (export "f64.negative_infinity") (result i64) (i64.reinterpret/f64 (f64.const -inf))) - - ;; f64 numbers - (func (export "f64.zero") (result i64) (i64.reinterpret/f64 (f64.const 0x0.0p0))) - (func (export "f64.positive_zero") (result i64) (i64.reinterpret/f64 (f64.const +0x0.0p0))) - (func (export "f64.negative_zero") (result i64) (i64.reinterpret/f64 (f64.const -0x0.0p0))) - (func (export "f64.misc") (result i64) (i64.reinterpret/f64 (f64.const 0x1.921fb54442d18p+2))) - (func (export "f64.min_positive") (result i64) (i64.reinterpret/f64 (f64.const 0x0.0000000000001p-1022))) - (func (export "f64.min_normal") (result i64) (i64.reinterpret/f64 (f64.const 0x1p-1022))) - (func (export "f64.max_subnormal") (result i64) (i64.reinterpret/f64 (f64.const 0x0.fffffffffffffp-1022))) - (func (export "f64.max_finite") (result i64) (i64.reinterpret/f64 (f64.const 0x1.fffffffffffffp+1023))) - (func (export "f64.trailing_dot") (result i64) (i64.reinterpret/f64 (f64.const 0x1.p100))) - - ;; f64 numbers in decimal format - (func (export "f64_dec.zero") (result i64) (i64.reinterpret/f64 (f64.const 0.0e0))) - (func (export "f64_dec.positive_zero") (result i64) (i64.reinterpret/f64 (f64.const +0.0e0))) - (func (export "f64_dec.negative_zero") (result i64) (i64.reinterpret/f64 (f64.const -0.0e0))) - (func (export "f64_dec.misc") (result i64) (i64.reinterpret/f64 (f64.const 6.28318530717958623))) - (func (export "f64_dec.min_positive") (result i64) (i64.reinterpret/f64 (f64.const 4.94066e-324))) - (func (export "f64_dec.min_normal") (result i64) (i64.reinterpret/f64 (f64.const 2.2250738585072012e-308))) - (func (export "f64_dec.max_subnormal") (result i64) (i64.reinterpret/f64 (f64.const 2.2250738585072011e-308))) - (func (export "f64_dec.max_finite") (result i64) (i64.reinterpret/f64 (f64.const 1.7976931348623157e+308))) - (func (export "f64_dec.trailing_dot") (result i64) (i64.reinterpret/f64 (f64.const 1.e100))) - - (func (export "f32-dec-sep1") (result f32) (f32.const 1_000_000)) - (func (export "f32-dec-sep2") (result f32) (f32.const 1_0_0_0)) - (func (export "f32-dec-sep3") (result f32) (f32.const 100_3.141_592)) - (func (export "f32-dec-sep4") (result f32) (f32.const 99e+1_3)) - (func (export "f32-dec-sep5") (result f32) (f32.const 122_000.11_3_54E0_2_3)) - (func (export "f32-hex-sep1") (result f32) (f32.const 0xa_0f_00_99)) - (func (export "f32-hex-sep2") (result f32) (f32.const 0x1_a_A_0_f)) - (func (export "f32-hex-sep3") (result f32) (f32.const 0xa0_ff.f141_a59a)) - (func (export "f32-hex-sep4") (result f32) (f32.const 0xf0P+1_3)) - (func (export "f32-hex-sep5") (result f32) (f32.const 0x2a_f00a.1f_3_eep2_3)) - - (func (export "f64-dec-sep1") (result f64) (f64.const 1_000_000)) - (func (export "f64-dec-sep2") (result f64) (f64.const 1_0_0_0)) - (func (export "f64-dec-sep3") (result f64) (f64.const 100_3.141_592)) - (func (export "f64-dec-sep4") (result f64) (f64.const 99e-1_23)) - (func (export "f64-dec-sep5") (result f64) (f64.const 122_000.11_3_54e0_2_3)) - (func (export "f64-hex-sep1") (result f64) (f64.const 0xa_f00f_0000_9999)) - (func (export "f64-hex-sep2") (result f64) (f64.const 0x1_a_A_0_f)) - (func (export "f64-hex-sep3") (result f64) (f64.const 0xa0_ff.f141_a59a)) - (func (export "f64-hex-sep4") (result f64) (f64.const 0xf0P+1_3)) - (func (export "f64-hex-sep5") (result f64) (f64.const 0x2a_f00a.1f_3_eep2_3)) -) - -(assert_return (invoke "f32.nan") (i32.const 0x7fc00000)) -(assert_return (invoke "f32.positive_nan") (i32.const 0x7fc00000)) -(assert_return (invoke "f32.negative_nan") (i32.const 0xffc00000)) -(assert_return (invoke "f32.plain_nan") (i32.const 0x7fc00000)) -(assert_return (invoke "f32.informally_known_as_plain_snan") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.all_ones_nan") (i32.const 0xffffffff)) -(assert_return (invoke "f32.misc_nan") (i32.const 0x7f812345)) -(assert_return (invoke "f32.misc_positive_nan") (i32.const 0x7fb04050)) -(assert_return (invoke "f32.misc_negative_nan") (i32.const 0xffaabcde)) -(assert_return (invoke "f32.infinity") (i32.const 0x7f800000)) -(assert_return (invoke "f32.positive_infinity") (i32.const 0x7f800000)) -(assert_return (invoke "f32.negative_infinity") (i32.const 0xff800000)) -(assert_return (invoke "f32.zero") (i32.const 0)) -(assert_return (invoke "f32.positive_zero") (i32.const 0)) -(assert_return (invoke "f32.negative_zero") (i32.const 0x80000000)) -(assert_return (invoke "f32.misc") (i32.const 0x40c90fdb)) -(assert_return (invoke "f32.min_positive") (i32.const 1)) -(assert_return (invoke "f32.min_normal") (i32.const 0x800000)) -(assert_return (invoke "f32.max_subnormal") (i32.const 0x7fffff)) -(assert_return (invoke "f32.max_finite") (i32.const 0x7f7fffff)) -(assert_return (invoke "f32.trailing_dot") (i32.const 0x44800000)) -(assert_return (invoke "f32_dec.zero") (i32.const 0)) -(assert_return (invoke "f32_dec.positive_zero") (i32.const 0)) -(assert_return (invoke "f32_dec.negative_zero") (i32.const 0x80000000)) -(assert_return (invoke "f32_dec.misc") (i32.const 0x40c90fdb)) -(assert_return (invoke "f32_dec.min_positive") (i32.const 1)) -(assert_return (invoke "f32_dec.min_normal") (i32.const 0x800000)) -(assert_return (invoke "f32_dec.max_subnormal") (i32.const 0x7fffff)) -(assert_return (invoke "f32_dec.max_finite") (i32.const 0x7f7fffff)) -(assert_return (invoke "f32_dec.trailing_dot") (i32.const 0x501502f9)) - -(assert_return (invoke "f64.nan") (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.positive_nan") (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.negative_nan") (i64.const 0xfff8000000000000)) -(assert_return (invoke "f64.plain_nan") (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.informally_known_as_plain_snan") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.all_ones_nan") (i64.const 0xffffffffffffffff)) -(assert_return (invoke "f64.misc_nan") (i64.const 0x7ff0123456789abc)) -(assert_return (invoke "f64.misc_positive_nan") (i64.const 0x7ff3040506070809)) -(assert_return (invoke "f64.misc_negative_nan") (i64.const 0xfff2abcdef012345)) -(assert_return (invoke "f64.infinity") (i64.const 0x7ff0000000000000)) -(assert_return (invoke "f64.positive_infinity") (i64.const 0x7ff0000000000000)) -(assert_return (invoke "f64.negative_infinity") (i64.const 0xfff0000000000000)) -(assert_return (invoke "f64.zero") (i64.const 0)) -(assert_return (invoke "f64.positive_zero") (i64.const 0)) -(assert_return (invoke "f64.negative_zero") (i64.const 0x8000000000000000)) -(assert_return (invoke "f64.misc") (i64.const 0x401921fb54442d18)) -(assert_return (invoke "f64.min_positive") (i64.const 1)) -(assert_return (invoke "f64.min_normal") (i64.const 0x10000000000000)) -(assert_return (invoke "f64.max_subnormal") (i64.const 0xfffffffffffff)) -(assert_return (invoke "f64.max_finite") (i64.const 0x7fefffffffffffff)) -(assert_return (invoke "f64.trailing_dot") (i64.const 0x4630000000000000)) -(assert_return (invoke "f64_dec.zero") (i64.const 0)) -(assert_return (invoke "f64_dec.positive_zero") (i64.const 0)) -(assert_return (invoke "f64_dec.negative_zero") (i64.const 0x8000000000000000)) -(assert_return (invoke "f64_dec.misc") (i64.const 0x401921fb54442d18)) -(assert_return (invoke "f64_dec.min_positive") (i64.const 1)) -(assert_return (invoke "f64_dec.min_normal") (i64.const 0x10000000000000)) -(assert_return (invoke "f64_dec.max_subnormal") (i64.const 0xfffffffffffff)) -(assert_return (invoke "f64_dec.max_finite") (i64.const 0x7fefffffffffffff)) -(assert_return (invoke "f64_dec.trailing_dot") (i64.const 0x54b249ad2594c37d)) - -(assert_return (invoke "f32-dec-sep1") (f32.const 1000000)) -(assert_return (invoke "f32-dec-sep2") (f32.const 1000)) -(assert_return (invoke "f32-dec-sep3") (f32.const 1003.141592)) -(assert_return (invoke "f32-dec-sep4") (f32.const 99e+13)) -(assert_return (invoke "f32-dec-sep5") (f32.const 122000.11354e23)) -(assert_return (invoke "f32-hex-sep1") (f32.const 0xa0f0099)) -(assert_return (invoke "f32-hex-sep2") (f32.const 0x1aa0f)) -(assert_return (invoke "f32-hex-sep3") (f32.const 0xa0ff.f141a59a)) -(assert_return (invoke "f32-hex-sep4") (f32.const 0xf0P+13)) -(assert_return (invoke "f32-hex-sep5") (f32.const 0x2af00a.1f3eep23)) - -(assert_return (invoke "f64-dec-sep1") (f64.const 1000000)) -(assert_return (invoke "f64-dec-sep2") (f64.const 1000)) -(assert_return (invoke "f64-dec-sep3") (f64.const 1003.141592)) -(assert_return (invoke "f64-dec-sep4") (f64.const 99e-123)) -(assert_return (invoke "f64-dec-sep5") (f64.const 122000.11354e23)) -(assert_return (invoke "f64-hex-sep1") (f64.const 0xaf00f00009999)) -(assert_return (invoke "f64-hex-sep2") (f64.const 0x1aa0f)) -(assert_return (invoke "f64-hex-sep3") (f64.const 0xa0ff.f141a59a)) -(assert_return (invoke "f64-hex-sep4") (f64.const 0xf0P+13)) -(assert_return (invoke "f64-hex-sep5") (f64.const 0x2af00a.1f3eep23)) - -;; Test parsing a float from binary -(module binary - ;; (func (export "4294967249") (result f64) (f64.const 4294967249)) - "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60" - "\00\01\7c\03\82\80\80\80\00\01\00\07\8e\80\80\80" - "\00\01\0a\34\32\39\34\39\36\37\32\34\39\00\00\0a" - "\91\80\80\80\00\01\8b\80\80\80\00\00\44\00\00\20" - "\fa\ff\ff\ef\41\0b" -) - -(assert_return (invoke "4294967249") (f64.const 4294967249)) - -(assert_malformed - (module quote "(global f32 (f32.const _100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const +_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const -_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 99_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1__000))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _1e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _1.0e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e_+1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _0x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0_x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x00_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0xff__ffff))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_1p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_1.0p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p_+1))") - "unknown operator" -) - -(assert_malformed - (module quote "(global f64 (f64.const _100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const +_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const -_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 99_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1__000))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _1e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _1.0e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e_+1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _0x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0_x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x00_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0xff__ffff))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_1p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_1.0p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p_+1))") - "unknown operator" -) diff --git a/tests/samples/float_memory.wast b/tests/samples/float_memory.wast deleted file mode 100644 index 3801158..0000000 --- a/tests/samples/float_memory.wast +++ /dev/null @@ -1,157 +0,0 @@ -;; Test that floating-point load and store are bit-preserving. - -;; Test that load and store do not canonicalize NaNs as x87 does. - -(module - (memory (data "\00\00\a0\7f")) - - (func (export "f32.load") (result f32) (f32.load (i32.const 0))) - (func (export "i32.load") (result i32) (i32.load (i32.const 0))) - (func (export "f32.store") (f32.store (i32.const 0) (f32.const nan:0x200000))) - (func (export "i32.store") (i32.store (i32.const 0) (i32.const 0x7fa00000))) - (func (export "reset") (i32.store (i32.const 0) (i32.const 0))) -) - -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "f32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "i32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) - -(module - (memory (data "\00\00\00\00\00\00\f4\7f")) - - (func (export "f64.load") (result f64) (f64.load (i32.const 0))) - (func (export "i64.load") (result i64) (i64.load (i32.const 0))) - (func (export "f64.store") (f64.store (i32.const 0) (f64.const nan:0x4000000000000))) - (func (export "i64.store") (i64.store (i32.const 0) (i64.const 0x7ff4000000000000))) - (func (export "reset") (i64.store (i32.const 0) (i64.const 0))) -) - -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "f64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "i64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) - -;; Test that unaligned load and store do not canonicalize NaNs. - -(module - (memory (data "\00\00\00\a0\7f")) - - (func (export "f32.load") (result f32) (f32.load (i32.const 1))) - (func (export "i32.load") (result i32) (i32.load (i32.const 1))) - (func (export "f32.store") (f32.store (i32.const 1) (f32.const nan:0x200000))) - (func (export "i32.store") (i32.store (i32.const 1) (i32.const 0x7fa00000))) - (func (export "reset") (i32.store (i32.const 1) (i32.const 0))) -) - -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "f32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "i32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) - -(module - (memory (data "\00\00\00\00\00\00\00\f4\7f")) - - (func (export "f64.load") (result f64) (f64.load (i32.const 1))) - (func (export "i64.load") (result i64) (i64.load (i32.const 1))) - (func (export "f64.store") (f64.store (i32.const 1) (f64.const nan:0x4000000000000))) - (func (export "i64.store") (i64.store (i32.const 1) (i64.const 0x7ff4000000000000))) - (func (export "reset") (i64.store (i32.const 1) (i64.const 0))) -) - -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "f64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "i64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) - -;; Test that load and store do not canonicalize NaNs as some JS engines do. - -(module - (memory (data "\01\00\d0\7f")) - - (func (export "f32.load") (result f32) (f32.load (i32.const 0))) - (func (export "i32.load") (result i32) (i32.load (i32.const 0))) - (func (export "f32.store") (f32.store (i32.const 0) (f32.const nan:0x500001))) - (func (export "i32.store") (i32.store (i32.const 0) (i32.const 0x7fd00001))) - (func (export "reset") (i32.store (i32.const 0) (i32.const 0))) -) - -(assert_return (invoke "i32.load") (i32.const 0x7fd00001)) -(assert_return (invoke "f32.load") (f32.const nan:0x500001)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "f32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fd00001)) -(assert_return (invoke "f32.load") (f32.const nan:0x500001)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "i32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fd00001)) -(assert_return (invoke "f32.load") (f32.const nan:0x500001)) - -(module - (memory (data "\01\00\00\00\00\00\fc\7f")) - - (func (export "f64.load") (result f64) (f64.load (i32.const 0))) - (func (export "i64.load") (result i64) (i64.load (i32.const 0))) - (func (export "f64.store") (f64.store (i32.const 0) (f64.const nan:0xc000000000001))) - (func (export "i64.store") (i64.store (i32.const 0) (i64.const 0x7ffc000000000001))) - (func (export "reset") (i64.store (i32.const 0) (i64.const 0))) -) - -(assert_return (invoke "i64.load") (i64.const 0x7ffc000000000001)) -(assert_return (invoke "f64.load") (f64.const nan:0xc000000000001)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "f64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ffc000000000001)) -(assert_return (invoke "f64.load") (f64.const nan:0xc000000000001)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "i64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ffc000000000001)) -(assert_return (invoke "f64.load") (f64.const nan:0xc000000000001)) diff --git a/tests/samples/float_misc.wast b/tests/samples/float_misc.wast deleted file mode 100644 index 095b8d8..0000000 --- a/tests/samples/float_misc.wast +++ /dev/null @@ -1,678 +0,0 @@ -;; Platforms intended to run WebAssembly must support IEEE 754 arithmetic. -;; This testsuite is not currently sufficient for full IEEE 754 conformance -;; testing; platforms are currently expected to meet these requirements in -;; their own way (widely-used hardware platforms already do this). -;; -;; What this testsuite does test is that (a) the platform is basically IEEE 754 -;; rather than something else entirely, (b) it's configured correctly for -;; WebAssembly (rounding direction, exception masks, precision level, subnormal -;; mode, etc.), (c) the WebAssembly implementation doesn't perform any common -;; value-changing optimizations, and (d) that the WebAssembly implementation -;; doesn't exhibit any known implementation bugs. -;; -;; This file supplements f32.wast, f64.wast, f32_bitwise.wast, f64_bitwise.wast, -;; f32_cmp.wast, and f64_cmp.wast with additional single-instruction tests -;; covering additional miscellaneous interesting cases. - -(module - (func (export "f32.add") (param $x f32) (param $y f32) (result f32) (f32.add (get_local $x) (get_local $y))) - (func (export "f32.sub") (param $x f32) (param $y f32) (result f32) (f32.sub (get_local $x) (get_local $y))) - (func (export "f32.mul") (param $x f32) (param $y f32) (result f32) (f32.mul (get_local $x) (get_local $y))) - (func (export "f32.div") (param $x f32) (param $y f32) (result f32) (f32.div (get_local $x) (get_local $y))) - (func (export "f32.sqrt") (param $x f32) (result f32) (f32.sqrt (get_local $x))) - (func (export "f32.abs") (param $x f32) (result f32) (f32.abs (get_local $x))) - (func (export "f32.neg") (param $x f32) (result f32) (f32.neg (get_local $x))) - (func (export "f32.copysign") (param $x f32) (param $y f32) (result f32) (f32.copysign (get_local $x) (get_local $y))) - (func (export "f32.ceil") (param $x f32) (result f32) (f32.ceil (get_local $x))) - (func (export "f32.floor") (param $x f32) (result f32) (f32.floor (get_local $x))) - (func (export "f32.trunc") (param $x f32) (result f32) (f32.trunc (get_local $x))) - (func (export "f32.nearest") (param $x f32) (result f32) (f32.nearest (get_local $x))) - (func (export "f32.min") (param $x f32) (param $y f32) (result f32) (f32.min (get_local $x) (get_local $y))) - (func (export "f32.max") (param $x f32) (param $y f32) (result f32) (f32.max (get_local $x) (get_local $y))) - - (func (export "f64.add") (param $x f64) (param $y f64) (result f64) (f64.add (get_local $x) (get_local $y))) - (func (export "f64.sub") (param $x f64) (param $y f64) (result f64) (f64.sub (get_local $x) (get_local $y))) - (func (export "f64.mul") (param $x f64) (param $y f64) (result f64) (f64.mul (get_local $x) (get_local $y))) - (func (export "f64.div") (param $x f64) (param $y f64) (result f64) (f64.div (get_local $x) (get_local $y))) - (func (export "f64.sqrt") (param $x f64) (result f64) (f64.sqrt (get_local $x))) - (func (export "f64.abs") (param $x f64) (result f64) (f64.abs (get_local $x))) - (func (export "f64.neg") (param $x f64) (result f64) (f64.neg (get_local $x))) - (func (export "f64.copysign") (param $x f64) (param $y f64) (result f64) (f64.copysign (get_local $x) (get_local $y))) - (func (export "f64.ceil") (param $x f64) (result f64) (f64.ceil (get_local $x))) - (func (export "f64.floor") (param $x f64) (result f64) (f64.floor (get_local $x))) - (func (export "f64.trunc") (param $x f64) (result f64) (f64.trunc (get_local $x))) - (func (export "f64.nearest") (param $x f64) (result f64) (f64.nearest (get_local $x))) - (func (export "f64.min") (param $x f64) (param $y f64) (result f64) (f64.min (get_local $x) (get_local $y))) - (func (export "f64.max") (param $x f64) (param $y f64) (result f64) (f64.max (get_local $x) (get_local $y))) -) - -;; Miscellaneous values. -(assert_return (invoke "f32.add" (f32.const 1.1234567890) (f32.const 1.2345e-10)) (f32.const 1.123456789)) -(assert_return (invoke "f64.add" (f64.const 1.1234567890) (f64.const 1.2345e-10)) (f64.const 0x1.1f9add37c11f7p+0)) - -;; Test adding the greatest value to 1.0 that rounds back to 1.0, and the -;; least that rounds to something greater. -(assert_return (invoke "f32.add" (f32.const 1.0) (f32.const 0x1p-24)) (f32.const 0x1.0p+0)) -(assert_return (invoke "f32.add" (f32.const 1.0) (f32.const 0x1.000002p-24)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f64.add" (f64.const 1.0) (f64.const 0x1p-53)) (f64.const 0x1.0p+0)) -(assert_return (invoke "f64.add" (f64.const 1.0) (f64.const 0x1.0000000000001p-53)) (f64.const 0x1.0000000000001p+0)) - -;; Max subnormal + min subnormal = min normal. -(assert_return (invoke "f32.add" (f32.const 0x1p-149) (f32.const 0x1.fffffcp-127)) (f32.const 0x1p-126)) -(assert_return (invoke "f64.add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.fffffffffffffp-1022)) (f64.const 0x1p-1022)) - -;; Test for a case of double rounding, example from: -;; http://perso.ens-lyon.fr/jean-michel.muller/Handbook.html -;; section 3.3.1: A typical problem: "double rounding" -(assert_return (invoke "f32.add" (f32.const 0x1p+31) (f32.const 1024.25)) (f32.const 0x1.000008p+31)) -(assert_return (invoke "f64.add" (f64.const 0x1p+63) (f64.const 1024.25)) (f64.const 0x1.0000000000001p+63)) - -;; Test a case that was "tricky" on MMIX. -;; http://mmix.cs.hm.edu/bugs/bug_rounding.html -(assert_return (invoke "f64.add" (f64.const -0x1p-1008) (f64.const 0x0.0000000001716p-1022)) (f64.const -0x1.fffffffffffffp-1009)) - -;; http://www.vinc17.org/software/tst-ieee754.xsl -(assert_return (invoke "f64.add" (f64.const 9007199254740992) (f64.const 1.00001)) (f64.const 9007199254740994)) - -;; http://www.vinc17.org/software/test.java -(assert_return (invoke "f64.add" (f64.const 9007199254740994) (f64.const 0x1.fffep-1)) (f64.const 9007199254740994)) - -;; Computations that round differently in ties-to-odd mode. -(assert_return (invoke "f32.add" (f32.const 0x1p23) (f32.const 0x1p-1)) (f32.const 0x1p23)) -(assert_return (invoke "f32.add" (f32.const 0x1.000002p+23) (f32.const 0x1p-1)) (f32.const 0x1.000004p+23)) -(assert_return (invoke "f64.add" (f64.const 0x1p52) (f64.const 0x1p-1)) (f64.const 0x1p52)) -(assert_return (invoke "f64.add" (f64.const 0x1.0000000000001p+52) (f64.const 0x1p-1)) (f64.const 0x1.0000000000002p+52)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.add" (f32.const -0x1.39675ap+102) (f32.const 0x1.76c94cp-99)) (f32.const -0x1.39675ap+102)) -(assert_return (invoke "f32.add" (f32.const 0x1.6c0f24p+67) (f32.const -0x1.2b92dp+52)) (f32.const 0x1.6c0cccp+67)) -(assert_return (invoke "f32.add" (f32.const 0x1.e62318p-83) (f32.const 0x1.f74abep-125)) (f32.const 0x1.e62318p-83)) -(assert_return (invoke "f32.add" (f32.const 0x1.2a71d4p+39) (f32.const -0x1.c9f10cp+55)) (f32.const -0x1.c9efe2p+55)) -(assert_return (invoke "f32.add" (f32.const 0x1.f8f736p-15) (f32.const 0x1.7bd45ep+106)) (f32.const 0x1.7bd45ep+106)) -(assert_return (invoke "f64.add" (f64.const 0x1.f33e1fbca27aap-413) (f64.const -0x1.6b192891ed61p+249)) (f64.const -0x1.6b192891ed61p+249)) -(assert_return (invoke "f64.add" (f64.const -0x1.46f75d130eeb1p+76) (f64.const 0x1.25275d6f7a4acp-184)) (f64.const -0x1.46f75d130eeb1p+76)) -(assert_return (invoke "f64.add" (f64.const 0x1.04dec9265a731p-148) (f64.const -0x1.11eed4e8c127cp-12)) (f64.const -0x1.11eed4e8c127cp-12)) -(assert_return (invoke "f64.add" (f64.const 0x1.05773b7166b0ap+497) (f64.const 0x1.134022f2da37bp+66)) (f64.const 0x1.05773b7166b0ap+497)) -(assert_return (invoke "f64.add" (f64.const 0x1.ef4f794282a82p+321) (f64.const 0x1.14a82266badep+394)) (f64.const 0x1.14a82266badep+394)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.add" (f32.const 0x1.1bf976p+72) (f32.const -0x1.7f5868p+20)) (f32.const 0x1.1bf976p+72)) -(assert_return (invoke "f32.add" (f32.const 0x1.7f9c6cp-45) (f32.const -0x1.b9bb0ep-78)) (f32.const 0x1.7f9c6cp-45)) -(assert_return (invoke "f32.add" (f32.const -0x1.32d1bcp-42) (f32.const 0x1.f7d214p+125)) (f32.const 0x1.f7d214p+125)) -(assert_return (invoke "f32.add" (f32.const -0x1.8e5c0ep-44) (f32.const -0x1.3afa4cp-106)) (f32.const -0x1.8e5c0ep-44)) -(assert_return (invoke "f32.add" (f32.const 0x1.13cd78p-10) (f32.const -0x1.3af316p-107)) (f32.const 0x1.13cd78p-10)) -(assert_return (invoke "f64.add" (f64.const 0x1.f8dd15ca97d4ap+179) (f64.const -0x1.367317d1fe8bfp-527)) (f64.const 0x1.f8dd15ca97d4ap+179)) -(assert_return (invoke "f64.add" (f64.const 0x1.5db08d739228cp+155) (f64.const -0x1.fb316fa147dcbp-61)) (f64.const 0x1.5db08d739228cp+155)) -(assert_return (invoke "f64.add" (f64.const 0x1.bbb403cb85c07p-404) (f64.const -0x1.7e44046b8bbf3p-979)) (f64.const 0x1.bbb403cb85c07p-404)) -(assert_return (invoke "f64.add" (f64.const -0x1.34d38af291831p+147) (f64.const -0x1.9890b47439953p+139)) (f64.const -0x1.366c1ba705bcap+147)) -(assert_return (invoke "f64.add" (f64.const -0x1.b61dedf4e0306p+3) (f64.const 0x1.09e2f31773c4ap+290)) (f64.const 0x1.09e2f31773c4ap+290)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.add" (f32.const -0x1.129bd8p-117) (f32.const 0x1.c75012p-43)) (f32.const 0x1.c75012p-43)) -(assert_return (invoke "f32.add" (f32.const -0x1.c204a2p-16) (f32.const 0x1.80b132p-27)) (f32.const -0x1.c1d48cp-16)) -(assert_return (invoke "f32.add" (f32.const -0x1.decc1cp+36) (f32.const 0x1.c688dap-109)) (f32.const -0x1.decc1cp+36)) -(assert_return (invoke "f32.add" (f32.const 0x1.61ce6ap-118) (f32.const -0x1.772892p+30)) (f32.const -0x1.772892p+30)) -(assert_return (invoke "f32.add" (f32.const -0x1.3dc826p-120) (f32.const 0x1.fc3f66p+95)) (f32.const 0x1.fc3f66p+95)) -(assert_return (invoke "f64.add" (f64.const 0x1.bf68acc263a0fp-777) (f64.const -0x1.5f9352965e5a6p+1004)) (f64.const -0x1.5f9352965e5a6p+1004)) -(assert_return (invoke "f64.add" (f64.const -0x1.76eaa70911f51p+516) (f64.const -0x1.2d746324ce47ap+493)) (f64.const -0x1.76eaa963fabb6p+516)) -(assert_return (invoke "f64.add" (f64.const -0x1.b637d82c15a7ap-967) (f64.const 0x1.cc654ccab4152p-283)) (f64.const 0x1.cc654ccab4152p-283)) -(assert_return (invoke "f64.add" (f64.const -0x1.a5b1fb66e846ep-509) (f64.const 0x1.4bdd36f0bb5ccp-860)) (f64.const -0x1.a5b1fb66e846ep-509)) -(assert_return (invoke "f64.add" (f64.const -0x1.14108da880f9ep+966) (f64.const 0x1.417f35701e89fp+800)) (f64.const -0x1.14108da880f9ep+966)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.add" (f64.const -0x1.fa0caf21ffebcp+804) (f64.const 0x1.4ca8fdcff89f9p+826)) (f64.const 0x1.4ca8f5e7c5e31p+826)) -(assert_return (invoke "f64.add" (f64.const 0x1.016f1fcbdfd38p+784) (f64.const 0x1.375dffcbc9a2cp+746)) (f64.const 0x1.016f1fcbe4b0fp+784)) -(assert_return (invoke "f64.add" (f64.const -0x1.dffda6d5bff3ap+624) (f64.const 0x1.f9e8cc2dff782p+674)) (f64.const 0x1.f9e8cc2dff77bp+674)) -(assert_return (invoke "f64.add" (f64.const 0x1.fff4b43687dfbp+463) (f64.const 0x1.0fd5617c4a809p+517)) (f64.const 0x1.0fd5617c4a809p+517)) -(assert_return (invoke "f64.add" (f64.const 0x1.535d380035da2p-995) (f64.const 0x1.cce37dddbb73bp-963)) (f64.const 0x1.cce37ddf0ed0fp-963)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.add" (f64.const -0x1.d91cd3fc0c66fp+752) (f64.const -0x1.4e18c80229734p+952)) (f64.const -0x1.4e18c80229734p+952)) -(assert_return (invoke "f64.add" (f64.const 0x1.afc70fd36e372p+193) (f64.const -0x1.bd10a9b377b46p+273)) (f64.const -0x1.bd10a9b377b46p+273)) -(assert_return (invoke "f64.add" (f64.const -0x1.2abd570b078b2p+302) (f64.const 0x1.b3c1ad759cb5bp-423)) (f64.const -0x1.2abd570b078b2p+302)) -(assert_return (invoke "f64.add" (f64.const -0x1.5b2ae84c0686cp-317) (f64.const -0x1.dba7a1c022823p+466)) (f64.const -0x1.dba7a1c022823p+466)) -(assert_return (invoke "f64.add" (f64.const -0x1.ac627bd7cbf38p-198) (f64.const 0x1.2312e265b8d59p-990)) (f64.const -0x1.ac627bd7cbf38p-198)) - -;; Computations that utilize the maximum exponent value to avoid overflow. -(assert_return (invoke "f32.add" (f32.const 0x1.2b91ap+116) (f32.const 0x1.cbcd52p+127)) (f32.const 0x1.cbf2c4p+127)) -(assert_return (invoke "f32.add" (f32.const 0x1.96f392p+127) (f32.const -0x1.6b3fecp+107)) (f32.const 0x1.96f37cp+127)) -(assert_return (invoke "f32.add" (f32.const 0x1.132f1cp+118) (f32.const -0x1.63d632p+127)) (f32.const -0x1.634c9ap+127)) -(assert_return (invoke "f32.add" (f32.const -0x1.1dda64p+120) (f32.const -0x1.ef02ep+127)) (f32.const -0x1.f13e94p+127)) -(assert_return (invoke "f32.add" (f32.const -0x1.4ad8dap+127) (f32.const -0x1.eae082p+125)) (f32.const -0x1.c590fap+127)) -(assert_return (invoke "f64.add" (f64.const 0x1.017099f2a4b8bp+1023) (f64.const 0x1.1f63b28f05454p+981)) (f64.const 0x1.017099f2a5009p+1023)) -(assert_return (invoke "f64.add" (f64.const 0x1.d88b6c74984efp+1023) (f64.const 0x1.33b444775eabcp+990)) (f64.const 0x1.d88b6c7532291p+1023)) -(assert_return (invoke "f64.add" (f64.const -0x1.84576422fdf5p+1023) (f64.const 0x1.60ee6aa12fb9cp+1012)) (f64.const -0x1.842b4655a9cf1p+1023)) -(assert_return (invoke "f64.add" (f64.const -0x1.9aaace3e79f7dp+1001) (f64.const 0x1.e4068af295cb6p+1023)) (f64.const 0x1.e4068487ea926p+1023)) -(assert_return (invoke "f64.add" (f64.const 0x1.06cdae79f27b9p+1023) (f64.const -0x1.e05cb0c96f975p+991)) (f64.const 0x1.06cdae78121eep+1023)) - -;; Computations that utilize the minimum exponent value. -(assert_return (invoke "f32.add" (f32.const 0x1.6a1a2p-127) (f32.const 0x1.378p-140)) (f32.const 0x1.6a23dcp-127)) -(assert_return (invoke "f32.add" (f32.const 0x1.28p-144) (f32.const -0x1p-148)) (f32.const 0x1.18p-144)) -(assert_return (invoke "f32.add" (f32.const -0x1p-146) (f32.const 0x1.c3cap-128)) (f32.const 0x1.c3c9cp-128)) -(assert_return (invoke "f32.add" (f32.const -0x1.4p-145) (f32.const 0x1.424052p-122)) (f32.const 0x1.42405p-122)) -(assert_return (invoke "f32.add" (f32.const 0x1.c5p-141) (f32.const -0x1.72f8p-135)) (f32.const -0x1.6be4p-135)) -(assert_return (invoke "f64.add" (f64.const 0x1.4774c681d1e21p-1022) (f64.const -0x1.271e58e9f58cap-1021)) (f64.const -0x1.06c7eb5219373p-1022)) -(assert_return (invoke "f64.add" (f64.const 0x1.10b3a75e31916p-1021) (f64.const -0x1.ffb82b0e868a7p-1021)) (f64.const -0x1.de090760a9f22p-1022)) -(assert_return (invoke "f64.add" (f64.const -0x0.6b58448b8098ap-1022) (f64.const -0x1.579796ed04cbep-1022)) (f64.const -0x1.c2efdb7885648p-1022)) -(assert_return (invoke "f64.add" (f64.const 0x1.9eb9e7baae8d1p-1020) (f64.const -0x1.d58e136f8c6eep-1020)) (f64.const -0x0.db50aed377874p-1022)) -(assert_return (invoke "f64.add" (f64.const -0x1.f1115deeafa0bp-1022) (f64.const 0x1.221b1c87dca29p-1022)) (f64.const -0x0.cef64166d2fe2p-1022)) - -;; Test an add of the second-greatest finite value with the distance to greatest -;; finite value. -(assert_return (invoke "f32.add" (f32.const 0x1.fffffcp+127) (f32.const 0x1p+104)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f64.add" (f64.const 0x1.ffffffffffffep+1023) (f64.const 0x1p+971)) (f64.const 0x1.fffffffffffffp+1023)) - -;; http://news.harvard.edu/gazette/story/2013/09/dawn-of-a-revolution/ -(assert_return (invoke "f32.add" (f32.const 2.0) (f32.const 2.0)) (f32.const 4.0)) -(assert_return (invoke "f64.add" (f64.const 2.0) (f64.const 2.0)) (f64.const 4.0)) - -;; Test rounding above the greatest finite value. -(assert_return (invoke "f32.add" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+102)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.add" (f32.const 0x1.fffffep+127) (f32.const 0x1p+103)) (f32.const inf)) -(assert_return (invoke "f64.add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+969)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "f64.add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+970)) (f64.const inf)) - -;; Test for a historic spreadsheet bug. -;; https://blogs.office.com/2007/09/25/calculation-issue-update/ -(assert_return (invoke "f32.sub" (f32.const 65536.0) (f32.const 0x1p-37)) (f32.const 65536.0)) -(assert_return (invoke "f64.sub" (f64.const 65536.0) (f64.const 0x1p-37)) (f64.const 0x1.fffffffffffffp+15)) - -;; Test subtracting the greatest value from 1.0 that rounds back to 1.0, and the -;; least that rounds to something less. -(assert_return (invoke "f32.sub" (f32.const 1.0) (f32.const 0x1p-25)) (f32.const 0x1.0p+0)) -(assert_return (invoke "f32.sub" (f32.const 1.0) (f32.const 0x1.000002p-25)) (f32.const 0x1.fffffep-1)) -(assert_return (invoke "f64.sub" (f64.const 1.0) (f64.const 0x1p-54)) (f64.const 0x1.0p+0)) -(assert_return (invoke "f64.sub" (f64.const 1.0) (f64.const 0x1.0000000000001p-54)) (f64.const 0x1.fffffffffffffp-1)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.sub" (f32.const 0x1.ee2466p-106) (f32.const -0x1.16277ep+119)) (f32.const 0x1.16277ep+119)) -(assert_return (invoke "f32.sub" (f32.const -0x1.446f9ep+119) (f32.const -0x1.4396a4p+43)) (f32.const -0x1.446f9ep+119)) -(assert_return (invoke "f32.sub" (f32.const 0x1.74773cp+0) (f32.const -0x1.a25512p-82)) (f32.const 0x1.74773cp+0)) -(assert_return (invoke "f32.sub" (f32.const 0x1.9345c4p-117) (f32.const 0x1.6792c2p-76)) (f32.const -0x1.6792c2p-76)) -(assert_return (invoke "f32.sub" (f32.const 0x1.9ecfa4p-18) (f32.const -0x1.864b44p-107)) (f32.const 0x1.9ecfa4p-18)) -(assert_return (invoke "f64.sub" (f64.const -0x1.5b798875e7845p-333) (f64.const -0x1.b5147117452fep-903)) (f64.const -0x1.5b798875e7845p-333)) -(assert_return (invoke "f64.sub" (f64.const -0x1.6c87baeb6d72dp+552) (f64.const -0x1.64fb35d4b5571p-158)) (f64.const -0x1.6c87baeb6d72dp+552)) -(assert_return (invoke "f64.sub" (f64.const 0x1.b3d369fcf74bp-461) (f64.const -0x1.ea1668c0dec93p-837)) (f64.const 0x1.b3d369fcf74bp-461)) -(assert_return (invoke "f64.sub" (f64.const 0x1.0abd449353eadp-1005) (f64.const -0x1.0422ea3e82ee9p+154)) (f64.const 0x1.0422ea3e82ee9p+154)) -(assert_return (invoke "f64.sub" (f64.const -0x1.aadbc6b43cc3dp-143) (f64.const -0x1.e7f922ef1ee58p-539)) (f64.const -0x1.aadbc6b43cc3dp-143)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.sub" (f32.const -0x1.61e262p+108) (f32.const -0x1.baf3e4p+112)) (f32.const 0x1.a4d5bep+112)) -(assert_return (invoke "f32.sub" (f32.const -0x1.62c2f6p+109) (f32.const 0x1.6e514ap+6)) (f32.const -0x1.62c2f6p+109)) -(assert_return (invoke "f32.sub" (f32.const -0x1.287c94p-83) (f32.const 0x1.0f2f9cp-24)) (f32.const -0x1.0f2f9cp-24)) -(assert_return (invoke "f32.sub" (f32.const -0x1.c8825cp-77) (f32.const -0x1.4aead6p-12)) (f32.const 0x1.4aead6p-12)) -(assert_return (invoke "f32.sub" (f32.const -0x1.2976a4p+99) (f32.const 0x1.c6e3b8p-59)) (f32.const -0x1.2976a4p+99)) -(assert_return (invoke "f64.sub" (f64.const -0x1.76cb28ae6c045p+202) (f64.const -0x1.0611f2af4e9b9p+901)) (f64.const 0x1.0611f2af4e9b9p+901)) -(assert_return (invoke "f64.sub" (f64.const 0x1.baf35eff22e9ep-368) (f64.const 0x1.5c3e08ecf73ecp-451)) (f64.const 0x1.baf35eff22e9ep-368)) -(assert_return (invoke "f64.sub" (f64.const -0x1.8fd354b376f1fp-200) (f64.const 0x1.513c860f386ffp-508)) (f64.const -0x1.8fd354b376f1fp-200)) -(assert_return (invoke "f64.sub" (f64.const -0x1.760d447230ae6p-992) (f64.const -0x1.16f788438ae3ep-328)) (f64.const 0x1.16f788438ae3ep-328)) -(assert_return (invoke "f64.sub" (f64.const -0x1.73aab4fcfc7ap+112) (f64.const 0x1.7c589f990b884p+171)) (f64.const -0x1.7c589f990b884p+171)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.sub" (f32.const 0x1.ea264cp+95) (f32.const 0x1.852988p-15)) (f32.const 0x1.ea264cp+95)) -(assert_return (invoke "f32.sub" (f32.const -0x1.14ec7cp+19) (f32.const -0x1.0ad3fep-35)) (f32.const -0x1.14ec7cp+19)) -(assert_return (invoke "f32.sub" (f32.const -0x1.3251dap-36) (f32.const -0x1.49c97ep-56)) (f32.const -0x1.3251c6p-36)) -(assert_return (invoke "f32.sub" (f32.const -0x1.13565ep-14) (f32.const 0x1.2f89a8p-13)) (f32.const -0x1.b934d8p-13)) -(assert_return (invoke "f32.sub" (f32.const -0x1.6032b6p-33) (f32.const -0x1.bb5196p-104)) (f32.const -0x1.6032b6p-33)) -(assert_return (invoke "f64.sub" (f64.const -0x1.b5b0797af491p-157) (f64.const -0x1.694b8348189e8p+722)) (f64.const 0x1.694b8348189e8p+722)) -(assert_return (invoke "f64.sub" (f64.const -0x1.72b142826ed73p+759) (f64.const -0x1.010477bc9afbdp+903)) (f64.const 0x1.010477bc9afbdp+903)) -(assert_return (invoke "f64.sub" (f64.const 0x1.83273b6bb94cfp-796) (f64.const 0x1.1a93f948a2abbp+181)) (f64.const -0x1.1a93f948a2abbp+181)) -(assert_return (invoke "f64.sub" (f64.const -0x1.207e7156cbf2p-573) (f64.const 0x1.cf3f12fd3814dp-544)) (f64.const -0x1.cf3f13063c086p-544)) -(assert_return (invoke "f64.sub" (f64.const -0x1.837e6844f1718p-559) (f64.const -0x1.1c29b757f98abp-14)) (f64.const 0x1.1c29b757f98abp-14)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.sub" (f64.const 0x1.c21151a709b6cp-78) (f64.const 0x1.0a12fff8910f6p-115)) (f64.const 0x1.c21151a701663p-78)) -(assert_return (invoke "f64.sub" (f64.const 0x1.c57912aae2f64p-982) (f64.const 0x1.dbfbd4800b7cfp-1010)) (f64.const 0x1.c579128d2338fp-982)) -(assert_return (invoke "f64.sub" (f64.const 0x1.ffef4399af9c6p-254) (f64.const 0x1.edb96dfaea8b1p-200)) (f64.const -0x1.edb96dfaea8b1p-200)) -(assert_return (invoke "f64.sub" (f64.const -0x1.363eee391cde2p-39) (f64.const -0x1.a65462000265fp-69)) (f64.const -0x1.363eee32838c9p-39)) -(assert_return (invoke "f64.sub" (f64.const 0x1.59016dba002a1p-25) (f64.const 0x1.5d4374f124cccp-3)) (f64.const -0x1.5d436f8d1f15dp-3)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.sub" (f64.const -0x1.18196bca005cfp-814) (f64.const -0x1.db7b01ce3f52fp-766)) (f64.const 0x1.db7b01ce3f51dp-766)) -(assert_return (invoke "f64.sub" (f64.const -0x1.d17b3528d219p+33) (f64.const 0x1.fd739d4ea220ap+367)) (f64.const -0x1.fd739d4ea220ap+367)) -(assert_return (invoke "f64.sub" (f64.const 0x1.dea46994de319p+114) (f64.const 0x1.b5b19cd55c7d3p-590)) (f64.const 0x1.dea46994de319p+114)) -(assert_return (invoke "f64.sub" (f64.const 0x1.b60f9b2fbd9ecp-489) (f64.const -0x1.6f81c59ec5b8ep-694)) (f64.const 0x1.b60f9b2fbd9ecp-489)) -(assert_return (invoke "f64.sub" (f64.const 0x1.5e423fe8571f4p-57) (f64.const 0x1.9624ed7c162dfp-618)) (f64.const 0x1.5e423fe8571f4p-57)) - -;; pow(e, π) - π -;; https://xkcd.com/217 -(assert_return (invoke "f32.sub" (f32.const 0x1.724046p+4) (f32.const 0x1.921fb6p+1)) (f32.const 0x1.3ffc5p+4)) -(assert_return (invoke "f64.sub" (f64.const 0x1.724046eb0933ap+4) (f64.const 0x1.921fb54442d18p+1)) (f64.const 0x1.3ffc504280d97p+4)) - -;; https://www.cnet.com/news/googles-calculator-muffs-some-math-problems/ -(assert_return (invoke "f32.sub" (f32.const 2999999) (f32.const 2999998)) (f32.const 1.0)) -(assert_return (invoke "f32.sub" (f32.const 1999999) (f32.const 1999995)) (f32.const 4.0)) -(assert_return (invoke "f32.sub" (f32.const 1999999) (f32.const 1999993)) (f32.const 6.0)) -(assert_return (invoke "f32.sub" (f32.const 400002) (f32.const 400001)) (f32.const 1.0)) -(assert_return (invoke "f32.sub" (f32.const 400002) (f32.const 400000)) (f32.const 2.0)) -(assert_return (invoke "f64.sub" (f64.const 2999999999999999) (f64.const 2999999999999998)) (f64.const 1.0)) -(assert_return (invoke "f64.sub" (f64.const 1999999999999999) (f64.const 1999999999999995)) (f64.const 4.0)) -(assert_return (invoke "f64.sub" (f64.const 1999999999999999) (f64.const 1999999999999993)) (f64.const 6.0)) -(assert_return (invoke "f64.sub" (f64.const 400000000000002) (f64.const 400000000000001)) (f64.const 1.0)) -(assert_return (invoke "f64.sub" (f64.const 400000000000002) (f64.const 400000000000000)) (f64.const 2.0)) - -;; Min normal - max subnormal = min subnormal. -(assert_return (invoke "f32.sub" (f32.const 0x1p-126) (f32.const 0x1.fffffcp-127)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.sub" (f64.const 0x1p-1022) (f64.const 0x0.fffffffffffffp-1022)) (f64.const 0x0.0000000000001p-1022)) - -;; Test subtraction of numbers very close to 1. -(assert_return (invoke "f32.sub" (f32.const 0x1.000002p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1.8p-23)) -(assert_return (invoke "f32.sub" (f32.const 0x1.000002p+0) (f32.const 0x1.0p+0)) (f32.const 0x1p-23)) -(assert_return (invoke "f32.sub" (f32.const 0x1p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1p-24)) -(assert_return (invoke "f64.sub" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.8p-52)) -(assert_return (invoke "f64.sub" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.0p+0)) (f64.const 0x1p-52)) -(assert_return (invoke "f64.sub" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1p-53)) - -;; Test the least value that can be subtracted from the max value to produce a -;; different value. -(assert_return (invoke "f32.sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+102)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p+103)) (f32.const 0x1.fffffcp+127)) -(assert_return (invoke "f64.sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+969)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "f64.sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+970)) (f64.const 0x1.ffffffffffffep+1023)) - -;; Miscellaneous values. -(assert_return (invoke "f32.mul" (f32.const 1e15) (f32.const 1e15)) (f32.const 0x1.93e592p+99)) -(assert_return (invoke "f32.mul" (f32.const 1e20) (f32.const 1e20)) (f32.const inf)) -(assert_return (invoke "f32.mul" (f32.const 1e25) (f32.const 1e25)) (f32.const inf)) -(assert_return (invoke "f64.mul" (f64.const 1e15) (f64.const 1e15)) (f64.const 0x1.93e5939a08ceap+99)) -(assert_return (invoke "f64.mul" (f64.const 1e20) (f64.const 1e20)) (f64.const 0x1.d6329f1c35ca5p+132)) -(assert_return (invoke "f64.mul" (f64.const 1e25) (f64.const 1e25)) (f64.const 0x1.11b0ec57e649bp+166)) - -;; Test for a case of double rounding, example from: -;; http://perso.ens-lyon.fr/jean-michel.muller/Handbook.html -;; section 3.3.1: A typical problem: "double rounding" -(assert_return (invoke "f32.mul" (f32.const 1848874880.0) (f32.const 19954563072.0)) (f32.const 0x1.000002p+65)) -(assert_return (invoke "f64.mul" (f64.const 1848874847.0) (f64.const 19954562207.0)) (f64.const 3.6893488147419111424e+19)) - -;; Test for a historic spreadsheet bug. -;; http://www.joelonsoftware.com/items/2007/09/26b.html -(assert_return (invoke "f32.mul" (f32.const 77.1) (f32.const 850)) (f32.const 65535)) -(assert_return (invoke "f64.mul" (f64.const 77.1) (f64.const 850)) (f64.const 65534.99999999999272404)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.mul" (f32.const -0x1.14df2ep+61) (f32.const 0x1.748878p-36)) (f32.const -0x1.92e7e8p+25)) -(assert_return (invoke "f32.mul" (f32.const -0x1.5629e2p+102) (f32.const -0x1.c33012p-102)) (f32.const 0x1.2d8604p+1)) -(assert_return (invoke "f32.mul" (f32.const -0x1.b17694p+92) (f32.const -0x1.e4b56ap-97)) (f32.const 0x1.9a5baep-4)) -(assert_return (invoke "f32.mul" (f32.const -0x1.1626a6p+79) (f32.const -0x1.c57d7p-75)) (f32.const 0x1.ecbaaep+4)) -(assert_return (invoke "f32.mul" (f32.const 0x1.7acf72p+53) (f32.const 0x1.6c89acp+5)) (f32.const 0x1.0db556p+59)) -(assert_return (invoke "f64.mul" (f64.const -0x1.25c293f6f37e4p+425) (f64.const 0x1.f5fd4fa41c6d8p+945)) (f64.const -inf)) -(assert_return (invoke "f64.mul" (f64.const -0x1.cc1ae79fffc5bp-986) (f64.const -0x1.c36ccc2861ca6p-219)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.c0232b3e64b56p+606) (f64.const -0x1.f6939cf3affaap+106)) (f64.const -0x1.b7e3aedf190d3p+713)) -(assert_return (invoke "f64.mul" (f64.const -0x1.60f289966b271p-313) (f64.const 0x1.28a5497f0c259p+583)) (f64.const -0x1.98fc50bcec259p+270)) -(assert_return (invoke "f64.mul" (f64.const 0x1.37dab12d3afa2p+795) (f64.const 0x1.81e156bd393f1p-858)) (f64.const 0x1.d6126554b8298p-63)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.mul" (f32.const -0x1.3f57a2p-89) (f32.const -0x1.041d68p+92)) (f32.const 0x1.4479bp+3)) -(assert_return (invoke "f32.mul" (f32.const 0x1.4d0582p+73) (f32.const 0x1.6e043ap+19)) (f32.const 0x1.dc236p+92)) -(assert_return (invoke "f32.mul" (f32.const -0x1.2fdap-32) (f32.const -0x1.e1731cp+74)) (f32.const 0x1.1db89ep+43)) -(assert_return (invoke "f32.mul" (f32.const 0x1.7bc8fep+67) (f32.const -0x1.3ad592p+15)) (f32.const -0x1.d3115ep+82)) -(assert_return (invoke "f32.mul" (f32.const 0x1.936742p+30) (f32.const -0x1.a7a19p+66)) (f32.const -0x1.4dc71ap+97)) -(assert_return (invoke "f64.mul" (f64.const -0x1.ba737b4ca3b13p-639) (f64.const 0x1.8923309857438p-314)) (f64.const -0x1.53bc0d07baa37p-952)) -(assert_return (invoke "f64.mul" (f64.const 0x1.7c1932e610219p-276) (f64.const -0x1.2605db646489fp-635)) (f64.const -0x1.b48da2b0d2ae3p-911)) -(assert_return (invoke "f64.mul" (f64.const -0x1.e43cdf3b2108p+329) (f64.const -0x1.99d96abbd61d1p+835)) (f64.const inf)) -(assert_return (invoke "f64.mul" (f64.const 0x1.4c19466551da3p+947) (f64.const 0x1.0bdcd6c7646e9p-439)) (f64.const 0x1.5b7cd8c3f638ap+508)) -(assert_return (invoke "f64.mul" (f64.const 0x1.ff1da1726e3dfp+339) (f64.const -0x1.043c44f52b158p+169)) (f64.const -0x1.03c9364bb585cp+509)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.mul" (f32.const -0x1.907e8ap+46) (f32.const -0x1.5d3668p+95)) (f32.const inf)) -(assert_return (invoke "f32.mul" (f32.const -0x1.8c9f74p-3) (f32.const 0x1.e2b452p-99)) (f32.const -0x1.75edccp-101)) -(assert_return (invoke "f32.mul" (f32.const -0x1.cc605ap-19) (f32.const 0x1.ec321ap+105)) (f32.const -0x1.ba91a4p+87)) -(assert_return (invoke "f32.mul" (f32.const -0x1.5fbb7ap+56) (f32.const 0x1.a8965ep-96)) (f32.const -0x1.23ae8ep-39)) -(assert_return (invoke "f32.mul" (f32.const -0x1.fb7f12p+16) (f32.const 0x1.3a701ap-119)) (f32.const -0x1.37ac0cp-102)) -(assert_return (invoke "f64.mul" (f64.const -0x1.5b0266454c26bp-496) (f64.const -0x1.af5787e3e0399p+433)) (f64.const 0x1.2457d81949e0bp-62)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0d54a82393d45p+478) (f64.const -0x1.425760807ceaep-764)) (f64.const -0x1.532068c8d0d5dp-286)) -(assert_return (invoke "f64.mul" (f64.const -0x1.b532af981786p+172) (f64.const 0x1.ada95085ba36fp+359)) (f64.const -0x1.6ee38c1e01864p+532)) -(assert_return (invoke "f64.mul" (f64.const 0x1.e132f4d49d1cep+768) (f64.const -0x1.a75afe9a7d864p+374)) (f64.const -inf)) -(assert_return (invoke "f64.mul" (f64.const 0x1.68bbf1cfff90ap+81) (f64.const 0x1.09cd17d652c5p+70)) (f64.const 0x1.768b8d67d794p+151)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.mul" (f64.const 0x1.f99fb602c89b7p-341) (f64.const 0x1.6caab46a31a2ep-575)) (f64.const 0x1.68201f986e9d7p-915)) -(assert_return (invoke "f64.mul" (f64.const -0x1.86999c5eee379p-9) (f64.const 0x1.6e3b9e0d53e0dp+723)) (f64.const -0x1.17654a0ef35f5p+715)) -(assert_return (invoke "f64.mul" (f64.const -0x1.069571b176f9p+367) (f64.const -0x1.e248b6ab0a0e3p-652)) (f64.const 0x1.eeaff575cae1dp-285)) -(assert_return (invoke "f64.mul" (f64.const 0x1.c217645777dd2p+775) (f64.const 0x1.d93f5715dd646p+60)) (f64.const 0x1.a0064aa1d920dp+836)) -(assert_return (invoke "f64.mul" (f64.const -0x1.848981b6e694ap-276) (f64.const 0x1.f5aacb64a0d19p+896)) (f64.const -0x1.7cb2296e6c2e5p+621)) - -;; Computations that round differently on x87 in double-precision mode. -(assert_return (invoke "f64.mul" (f64.const 0x1.db3bd2a286944p-599) (f64.const 0x1.ce910af1d55cap-425)) (f64.const 0x0.d6accdd538a39p-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.aca223916012p-57) (f64.const -0x1.2b2b4958dd228p-966)) (f64.const 0x0.fa74eccae5615p-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.bd062def16cffp-488) (f64.const -0x1.7ddd91a0c4c0ep-536)) (f64.const 0x0.a5f4d7769d90dp-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.c6a56169e9cep-772) (f64.const 0x1.517d55a474122p-255)) (f64.const -0x0.12baf260afb77p-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.08951b0b41705p-516) (f64.const -0x1.102dc27168d09p-507)) (f64.const 0x0.8ca6dbf3f592bp-1022)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.mul" (f64.const 0x1.8d0dea50c8c9bp+852) (f64.const 0x1.21cac31d87a24p-881)) (f64.const 0x1.c177311f7cd73p-29)) -(assert_return (invoke "f64.mul" (f64.const 0x1.98049118e3063p-7) (f64.const 0x1.6362525151b58p-149)) (f64.const 0x1.1b358514103f9p-155)) -(assert_return (invoke "f64.mul" (f64.const -0x1.ea65cb0631323p+1) (f64.const 0x1.fce683201a19bp-41)) (f64.const -0x1.e76dc8c223667p-39)) -(assert_return (invoke "f64.mul" (f64.const 0x1.e4d235961d543p-373) (f64.const 0x1.bc56f20ef9a48p-205)) (f64.const 0x1.a4c09efcb71d6p-577)) -(assert_return (invoke "f64.mul" (f64.const -0x1.b9612e66faba8p+77) (f64.const 0x1.e2bc6aa782273p-348)) (f64.const -0x1.a026ea4f81db1p-270)) - -;; Test the least positive value with a positive square. -(assert_return (invoke "f32.mul" (f32.const 0x1p-75) (f32.const 0x1p-75)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.mul" (f32.const 0x1.000002p-75) (f32.const 0x1.000002p-75)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.mul" (f64.const 0x1.6a09e667f3bccp-538) (f64.const 0x1.6a09e667f3bccp-538)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.6a09e667f3bcdp-538) (f64.const 0x1.6a09e667f3bcdp-538)) (f64.const 0x0.0000000000001p-1022)) - -;; Test the greatest positive value with a finite square. -(assert_return (invoke "f32.mul" (f32.const 0x1.fffffep+63) (f32.const 0x1.fffffep+63)) (f32.const 0x1.fffffcp+127)) -(assert_return (invoke "f32.mul" (f32.const 0x1p+64) (f32.const 0x1p+64)) (f32.const inf)) -(assert_return (invoke "f64.mul" (f64.const 0x1.fffffffffffffp+511) (f64.const 0x1.fffffffffffffp+511)) (f64.const 0x1.ffffffffffffep+1023)) -(assert_return (invoke "f64.mul" (f64.const 0x1p+512) (f64.const 0x1p+512)) (f64.const inf)) - -;; Test the squares of values very close to 1. -(assert_return (invoke "f32.mul" (f32.const 0x1.000002p+0) (f32.const 0x1.000002p+0)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.mul" (f32.const 0x1.fffffep-1) (f32.const 0x1.fffffep-1)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.0000000000001p+0)) (f64.const 0x1.0000000000002p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.fffffffffffffp-1) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test multiplication of numbers very close to 1. -(assert_return (invoke "f32.mul" (f32.const 0x1.000002p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1p+0)) -(assert_return (invoke "f32.mul" (f32.const 0x1.000004p+0) (f32.const 0x1.fffffcp-1)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0000000000002p+0) (f64.const 0x1.ffffffffffffep-1)) (f64.const 0x1.0000000000001p+0)) - -;; Test MIN * EPSILON. -;; http://www.mpfr.org/mpfr-2.0.1/patch2 -(assert_return (invoke "f32.mul" (f32.const 0x1p-126) (f32.const 0x1p-23)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.mul" (f64.const 0x1p-1022) (f64.const 0x1p-52)) (f64.const 0x0.0000000000001p-1022)) - -;; http://opencores.org/bug,view,2454 -(assert_return (invoke "f32.mul" (f32.const -0x1.0006p+4) (f32.const 0x1.ap-132)) (f32.const -0x1.a009cp-128)) - -;; Miscellaneous values. -(assert_return (invoke "f32.div" (f32.const 1.123456789) (f32.const 100)) (f32.const 0x1.702264p-7)) -(assert_return (invoke "f32.div" (f32.const 8391667.0) (f32.const 12582905.0)) (f32.const 0x1.55754p-1)) -(assert_return (invoke "f32.div" (f32.const 65536.0) (f32.const 0x1p-37)) (f32.const 0x1p+53)) -(assert_return (invoke "f32.div" (f32.const 0x1.dcbf6ap+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.dcbf68p-128)) -(assert_return (invoke "f32.div" (f32.const 4) (f32.const 3)) (f32.const 0x1.555556p+0)) -(assert_return (invoke "f64.div" (f64.const 1.123456789) (f64.const 100)) (f64.const 0.01123456789)) -(assert_return (invoke "f64.div" (f64.const 8391667.0) (f64.const 12582905.0)) (f64.const 0x1.55753f1d9ba27p-1)) -(assert_return (invoke "f64.div" (f64.const 65536.0) (f64.const 0x1p-37)) (f64.const 0x1p+53)) -(assert_return (invoke "f64.div" (f64.const 0x1.dcbf6ap+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.772fda8p-1022)) -(assert_return (invoke "f64.div" (f64.const 4) (f64.const 3)) (f64.const 0x1.5555555555555p+0)) - -;; Test for a historic hardware bug. -;; https://en.wikipedia.org/wiki/Pentium_FDIV_bug -(assert_return (invoke "f32.div" (f32.const 4195835) (f32.const 3145727)) (f32.const 0x1.557542p+0)) -(assert_return (invoke "f64.div" (f64.const 4195835) (f64.const 3145727)) (f64.const 0x1.557541c7c6b43p+0)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.div" (f32.const 0x1.6a6c5ap-48) (f32.const 0x1.fa0b7p+127)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.616fb2p-87) (f32.const 0x1.332172p+68)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.div" (f32.const -0x1.96e778p+16) (f32.const 0x1.eb0c56p-80)) (f32.const -0x1.a8440ap+95)) -(assert_return (invoke "f32.div" (f32.const -0x1.e2624p-76) (f32.const -0x1.ed236ep-122)) (f32.const 0x1.f4d584p+45)) -(assert_return (invoke "f32.div" (f32.const -0x1.e2374ep+41) (f32.const 0x1.71fcdcp-80)) (f32.const -0x1.4da706p+121)) -(assert_return (invoke "f64.div" (f64.const 0x1.163c09d0c38c1p+147) (f64.const 0x1.e04cc737348e6p+223)) (f64.const 0x1.289921caeed23p-77)) -(assert_return (invoke "f64.div" (f64.const 0x1.d6867e741e0a9p-626) (f64.const 0x1.335eb19a9aae4p-972)) (f64.const 0x1.87e342d11f519p+346)) -(assert_return (invoke "f64.div" (f64.const -0x1.d5edf648aeb98p+298) (f64.const 0x1.0dda15b079355p+640)) (f64.const -0x1.bdceaf9734b5cp-342)) -(assert_return (invoke "f64.div" (f64.const -0x1.b683e3934aedap+691) (f64.const 0x1.c364e1df00dffp+246)) (f64.const -0x1.f16456e7afe3bp+444)) -(assert_return (invoke "f64.div" (f64.const -0x1.44ca7539cc851p+540) (f64.const 0x1.58501bccc58fep+453)) (f64.const -0x1.e2f8657e0924ep+86)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.div" (f32.const -0x1.c2c54ap+69) (f32.const -0x1.00d142p-86)) (f32.const inf)) -(assert_return (invoke "f32.div" (f32.const 0x1.e35abep-46) (f32.const 0x1.c69dfp+44)) (f32.const 0x1.102eb4p-90)) -(assert_return (invoke "f32.div" (f32.const 0x1.45ff2ap+0) (f32.const -0x1.1e8754p+89)) (f32.const -0x1.23434ep-89)) -(assert_return (invoke "f32.div" (f32.const 0x1.8db18ap-51) (f32.const 0x1.47c678p-128)) (f32.const 0x1.369b96p+77)) -(assert_return (invoke "f32.div" (f32.const 0x1.78599p+90) (f32.const 0x1.534144p+87)) (f32.const 0x1.1bfddcp+3)) -(assert_return (invoke "f64.div" (f64.const 0x0.f331c4f47eb51p-1022) (f64.const -0x1.c7ff45bf6f03ap+362)) (f64.const -0x0p+0)) -(assert_return (invoke "f64.div" (f64.const -0x1.0fc8707b9d19cp-987) (f64.const 0x1.77524d5f4a563p-536)) (f64.const -0x1.72c1a937d231p-452)) -(assert_return (invoke "f64.div" (f64.const -0x1.edb3aa64bb338p-403) (f64.const -0x1.1c7c164320e4p+45)) (f64.const 0x1.bc44cc1c5ae63p-448)) -(assert_return (invoke "f64.div" (f64.const -0x1.6534b34e8686bp+80) (f64.const 0x1.c34a7fc59e3c3p-791)) (f64.const -0x1.95421bf291b66p+870)) -(assert_return (invoke "f64.div" (f64.const -0x1.91f58d7ed1237p+236) (f64.const -0x1.f190d808383c8p+55)) (f64.const 0x1.9d9eb0836f906p+180)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.div" (f32.const 0x1.64b2a4p+26) (f32.const 0x1.e95752p-119)) (f32.const inf)) -(assert_return (invoke "f32.div" (f32.const -0x1.53c9b6p+77) (f32.const 0x1.d689ap+27)) (f32.const -0x1.71baa4p+49)) -(assert_return (invoke "f32.div" (f32.const 0x1.664a8ap+38) (f32.const -0x1.59dba2p+96)) (f32.const -0x1.0933f4p-58)) -(assert_return (invoke "f32.div" (f32.const -0x1.99e0fap+111) (f32.const -0x1.c2b5a8p+9)) (f32.const 0x1.d19de6p+101)) -(assert_return (invoke "f32.div" (f32.const -0x1.5a815ap+92) (f32.const -0x1.b5820ap+13)) (f32.const 0x1.9580b8p+78)) -(assert_return (invoke "f64.div" (f64.const -0x1.81fd1e2af7bebp-655) (f64.const 0x1.edefc4eae536cp-691)) (f64.const -0x1.901abdd91b661p+35)) -(assert_return (invoke "f64.div" (f64.const -0x1.47cf932953c43p+782) (f64.const -0x1.bc40496b1f2a1p-553)) (f64.const inf)) -(assert_return (invoke "f64.div" (f64.const -0x1.2bd2e8fbdcad7p-746) (f64.const 0x1.b115674cc476ep-65)) (f64.const -0x1.62752bf19fa81p-682)) -(assert_return (invoke "f64.div" (f64.const -0x1.f923e3fea9efep+317) (f64.const -0x1.8044c74d27a39p-588)) (f64.const 0x1.5086518cc7186p+905)) -(assert_return (invoke "f64.div" (f64.const 0x1.516ed2051d6bbp+181) (f64.const -0x1.c9f455eb9c2eep+214)) (f64.const -0x1.79414d67f2889p-34)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.div" (f64.const -0x1.9c52726aed366p+585) (f64.const -0x1.7d0568c75660fp+195)) (f64.const 0x1.1507ca2a65f23p+390)) -(assert_return (invoke "f64.div" (f64.const -0x1.522672f461667p+546) (f64.const -0x1.36d36572c9f71p+330)) (f64.const 0x1.1681369370619p+216)) -(assert_return (invoke "f64.div" (f64.const 0x1.01051b4e8cd61p+185) (f64.const -0x1.2cbb5ca3d33ebp+965)) (f64.const -0x1.b59471598a2f3p-781)) -(assert_return (invoke "f64.div" (f64.const 0x1.5f93bb80fc2cbp+217) (f64.const 0x1.7e051aae9f0edp+427)) (f64.const 0x1.d732fa926ba4fp-211)) -(assert_return (invoke "f64.div" (f64.const -0x1.e251d762163ccp+825) (f64.const 0x1.3ee63581e1796p+349)) (f64.const -0x1.8330077d90a07p+476)) - -;; Computations that round differently on x87 in double-precision mode. -(assert_return (invoke "f64.div" (f64.const 0x1.dcbf69f10006dp+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.772fda7c4001bp-1022)) -(assert_return (invoke "f64.div" (f64.const 0x1.e14169442fbcap-1011) (f64.const 0x1.505451d62ff7dp+12)) (f64.const 0x0.b727e85f38b39p-1022)) -(assert_return (invoke "f64.div" (f64.const -0x1.d3ebe726ec964p-144) (f64.const -0x1.4a7bfc0b83608p+880)) (f64.const 0x0.5a9d8c50cbf87p-1022)) -(assert_return (invoke "f64.div" (f64.const -0x1.6c3def770aee1p-393) (f64.const -0x1.8b84724347598p+631)) (f64.const 0x0.3af0707fcd0c7p-1022)) -(assert_return (invoke "f64.div" (f64.const 0x1.16abda1bb3cb3p-856) (f64.const 0x1.6c9c7198eb1e6p+166)) (f64.const 0x0.c3a8fd6741649p-1022)) -(assert_return (invoke "f64.div" (f64.const 0x1.7057d6ab553cap-1005) (f64.const -0x1.2abf1e98660ebp+23)) (f64.const -0x0.04ee8d8ec01cdp-1022)) - -;; Computations that round differently when div is mul by reciprocal. -(assert_return (invoke "f32.div" (f32.const 0x1.ada9aap+89) (f32.const 0x1.69884cp+42)) (f32.const 0x1.303e2ep+47)) -(assert_return (invoke "f32.div" (f32.const 0x1.8281c8p+90) (f32.const -0x1.62883cp+106)) (f32.const -0x1.17169cp-16)) -(assert_return (invoke "f32.div" (f32.const 0x1.5c6be2p+81) (f32.const 0x1.d01dfep-1)) (f32.const 0x1.805e32p+81)) -(assert_return (invoke "f32.div" (f32.const -0x1.bbd252p+19) (f32.const -0x1.fba95p+33)) (f32.const 0x1.bf9d56p-15)) -(assert_return (invoke "f32.div" (f32.const -0x1.0f41d6p-42) (f32.const -0x1.3f2dbep+56)) (f32.const 0x1.b320d8p-99)) -(assert_return (invoke "f64.div" (f64.const 0x1.b2348a1c81899p+61) (f64.const -0x1.4a58aad903dd3p-861)) (f64.const -0x1.507c1e2a41b35p+922)) -(assert_return (invoke "f64.div" (f64.const 0x1.23fa5137a918ap-130) (f64.const -0x1.7268db1951263p-521)) (f64.const -0x1.93965e0d896bep+390)) -(assert_return (invoke "f64.div" (f64.const 0x1.dcb3915d82deep+669) (f64.const 0x1.50caaa1dc6b19p+638)) (f64.const 0x1.6a58ec814b09dp+31)) -(assert_return (invoke "f64.div" (f64.const -0x1.046e378c0cc46p+182) (f64.const 0x1.ac925009a922bp+773)) (f64.const -0x1.3720aa94dab18p-592)) -(assert_return (invoke "f64.div" (f64.const -0x1.8945fd69d8e11p-871) (f64.const -0x1.0a37870af809ap-646)) (f64.const 0x1.7a2e286c62382p-225)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.div" (f64.const 0x1.82002af0ea1f3p-57) (f64.const 0x1.d0a9b0c2fa339p+0)) (f64.const 0x1.a952fbd1fc17cp-58)) -(assert_return (invoke "f64.div" (f64.const 0x1.1e12b515db471p-102) (f64.const -0x1.41fc3c94fba5p-42)) (f64.const -0x1.c6e50cccb7cb6p-61)) -(assert_return (invoke "f64.div" (f64.const 0x1.aba5adcd6f583p-41) (f64.const 0x1.17dfac639ce0fp-112)) (f64.const 0x1.872b0a008c326p+71)) -(assert_return (invoke "f64.div" (f64.const 0x1.cf82510d0ae6bp+89) (f64.const 0x1.0207d86498053p+97)) (f64.const 0x1.cbdc804e2cf14p-8)) -(assert_return (invoke "f64.div" (f64.const 0x1.4c82cbb508e21p-11) (f64.const -0x1.6b57208c2d5d5p+52)) (f64.const -0x1.d48e8b369129ap-64)) - -;; Division involving the maximum subnormal value and the minimum normal value. -(assert_return (invoke "f32.div" (f32.const 0x1p-126) (f32.const 0x1.fffffcp-127)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.fffffcp-127) (f32.const 0x1p-126)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.div" (f64.const 0x1p-1022) (f64.const 0x0.fffffffffffffp-1022)) (f64.const 0x1.0000000000001p+0)) -(assert_return (invoke "f64.div" (f64.const 0x0.fffffffffffffp-1022) (f64.const 0x1p-1022)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test the least positive value with a positive quotient with the maximum value. -(assert_return (invoke "f32.div" (f32.const 0x1.fffffep-23) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1p-22) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.div" (f64.const 0x1.fffffffffffffp-52) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.div" (f64.const 0x1p-51) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) - -;; Test the least positive value with a finite reciprocal. -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1p-128)) (f32.const inf)) -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1.000008p-128)) (f32.const 0x1.fffffp+127)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x0.4p-1022)) (f64.const inf)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x0.4000000000001p-1022)) (f64.const 0x1.ffffffffffff8p+1023)) - -;; Test the least positive value that has a subnormal reciprocal. -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1.000002p+126)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1p+126)) (f32.const 0x1p-126)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x1.0000000000001p+1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x1p+1022)) (f64.const 0x1p-1022)) - -;; Test that the last binary digit of 1.0/3.0 is even in f32, -;; https://en.wikipedia.org/wiki/Single-precision_floating-point_format#Single-precision_examples -;; -;; and odd in f64, -;; https://en.wikipedia.org/wiki/Double-precision_floating-point_format#Double-precision_examples -;; -;; and that 1.0/3.0, 3.0/9.0, and 9.0/27.0 all agree. -;; http://www.netlib.org/paranoia -(assert_return (invoke "f32.div" (f32.const 0x1p+0) (f32.const 0x1.8p+1)) (f32.const 0x1.555556p-2)) -(assert_return (invoke "f32.div" (f32.const 0x3p+0) (f32.const 0x1.2p+3)) (f32.const 0x1.555556p-2)) -(assert_return (invoke "f32.div" (f32.const 0x1.2p+3) (f32.const 0x1.bp+4)) (f32.const 0x1.555556p-2)) -(assert_return (invoke "f64.div" (f64.const 0x1p+0) (f64.const 0x1.8p+1)) (f64.const 0x1.5555555555555p-2)) -(assert_return (invoke "f64.div" (f64.const 0x3p+0) (f64.const 0x1.2p+3)) (f64.const 0x1.5555555555555p-2)) -(assert_return (invoke "f64.div" (f64.const 0x1.2p+3) (f64.const 0x1.bp+4)) (f64.const 0x1.5555555555555p-2)) - -;; Test division of numbers very close to 1. -(assert_return (invoke "f32.div" (f32.const 0x1.000002p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.fffffep-1) (f32.const 0x1.000002p+0)) (f32.const 0x1.fffffap-1)) -(assert_return (invoke "f32.div" (f32.const 0x1.0p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.0p+0) (f32.const 0x1.000002p+0)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.div" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.0000000000002p+0)) -(assert_return (invoke "f64.div" (f64.const 0x1.fffffffffffffp-1) (f64.const 0x1.0000000000001p+0)) (f64.const 0x1.ffffffffffffdp-1)) -(assert_return (invoke "f64.div" (f64.const 0x1.0p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.0000000000001p+0)) -(assert_return (invoke "f64.div" (f64.const 0x1.0p+0) (f64.const 0x1.0000000000001p+0)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test for bugs found in an early RISC-V implementation. -;; https://github.com/riscv/riscv-tests/pull/8 -(assert_return (invoke "f32.sqrt" (f32.const 0x1.56p+7)) (f32.const 0x1.a2744cp+3)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.594dfcp-23)) (f32.const 0x1.a4789cp-12)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.56p+7)) (f64.const 0x1.a2744ce9674f5p+3)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.594dfc70aa105p-23)) (f64.const 0x1.a4789c0e37f99p-12)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.sqrt" (f64.const 0x1.0263fcc94f259p-164)) (f64.const 0x1.0131485de579fp-82)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.352dfa278c43dp+338)) (f64.const 0x1.195607dac5417p+169)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.b15daa23924fap+402)) (f64.const 0x1.4d143db561493p+201)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.518c8e68cb753p-37)) (f64.const 0x1.9fb8ef1ad5bfdp-19)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.86d8b6518078ep-370)) (f64.const 0x1.3c5142a48fcadp-185)) - -;; Test another sqrt case on x87. -;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52593 -(assert_return (invoke "f64.sqrt" (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.fffffffffffffp-1)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.098064p-3)) (f32.const 0x1.70b23p-2)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.d9befp+100)) (f32.const 0x1.5c4052p+50)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.42b5b6p-4)) (f32.const 0x1.1f6d0ep-2)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.3684dp-71)) (f32.const 0x1.8ebae2p-36)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.d8bc4ep-11)) (f32.const 0x1.ebf9eap-6)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.5c39f220d5704p-924)) (f64.const 0x1.2a92bc24ceae9p-462)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.53521a635745cp+727)) (f64.const 0x1.a0cfdc4ef8ff1p+363)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.dfd5bbc9f4678p+385)) (f64.const 0x1.efa817117c94cp+192)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.33f9640811cd4p+105)) (f64.const 0x1.8d17c9243baa3p+52)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.6c0ef0267ff45p+999)) (f64.const 0x1.afbcfae3f2b4p+499)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.26a62ep+27)) (f32.const 0x1.84685p+13)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.166002p-113)) (f32.const 0x1.798762p-57)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.3dfb5p-15)) (f32.const 0x1.937e38p-8)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.30eb2cp-120)) (f32.const 0x1.176406p-60)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.cb705cp-123)) (f32.const 0x1.e5020ap-62)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.edae8aea0543p+695)) (f64.const 0x1.f6c1ea4fc8dd2p+347)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.f7ee4bda5c9c3p-763)) (f64.const 0x1.fbf30bdaf11c5p-382)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.a48f348266ad1p-30)) (f64.const 0x1.481ee7540baf7p-15)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.feb5a1ce3ed9cp-242)) (f64.const 0x1.6995060c20d46p-121)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.957d9796e3834p+930)) (f64.const 0x1.42305213157bap+465)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.65787cp+118)) (f32.const 0x1.2e82a4p+59)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.736044p+15)) (f32.const 0x1.b40e4p+7)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.a00edp-1)) (f32.const 0x1.cd8aecp-1)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.7a4c8p-87)) (f32.const 0x1.b819e4p-44)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.5d24d4p-94)) (f32.const 0x1.2af75ep-47)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.a008948ead274p+738)) (f64.const 0x1.4659b37c39b19p+369)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.70f6199ed21f5p-381)) (f64.const 0x1.b2a2bddf3300dp-191)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.35c1d49f2a352p+965)) (f64.const 0x1.8e3d9f01a9716p+482)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.3fbdcfb2b2a15p-45)) (f64.const 0x1.949ba4feca42ap-23)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.c201b94757145p-492)) (f64.const 0x1.5369ee6bf2967p-246)) - -;; Computations that round differently when computed via f32. -(assert_return_canonical_nan (invoke "f64.sqrt" (f64.const -0x1.360e8d0032adp-963))) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.d9a6f5eef0503p+103)) (f64.const 0x1.ec73f56c166f6p+51)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.aa051a5c4ec27p-760)) (f64.const 0x1.4a3e771ff5149p-380)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.e5522a741babep-276)) (f64.const 0x1.607ae2b6feb7dp-138)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.4832badc0c061p+567)) (f64.const 0x1.99ec7934139b2p+283)) - -;; Test the least value with a sqrt that rounds to one. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.000002p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.000004p+0)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000001p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000002p+0)) (f64.const 0x1.0000000000001p+0)) - -;; Test the greatest value less than one for which sqrt is not an identity. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.fffffcp-1)) (f32.const 0x1.fffffep-1)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.fffffap-1)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffep-1)) (f64.const 0x1.fffffffffffffp-1)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffdp-1)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test that the bitwise floating point operators are bitwise on NaN. - -(assert_return (invoke "f32.abs" (f32.const nan:0x0f1e2)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f32.abs" (f32.const -nan:0x0f1e2)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f64.abs" (f64.const nan:0x0f1e27a6b)) (f64.const nan:0x0f1e27a6b)) -(assert_return (invoke "f64.abs" (f64.const -nan:0x0f1e27a6b)) (f64.const nan:0x0f1e27a6b)) - -(assert_return (invoke "f32.neg" (f32.const nan:0x0f1e2)) (f32.const -nan:0x0f1e2)) -(assert_return (invoke "f32.neg" (f32.const -nan:0x0f1e2)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f64.neg" (f64.const nan:0x0f1e27a6b)) (f64.const -nan:0x0f1e27a6b)) -(assert_return (invoke "f64.neg" (f64.const -nan:0x0f1e27a6b)) (f64.const nan:0x0f1e27a6b)) - -(assert_return (invoke "f32.copysign" (f32.const nan:0x0f1e2) (f32.const nan)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f32.copysign" (f32.const nan:0x0f1e2) (f32.const -nan)) (f32.const -nan:0x0f1e2)) -(assert_return (invoke "f32.copysign" (f32.const -nan:0x0f1e2) (f32.const nan)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f32.copysign" (f32.const -nan:0x0f1e2) (f32.const -nan)) (f32.const -nan:0x0f1e2)) -(assert_return (invoke "f64.copysign" (f64.const nan:0x0f1e27a6b) (f64.const nan)) (f64.const nan:0x0f1e27a6b)) -(assert_return (invoke "f64.copysign" (f64.const nan:0x0f1e27a6b) (f64.const -nan)) (f64.const -nan:0x0f1e27a6b)) -(assert_return (invoke "f64.copysign" (f64.const -nan:0x0f1e27a6b) (f64.const nan)) (f64.const nan:0x0f1e27a6b)) -(assert_return (invoke "f64.copysign" (f64.const -nan:0x0f1e27a6b) (f64.const -nan)) (f64.const -nan:0x0f1e27a6b)) - -;; Test values close to 1.0. -(assert_return (invoke "f32.ceil" (f32.const 0x1.fffffep-1)) (f32.const 1.0)) -(assert_return (invoke "f32.ceil" (f32.const 0x1.000002p+0)) (f32.const 2.0)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.fffffffffffffp-1)) (f64.const 1.0)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.0000000000001p+0)) (f64.const 2.0)) - -;; Test the maximum and minimum value for which ceil is not an identity operator. -(assert_return (invoke "f32.ceil" (f32.const 0x1.fffffep+22)) (f32.const 0x1p+23)) -(assert_return (invoke "f32.ceil" (f32.const -0x1.fffffep+22)) (f32.const -0x1.fffffcp+22)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1p+52)) -(assert_return (invoke "f64.ceil" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1.ffffffffffffep+51)) - -;; Test that implementations don't do the x+0x1p52-0x1p52 trick outside the -;; range where it's safe. -(assert_return (invoke "f32.ceil" (f32.const 0x1.fffffep+23)) (f32.const 0x1.fffffep+23)) -(assert_return (invoke "f32.ceil" (f32.const -0x1.fffffep+23)) (f32.const -0x1.fffffep+23)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.fffffffffffffp+52)) (f64.const 0x1.fffffffffffffp+52)) -(assert_return (invoke "f64.ceil" (f64.const -0x1.fffffffffffffp+52)) (f64.const -0x1.fffffffffffffp+52)) - -;; Test values close to -1.0. -(assert_return (invoke "f32.floor" (f32.const -0x1.fffffep-1)) (f32.const -1.0)) -(assert_return (invoke "f32.floor" (f32.const -0x1.000002p+0)) (f32.const -2.0)) -(assert_return (invoke "f64.floor" (f64.const -0x1.fffffffffffffp-1)) (f64.const -1.0)) -(assert_return (invoke "f64.floor" (f64.const -0x1.0000000000001p+0)) (f64.const -2.0)) - -;; Test the maximum and minimum value for which floor is not an identity operator. -(assert_return (invoke "f32.floor" (f32.const -0x1.fffffep+22)) (f32.const -0x1p+23)) -(assert_return (invoke "f32.floor" (f32.const 0x1.fffffep+22)) (f32.const 0x1.fffffcp+22)) -(assert_return (invoke "f64.floor" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1p+52)) -(assert_return (invoke "f64.floor" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1.ffffffffffffep+51)) - -;; Test that floor isn't implemented as XMVectorFloor. -;; http://dss.stephanierct.com/DevBlog/?p=8#comment-4 -(assert_return (invoke "f32.floor" (f32.const 88607.0)) (f32.const 88607.0)) -(assert_return (invoke "f64.floor" (f64.const 88607.0)) (f64.const 88607.0)) - -;; Test the maximum and minimum value for which trunc is not an identity operator. -(assert_return (invoke "f32.trunc" (f32.const -0x1.fffffep+22)) (f32.const -0x1.fffffcp+22)) -(assert_return (invoke "f32.trunc" (f32.const 0x1.fffffep+22)) (f32.const 0x1.fffffcp+22)) -(assert_return (invoke "f64.trunc" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1.ffffffffffffep+51)) -(assert_return (invoke "f64.trunc" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1.ffffffffffffep+51)) - -;; Test that nearest isn't implemented naively. -;; http://blog.frama-c.com/index.php?post/2013/05/02/nearbyintf1 -;; http://blog.frama-c.com/index.php?post/2013/05/04/nearbyintf3 -(assert_return (invoke "f32.nearest" (f32.const 0x1.000002p+23)) (f32.const 0x1.000002p+23)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.000004p+23)) (f32.const 0x1.000004p+23)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.fffffep-2)) (f32.const 0.0)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.fffffep+47)) (f32.const 0x1.fffffep+47)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.0000000000001p+52)) (f64.const 0x1.0000000000001p+52)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.0000000000002p+52)) (f64.const 0x1.0000000000002p+52)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.fffffffffffffp-2)) (f64.const 0.0)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.fffffffffffffp+105)) (f64.const 0x1.fffffffffffffp+105)) - -;; Nearest should not round halfway cases away from zero (as C's round(3) does) -;; or up (as JS's Math.round does). -(assert_return (invoke "f32.nearest" (f32.const 4.5)) (f32.const 4.0)) -(assert_return (invoke "f32.nearest" (f32.const -4.5)) (f32.const -4.0)) -(assert_return (invoke "f32.nearest" (f32.const -3.5)) (f32.const -4.0)) -(assert_return (invoke "f64.nearest" (f64.const 4.5)) (f64.const 4.0)) -(assert_return (invoke "f64.nearest" (f64.const -4.5)) (f64.const -4.0)) -(assert_return (invoke "f64.nearest" (f64.const -3.5)) (f64.const -4.0)) - -;; Test the maximum and minimum value for which nearest is not an identity operator. -(assert_return (invoke "f32.nearest" (f32.const -0x1.fffffep+22)) (f32.const -0x1p+23)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.fffffep+22)) (f32.const 0x1p+23)) -(assert_return (invoke "f64.nearest" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1p+52)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1p+52)) diff --git a/tests/samples/forward.wast b/tests/samples/forward.wast deleted file mode 100644 index 7074ed7..0000000 --- a/tests/samples/forward.wast +++ /dev/null @@ -1,20 +0,0 @@ -(module - (func $even (export "even") (param $n i32) (result i32) - (if (result i32) (i32.eq (get_local $n) (i32.const 0)) - (then (i32.const 1)) - (else (call $odd (i32.sub (get_local $n) (i32.const 1)))) - ) - ) - - (func $odd (export "odd") (param $n i32) (result i32) - (if (result i32) (i32.eq (get_local $n) (i32.const 0)) - (then (i32.const 0)) - (else (call $even (i32.sub (get_local $n) (i32.const 1)))) - ) - ) -) - -(assert_return (invoke "even" (i32.const 13)) (i32.const 0)) -(assert_return (invoke "even" (i32.const 20)) (i32.const 1)) -(assert_return (invoke "odd" (i32.const 13)) (i32.const 1)) -(assert_return (invoke "odd" (i32.const 20)) (i32.const 0)) diff --git a/tests/samples/func.wast b/tests/samples/func.wast deleted file mode 100644 index 768a924..0000000 --- a/tests/samples/func.wast +++ /dev/null @@ -1,661 +0,0 @@ -;; Test `func` declarations, i.e. functions - -(module - ;; Auxiliary definition - (type $sig (func)) - (func $dummy) - - ;; Syntax - - (func) - (func (export "f")) - (func $f) - (func $h (export "g")) - - (func (local)) - (func (local) (local)) - (func (local i32)) - (func (local $x i32)) - (func (local i32 f64 i64)) - (func (local i32) (local f64)) - (func (local i32 f32) (local $x i64) (local) (local i32 f64)) - - (func (param)) - (func (param) (param)) - (func (param i32)) - (func (param $x i32)) - (func (param i32 f64 i64)) - (func (param i32) (param f64)) - (func (param i32 f32) (param $x i64) (param) (param i32 f64)) - - (func (result i32) (unreachable)) - - (type $sig-1 (func)) - (type $sig-2 (func (result i32))) - (type $sig-3 (func (param $x i32))) - (type $sig-4 (func (param i32 f64 i32) (result i32))) - - (func (export "type-use-1") (type $sig-1)) - (func (export "type-use-2") (type $sig-2) (i32.const 0)) - (func (export "type-use-3") (type $sig-3)) - (func (export "type-use-4") (type $sig-4) (i32.const 0)) - (func (export "type-use-5") (type $sig-2) (result i32) (i32.const 0)) - (func (export "type-use-6") (type $sig-3) (param i32)) - (func (export "type-use-7") - (type $sig-4) (param i32) (param f64 i32) (result i32) (i32.const 0) - ) - - (func (type $sig)) - (func (type $forward)) ;; forward reference - - (func $complex - (param i32 f32) (param $x i64) (param) (param i32) - (result) (result i32) (result) - (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) - (unreachable) (unreachable) - ) - (func $complex-sig - (type $sig) - (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) - (unreachable) (unreachable) - ) - - (type $forward (func)) - - ;; Typing of locals - - (func (export "local-first-i32") (result i32) (local i32 i32) (get_local 0)) - (func (export "local-first-i64") (result i64) (local i64 i64) (get_local 0)) - (func (export "local-first-f32") (result f32) (local f32 f32) (get_local 0)) - (func (export "local-first-f64") (result f64) (local f64 f64) (get_local 0)) - (func (export "local-second-i32") (result i32) (local i32 i32) (get_local 1)) - (func (export "local-second-i64") (result i64) (local i64 i64) (get_local 1)) - (func (export "local-second-f32") (result f32) (local f32 f32) (get_local 1)) - (func (export "local-second-f64") (result f64) (local f64 f64) (get_local 1)) - (func (export "local-mixed") (result f64) - (local f32) (local $x i32) (local i64 i32) (local) (local f64 i32) - (drop (f32.neg (get_local 0))) - (drop (i32.eqz (get_local 1))) - (drop (i64.eqz (get_local 2))) - (drop (i32.eqz (get_local 3))) - (drop (f64.neg (get_local 4))) - (drop (i32.eqz (get_local 5))) - (get_local 4) - ) - - ;; Typing of parameters - - (func (export "param-first-i32") (param i32 i32) (result i32) (get_local 0)) - (func (export "param-first-i64") (param i64 i64) (result i64) (get_local 0)) - (func (export "param-first-f32") (param f32 f32) (result f32) (get_local 0)) - (func (export "param-first-f64") (param f64 f64) (result f64) (get_local 0)) - (func (export "param-second-i32") (param i32 i32) (result i32) (get_local 1)) - (func (export "param-second-i64") (param i64 i64) (result i64) (get_local 1)) - (func (export "param-second-f32") (param f32 f32) (result f32) (get_local 1)) - (func (export "param-second-f64") (param f64 f64) (result f64) (get_local 1)) - (func (export "param-mixed") (param f32 i32) (param) (param $x i64) (param i32 f64 i32) - (result f64) - (drop (f32.neg (get_local 0))) - (drop (i32.eqz (get_local 1))) - (drop (i64.eqz (get_local 2))) - (drop (i32.eqz (get_local 3))) - (drop (f64.neg (get_local 4))) - (drop (i32.eqz (get_local 5))) - (get_local 4) - ) - - ;; Typing of result - - (func (export "empty")) - (func (export "value-void") (call $dummy)) - (func (export "value-i32") (result i32) (i32.const 77)) - (func (export "value-i64") (result i64) (i64.const 7777)) - (func (export "value-f32") (result f32) (f32.const 77.7)) - (func (export "value-f64") (result f64) (f64.const 77.77)) - (func (export "value-block-void") (block (call $dummy) (call $dummy))) - (func (export "value-block-i32") (result i32) - (block (result i32) (call $dummy) (i32.const 77)) - ) - - (func (export "return-empty") (return)) - (func (export "return-i32") (result i32) (return (i32.const 78))) - (func (export "return-i64") (result i64) (return (i64.const 7878))) - (func (export "return-f32") (result f32) (return (f32.const 78.7))) - (func (export "return-f64") (result f64) (return (f64.const 78.78))) - (func (export "return-block-i32") (result i32) - (return (block (result i32) (call $dummy) (i32.const 77))) - ) - - (func (export "break-empty") (br 0)) - (func (export "break-i32") (result i32) (br 0 (i32.const 79))) - (func (export "break-i64") (result i64) (br 0 (i64.const 7979))) - (func (export "break-f32") (result f32) (br 0 (f32.const 79.9))) - (func (export "break-f64") (result f64) (br 0 (f64.const 79.79))) - (func (export "break-block-i32") (result i32) - (br 0 (block (result i32) (call $dummy) (i32.const 77))) - ) - - (func (export "break-br_if-empty") (param i32) - (br_if 0 (get_local 0)) - ) - (func (export "break-br_if-num") (param i32) (result i32) - (drop (br_if 0 (i32.const 50) (get_local 0))) (i32.const 51) - ) - - (func (export "break-br_table-empty") (param i32) - (br_table 0 0 0 (get_local 0)) - ) - (func (export "break-br_table-num") (param i32) (result i32) - (br_table 0 0 (i32.const 50) (get_local 0)) (i32.const 51) - ) - (func (export "break-br_table-nested-empty") (param i32) - (block (br_table 0 1 0 (get_local 0))) - ) - (func (export "break-br_table-nested-num") (param i32) (result i32) - (i32.add - (block (result i32) - (br_table 0 1 0 (i32.const 50) (get_local 0)) (i32.const 51) - ) - (i32.const 2) - ) - ) - - ;; Default initialization of locals - - (func (export "init-local-i32") (result i32) (local i32) (get_local 0)) - (func (export "init-local-i64") (result i64) (local i64) (get_local 0)) - (func (export "init-local-f32") (result f32) (local f32) (get_local 0)) - (func (export "init-local-f64") (result f64) (local f64) (get_local 0)) -) - -(assert_return (invoke "type-use-1")) -(assert_return (invoke "type-use-2") (i32.const 0)) -(assert_return (invoke "type-use-3" (i32.const 1))) -(assert_return - (invoke "type-use-4" (i32.const 1) (f64.const 1) (i32.const 1)) - (i32.const 0) -) -(assert_return (invoke "type-use-5") (i32.const 0)) -(assert_return (invoke "type-use-6" (i32.const 1))) -(assert_return - (invoke "type-use-7" (i32.const 1) (f64.const 1) (i32.const 1)) - (i32.const 0) -) - -(assert_return (invoke "local-first-i32") (i32.const 0)) -(assert_return (invoke "local-first-i64") (i64.const 0)) -(assert_return (invoke "local-first-f32") (f32.const 0)) -(assert_return (invoke "local-first-f64") (f64.const 0)) -(assert_return (invoke "local-second-i32") (i32.const 0)) -(assert_return (invoke "local-second-i64") (i64.const 0)) -(assert_return (invoke "local-second-f32") (f32.const 0)) -(assert_return (invoke "local-second-f64") (f64.const 0)) -(assert_return (invoke "local-mixed") (f64.const 0)) - -(assert_return - (invoke "param-first-i32" (i32.const 2) (i32.const 3)) (i32.const 2) -) -(assert_return - (invoke "param-first-i64" (i64.const 2) (i64.const 3)) (i64.const 2) -) -(assert_return - (invoke "param-first-f32" (f32.const 2) (f32.const 3)) (f32.const 2) -) -(assert_return - (invoke "param-first-f64" (f64.const 2) (f64.const 3)) (f64.const 2) -) -(assert_return - (invoke "param-second-i32" (i32.const 2) (i32.const 3)) (i32.const 3) -) -(assert_return - (invoke "param-second-i64" (i64.const 2) (i64.const 3)) (i64.const 3) -) -(assert_return - (invoke "param-second-f32" (f32.const 2) (f32.const 3)) (f32.const 3) -) -(assert_return - (invoke "param-second-f64" (f64.const 2) (f64.const 3)) (f64.const 3) -) - -(assert_return - (invoke "param-mixed" - (f32.const 1) (i32.const 2) (i64.const 3) - (i32.const 4) (f64.const 5.5) (i32.const 6) - ) - (f64.const 5.5) -) - -(assert_return (invoke "empty")) -(assert_return (invoke "value-void")) -(assert_return (invoke "value-i32") (i32.const 77)) -(assert_return (invoke "value-i64") (i64.const 7777)) -(assert_return (invoke "value-f32") (f32.const 77.7)) -(assert_return (invoke "value-f64") (f64.const 77.77)) -(assert_return (invoke "value-block-void")) -(assert_return (invoke "value-block-i32") (i32.const 77)) - -(assert_return (invoke "return-empty")) -(assert_return (invoke "return-i32") (i32.const 78)) -(assert_return (invoke "return-i64") (i64.const 7878)) -(assert_return (invoke "return-f32") (f32.const 78.7)) -(assert_return (invoke "return-f64") (f64.const 78.78)) -(assert_return (invoke "return-block-i32") (i32.const 77)) - -(assert_return (invoke "break-empty")) -(assert_return (invoke "break-i32") (i32.const 79)) -(assert_return (invoke "break-i64") (i64.const 7979)) -(assert_return (invoke "break-f32") (f32.const 79.9)) -(assert_return (invoke "break-f64") (f64.const 79.79)) -(assert_return (invoke "break-block-i32") (i32.const 77)) - -(assert_return (invoke "break-br_if-empty" (i32.const 0))) -(assert_return (invoke "break-br_if-empty" (i32.const 2))) -(assert_return (invoke "break-br_if-num" (i32.const 0)) (i32.const 51)) -(assert_return (invoke "break-br_if-num" (i32.const 1)) (i32.const 50)) - -(assert_return (invoke "break-br_table-empty" (i32.const 0))) -(assert_return (invoke "break-br_table-empty" (i32.const 1))) -(assert_return (invoke "break-br_table-empty" (i32.const 5))) -(assert_return (invoke "break-br_table-empty" (i32.const -1))) -(assert_return (invoke "break-br_table-num" (i32.const 0)) (i32.const 50)) -(assert_return (invoke "break-br_table-num" (i32.const 1)) (i32.const 50)) -(assert_return (invoke "break-br_table-num" (i32.const 10)) (i32.const 50)) -(assert_return (invoke "break-br_table-num" (i32.const -100)) (i32.const 50)) -(assert_return (invoke "break-br_table-nested-empty" (i32.const 0))) -(assert_return (invoke "break-br_table-nested-empty" (i32.const 1))) -(assert_return (invoke "break-br_table-nested-empty" (i32.const 3))) -(assert_return (invoke "break-br_table-nested-empty" (i32.const -2))) -(assert_return - (invoke "break-br_table-nested-num" (i32.const 0)) (i32.const 52) -) -(assert_return - (invoke "break-br_table-nested-num" (i32.const 1)) (i32.const 50) -) -(assert_return - (invoke "break-br_table-nested-num" (i32.const 2)) (i32.const 52) -) -(assert_return - (invoke "break-br_table-nested-num" (i32.const -3)) (i32.const 52) -) - -(assert_return (invoke "init-local-i32") (i32.const 0)) -(assert_return (invoke "init-local-i64") (i64.const 0)) -(assert_return (invoke "init-local-f32") (f32.const 0)) -(assert_return (invoke "init-local-f64") (f64.const 0)) - - -;; Expansion of inline function types - -(module - (func $f (result f64) (f64.const 0)) ;; adds implicit type definition - (func $g (param i32)) ;; reuses explicit type definition - (type $t (func (param i32))) - - (func $i32->void (type 0)) ;; (param i32) - (func $void->f64 (type 1) (f64.const 0)) ;; (result f64) - (func $check - (call $i32->void (i32.const 0)) - (drop (call $void->f64)) - ) -) - -(assert_invalid - (module - (func $f (result f64) (f64.const 0)) ;; adds implicit type definition - (func $g (param i32)) ;; reuses explicit type definition - (func $h (result f64) (f64.const 1)) ;; reuses implicit type definition - (type $t (func (param i32))) - - (func (type 2)) ;; does not exist - ) - "unknown type" -) - - -(module - (type $sig (func)) - - (func $empty-sig-1) ;; should be assigned type $sig - (func $complex-sig-1 (param f64 i64 f64 i64 f64 i64 f32 i32)) - (func $empty-sig-2) ;; should be assigned type $sig - (func $complex-sig-2 (param f64 i64 f64 i64 f64 i64 f32 i32)) - (func $complex-sig-3 (param f64 i64 f64 i64 f64 i64 f32 i32)) - (func $complex-sig-4 (param i64 i64 f64 i64 f64 i64 f32 i32)) - (func $complex-sig-5 (param i64 i64 f64 i64 f64 i64 f32 i32)) - - (type $empty-sig-duplicate (func)) - (type $complex-sig-duplicate (func (param i64 i64 f64 i64 f64 i64 f32 i32))) - (table anyfunc - (elem - $complex-sig-3 $empty-sig-2 $complex-sig-1 $complex-sig-3 $empty-sig-1 - $complex-sig-4 $complex-sig-5 - ) - ) - - (func (export "signature-explicit-reused") - (call_indirect (type $sig) (i32.const 1)) - (call_indirect (type $sig) (i32.const 4)) - ) - - (func (export "signature-implicit-reused") - ;; The implicit index 3 in this test depends on the function and - ;; type definitions, and may need adapting if they change. - (call_indirect (type 3) - (f64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 0) - ) - (call_indirect (type 3) - (f64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 2) - ) - (call_indirect (type 3) - (f64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 3) - ) - ) - - (func (export "signature-explicit-duplicate") - (call_indirect (type $empty-sig-duplicate) (i32.const 1)) - ) - - (func (export "signature-implicit-duplicate") - (call_indirect (type $complex-sig-duplicate) - (i64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 5) - ) - (call_indirect (type $complex-sig-duplicate) - (i64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 6) - ) - ) -) - -(assert_return (invoke "signature-explicit-reused")) -(assert_return (invoke "signature-implicit-reused")) -(assert_return (invoke "signature-explicit-duplicate")) -(assert_return (invoke "signature-implicit-duplicate")) - - -;; Malformed type use - -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (type $sig) (result i32) (param i32) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (param i32) (type $sig) (result i32) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (param i32) (result i32) (type $sig) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (result i32) (type $sig) (param i32) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (result i32) (param i32) (type $sig) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(func (result i32) (param i32) (i32.const 0))" - ) - "unexpected token" -) - -(assert_malformed - (module quote - "(type $sig (func))" - "(func (type $sig) (result i32) (i32.const 0))" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (type $sig) (result i32) (i32.const 0))" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (type $sig) (param i32) (i32.const 0))" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32 i32) (result i32)))" - "(func (type $sig) (param i32) (result i32) (unreachable))" - ) - "inline function type" -) - - -;; Invalid typing of locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid typing of parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid typing of result - -(assert_invalid - (module (func $type-multiple-result (result i32 i32) (unreachable))) - "invalid result arity" -) -(assert_invalid - (module - (type (func (result i32 i32))) - (func $type-multiple-result (type 0) (unreachable)) - ) - "invalid result arity" -) - - -(assert_invalid - (module (func $type-empty-i32 (result i32))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64))) - "type mismatch" -) - -(assert_invalid - (module (func $type-value-void-vs-num (result i32) - (nop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-void - (i32.const 0) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-num (result i32) - (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-last-empty-vs-num (result i32) - (return) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-last-void-vs-num (result i32) - (return (nop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-last-num-vs-num (result i32) - (return (i64.const 0)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-empty-vs-num (result i32) - (return) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-void-vs-num (result i32) - (return (nop)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-num-vs-num (result i32) - (return (i64.const 1)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-first-num-vs-num (result i32) - (return (i64.const 1)) (return (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-last-void-vs-num (result i32) - (br 0) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-last-num-vs-num (result i32) - (br 0 (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-void-vs-num (result i32) - (br 0) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-num-vs-num (result i32) - (br 0 (i64.const 1)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-first-num-vs-num (result i32) - (br 0 (i64.const 1)) (br 0 (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-nested-empty-vs-num (result i32) - (block (br 1)) (br 0 (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-void-vs-num (result i32) - (block (br 1 (nop))) (br 0 (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-num-vs-num (result i32) - (block (br 1 (i64.const 1))) (br 0 (i32.const 1)) - )) - "type mismatch" -) - - -;; Syntax errors - -(assert_malformed - (module quote "(func (nop) (local i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (nop) (param i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (nop) (result i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (local i32) (param i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (local i32) (result i32) (get_local 0))") - "unexpected token" -) -(assert_malformed - (module quote "(func (result i32) (param i32) (get_local 0))") - "unexpected token" -) diff --git a/tests/samples/func_ptrs.wast b/tests/samples/func_ptrs.wast deleted file mode 100644 index 2b74869..0000000 --- a/tests/samples/func_ptrs.wast +++ /dev/null @@ -1,106 +0,0 @@ -(module - (type (func)) ;; 0: void -> void - (type $S (func)) ;; 1: void -> void - (type (func (param))) ;; 2: void -> void - (type (func (result i32))) ;; 3: void -> i32 - (type (func (param) (result i32))) ;; 4: void -> i32 - (type $T (func (param i32) (result i32))) ;; 5: i32 -> i32 - (type $U (func (param i32))) ;; 6: i32 -> void - - (func $print (import "spectest" "print_i32") (type 6)) - - (func (type 0)) - (func (type $S)) - - (func (export "one") (type 4) (i32.const 13)) - (func (export "two") (type $T) (i32.add (get_local 0) (i32.const 1))) - - ;; Both signature and parameters are allowed (and required to match) - ;; since this allows the naming of parameters. - (func (export "three") (type $T) (param $a i32) (result i32) - (i32.sub (get_local 0) (i32.const 2)) - ) - - (func (export "four") (type $U) (call $print (get_local 0))) -) - -(assert_return (invoke "one") (i32.const 13)) -(assert_return (invoke "two" (i32.const 13)) (i32.const 14)) -(assert_return (invoke "three" (i32.const 13)) (i32.const 11)) -(invoke "four" (i32.const 83)) - -(assert_invalid (module (elem (i32.const 0))) "unknown table") -(assert_invalid (module (elem (i32.const 0) 0) (func)) "unknown table") - -(assert_invalid - (module (table 1 anyfunc) (elem (i64.const 0))) - "type mismatch" -) -(assert_invalid - (module (table 1 anyfunc) (elem (i32.ctz (i32.const 0)))) - "constant expression required" -) -(assert_invalid - (module (table 1 anyfunc) (elem (nop))) - "constant expression required" -) - -(assert_invalid (module (func (type 42))) "unknown type") -(assert_invalid (module (import "spectest" "print_i32" (func (type 43)))) "unknown type") - -(module - (type $T (func (param) (result i32))) - (type $U (func (param) (result i32))) - (table anyfunc (elem $t1 $t2 $t3 $u1 $u2 $t1 $t3)) - - (func $t1 (type $T) (i32.const 1)) - (func $t2 (type $T) (i32.const 2)) - (func $t3 (type $T) (i32.const 3)) - (func $u1 (type $U) (i32.const 4)) - (func $u2 (type $U) (i32.const 5)) - - (func (export "callt") (param $i i32) (result i32) - (call_indirect (type $T) (get_local $i)) - ) - - (func (export "callu") (param $i i32) (result i32) - (call_indirect (type $U) (get_local $i)) - ) -) - -(assert_return (invoke "callt" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "callt" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "callt" (i32.const 2)) (i32.const 3)) -(assert_return (invoke "callt" (i32.const 3)) (i32.const 4)) -(assert_return (invoke "callt" (i32.const 4)) (i32.const 5)) -(assert_return (invoke "callt" (i32.const 5)) (i32.const 1)) -(assert_return (invoke "callt" (i32.const 6)) (i32.const 3)) -(assert_trap (invoke "callt" (i32.const 7)) "undefined element") -(assert_trap (invoke "callt" (i32.const 100)) "undefined element") -(assert_trap (invoke "callt" (i32.const -1)) "undefined element") - -(assert_return (invoke "callu" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "callu" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "callu" (i32.const 2)) (i32.const 3)) -(assert_return (invoke "callu" (i32.const 3)) (i32.const 4)) -(assert_return (invoke "callu" (i32.const 4)) (i32.const 5)) -(assert_return (invoke "callu" (i32.const 5)) (i32.const 1)) -(assert_return (invoke "callu" (i32.const 6)) (i32.const 3)) -(assert_trap (invoke "callu" (i32.const 7)) "undefined element") -(assert_trap (invoke "callu" (i32.const 100)) "undefined element") -(assert_trap (invoke "callu" (i32.const -1)) "undefined element") - -(module - (type $T (func (result i32))) - (table anyfunc (elem 0 1)) - - (func $t1 (type $T) (i32.const 1)) - (func $t2 (type $T) (i32.const 2)) - - (func (export "callt") (param $i i32) (result i32) - (call_indirect (type $T) (get_local $i)) - ) -) - -(assert_return (invoke "callt" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "callt" (i32.const 1)) (i32.const 2)) diff --git a/tests/samples/get_local.wast b/tests/samples/get_local.wast deleted file mode 100644 index e1f9625..0000000 --- a/tests/samples/get_local.wast +++ /dev/null @@ -1,148 +0,0 @@ -;; Test `get_local` operator - -(module - ;; Typing - - (func (export "type-local-i32") (result i32) (local i32) (get_local 0)) - (func (export "type-local-i64") (result i64) (local i64) (get_local 0)) - (func (export "type-local-f32") (result f32) (local f32) (get_local 0)) - (func (export "type-local-f64") (result f64) (local f64) (get_local 0)) - - (func (export "type-param-i32") (param i32) (result i32) (get_local 0)) - (func (export "type-param-i64") (param i64) (result i64) (get_local 0)) - (func (export "type-param-f32") (param f32) (result f32) (get_local 0)) - (func (export "type-param-f64") (param f64) (result f64) (get_local 0)) - - (func (export "type-mixed") (param i64 f32 f64 i32 i32) - (local f32 i64 i64 f64) - (drop (i64.eqz (get_local 0))) - (drop (f32.neg (get_local 1))) - (drop (f64.neg (get_local 2))) - (drop (i32.eqz (get_local 3))) - (drop (i32.eqz (get_local 4))) - (drop (f32.neg (get_local 5))) - (drop (i64.eqz (get_local 6))) - (drop (i64.eqz (get_local 7))) - (drop (f64.neg (get_local 8))) - ) - - ;; Reading - - (func (export "read") (param i64 f32 f64 i32 i32) (result f64) - (local f32 i64 i64 f64) - (set_local 5 (f32.const 5.5)) - (set_local 6 (i64.const 6)) - (set_local 8 (f64.const 8)) - (f64.add - (f64.convert_u/i64 (get_local 0)) - (f64.add - (f64.promote/f32 (get_local 1)) - (f64.add - (get_local 2) - (f64.add - (f64.convert_u/i32 (get_local 3)) - (f64.add - (f64.convert_s/i32 (get_local 4)) - (f64.add - (f64.promote/f32 (get_local 5)) - (f64.add - (f64.convert_u/i64 (get_local 6)) - (f64.add - (f64.convert_u/i64 (get_local 7)) - (get_local 8) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) - -(assert_return (invoke "type-local-i32") (i32.const 0)) -(assert_return (invoke "type-local-i64") (i64.const 0)) -(assert_return (invoke "type-local-f32") (f32.const 0)) -(assert_return (invoke "type-local-f64") (f64.const 0)) - -(assert_return (invoke "type-param-i32" (i32.const 2)) (i32.const 2)) -(assert_return (invoke "type-param-i64" (i64.const 3)) (i64.const 3)) -(assert_return (invoke "type-param-f32" (f32.const 4.4)) (f32.const 4.4)) -(assert_return (invoke "type-param-f64" (f64.const 5.5)) (f64.const 5.5)) - -(assert_return - (invoke "type-mixed" - (i64.const 1) (f32.const 2.2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) -) - -(assert_return - (invoke "read" - (i64.const 1) (f32.const 2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) - (f64.const 34.8) -) - - -;; Invalid typing of access to locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid typing of access to parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid local index - -(assert_invalid - (module (func $unbound-local (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-local (local i32 i64) (get_local 14324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-param (param i32 i64) (get_local 2))) - "unknown local" -) -(assert_invalid - (module (func $large-param (local i32 i64) (get_local 714324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) - "unknown local" -) - diff --git a/tests/samples/globals.wast b/tests/samples/globals.wast deleted file mode 100644 index c4edfed..0000000 --- a/tests/samples/globals.wast +++ /dev/null @@ -1,180 +0,0 @@ -;; Test globals - -(module - (global $a i32 (i32.const -2)) - (global (;1;) f32 (f32.const -3)) - (global (;2;) f64 (f64.const -4)) - (global $b i64 (i64.const -5)) - - (global $x (mut i32) (i32.const -12)) - (global (;5;) (mut f32) (f32.const -13)) - (global (;6;) (mut f64) (f64.const -14)) - (global $y (mut i64) (i64.const -15)) - - (func (export "get-a") (result i32) (get_global $a)) - (func (export "get-b") (result i64) (get_global $b)) - (func (export "get-x") (result i32) (get_global $x)) - (func (export "get-y") (result i64) (get_global $y)) - (func (export "set-x") (param i32) (set_global $x (get_local 0))) - (func (export "set-y") (param i64) (set_global $y (get_local 0))) - - (func (export "get-1") (result f32) (get_global 1)) - (func (export "get-2") (result f64) (get_global 2)) - (func (export "get-5") (result f32) (get_global 5)) - (func (export "get-6") (result f64) (get_global 6)) - (func (export "set-5") (param f32) (set_global 5 (get_local 0))) - (func (export "set-6") (param f64) (set_global 6 (get_local 0))) -) - -(assert_return (invoke "get-a") (i32.const -2)) -(assert_return (invoke "get-b") (i64.const -5)) -(assert_return (invoke "get-x") (i32.const -12)) -(assert_return (invoke "get-y") (i64.const -15)) - -(assert_return (invoke "get-1") (f32.const -3)) -(assert_return (invoke "get-2") (f64.const -4)) -(assert_return (invoke "get-5") (f32.const -13)) -(assert_return (invoke "get-6") (f64.const -14)) - -(assert_return (invoke "set-x" (i32.const 6))) -(assert_return (invoke "set-y" (i64.const 7))) -(assert_return (invoke "set-5" (f32.const 8))) -(assert_return (invoke "set-6" (f64.const 9))) - -(assert_return (invoke "get-x") (i32.const 6)) -(assert_return (invoke "get-y") (i64.const 7)) -(assert_return (invoke "get-5") (f32.const 8)) -(assert_return (invoke "get-6") (f64.const 9)) - -(assert_invalid - (module (global f32 (f32.const 0)) (func (set_global 0 (i32.const 1)))) - "global is immutable" -) - -(assert_invalid - (module (import "m" "a" (global (mut i32)))) - "mutable globals cannot be imported" -) - -(assert_invalid - (module (global (import "m" "a") (mut i32))) - "mutable globals cannot be imported" -) - -(assert_invalid - (module (global (mut f32) (f32.const 0)) (export "a" (global 0))) - "mutable globals cannot be exported" -) - -(assert_invalid - (module (global (export "a") (mut f32) (f32.const 0))) - "mutable globals cannot be exported" -) - -(assert_invalid - (module (global f32 (f32.neg (f32.const 0)))) - "constant expression required" -) - -(assert_invalid - (module (global f32 (get_local 0))) - "constant expression required" -) - -(assert_invalid - (module (global f32 (f32.neg (f32.const 1)))) - "constant expression required" -) - -(assert_invalid - (module (global i32 (i32.const 0) (nop))) - "constant expression required" -) - -(assert_invalid - (module (global i32 (nop))) - "constant expression required" -) - -(assert_invalid - (module (global i32 (f32.const 0))) - "type mismatch" -) - -(assert_invalid - (module (global i32 (i32.const 0) (i32.const 0))) - "type mismatch" -) - -(assert_invalid - (module (global i32 (;empty instruction sequence;))) - "type mismatch" -) - -(assert_invalid - (module (global i32 (get_global 0))) - "unknown global" -) - -(assert_invalid - (module (global i32 (get_global 1)) (global i32 (i32.const 0))) - "unknown global" -) - -(module - (import "spectest" "global_i32" (global i32)) -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\94\80\80\80\00" ;; import section - "\01" ;; length 1 - "\08\73\70\65\63\74\65\73\74" ;; "spectest" - "\0a\67\6c\6f\62\61\6c\5f\69\33\32" ;; "global_i32" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\02" ;; invalid mutability - ) - "invalid mutability" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\94\80\80\80\00" ;; import section - "\01" ;; length 1 - "\08\73\70\65\63\74\65\73\74" ;; "spectest" - "\0a\67\6c\6f\62\61\6c\5f\69\33\32" ;; "global_i32" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\ff" ;; invalid mutability - ) - "invalid mutability" -) - -(module - (global i32 (i32.const 0)) -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\86\80\80\80\00" ;; global section - "\01" ;; length 1 - "\7f" ;; i32 - "\02" ;; invalid mutability - "\41\00" ;; i32.const 0 - "\0b" ;; end - ) - "invalid mutability" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\86\80\80\80\00" ;; global section - "\01" ;; length 1 - "\7f" ;; i32 - "\ff" ;; invalid mutability - "\41\00" ;; i32.const 0 - "\0b" ;; end - ) - "invalid mutability" -) diff --git a/tests/samples/i32.wast b/tests/samples/i32.wast deleted file mode 100644 index bd8722e..0000000 --- a/tests/samples/i32.wast +++ /dev/null @@ -1,421 +0,0 @@ -;; i32 operations - -(module - (func (export "add") (param $x i32) (param $y i32) (result i32) (i32.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x i32) (param $y i32) (result i32) (i32.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x i32) (param $y i32) (result i32) (i32.mul (get_local $x) (get_local $y))) - (func (export "div_s") (param $x i32) (param $y i32) (result i32) (i32.div_s (get_local $x) (get_local $y))) - (func (export "div_u") (param $x i32) (param $y i32) (result i32) (i32.div_u (get_local $x) (get_local $y))) - (func (export "rem_s") (param $x i32) (param $y i32) (result i32) (i32.rem_s (get_local $x) (get_local $y))) - (func (export "rem_u") (param $x i32) (param $y i32) (result i32) (i32.rem_u (get_local $x) (get_local $y))) - (func (export "and") (param $x i32) (param $y i32) (result i32) (i32.and (get_local $x) (get_local $y))) - (func (export "or") (param $x i32) (param $y i32) (result i32) (i32.or (get_local $x) (get_local $y))) - (func (export "xor") (param $x i32) (param $y i32) (result i32) (i32.xor (get_local $x) (get_local $y))) - (func (export "shl") (param $x i32) (param $y i32) (result i32) (i32.shl (get_local $x) (get_local $y))) - (func (export "shr_s") (param $x i32) (param $y i32) (result i32) (i32.shr_s (get_local $x) (get_local $y))) - (func (export "shr_u") (param $x i32) (param $y i32) (result i32) (i32.shr_u (get_local $x) (get_local $y))) - (func (export "rotl") (param $x i32) (param $y i32) (result i32) (i32.rotl (get_local $x) (get_local $y))) - (func (export "rotr") (param $x i32) (param $y i32) (result i32) (i32.rotr (get_local $x) (get_local $y))) - (func (export "clz") (param $x i32) (result i32) (i32.clz (get_local $x))) - (func (export "ctz") (param $x i32) (result i32) (i32.ctz (get_local $x))) - (func (export "popcnt") (param $x i32) (result i32) (i32.popcnt (get_local $x))) - (func (export "eqz") (param $x i32) (result i32) (i32.eqz (get_local $x))) - (func (export "eq") (param $x i32) (param $y i32) (result i32) (i32.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x i32) (param $y i32) (result i32) (i32.ne (get_local $x) (get_local $y))) - (func (export "lt_s") (param $x i32) (param $y i32) (result i32) (i32.lt_s (get_local $x) (get_local $y))) - (func (export "lt_u") (param $x i32) (param $y i32) (result i32) (i32.lt_u (get_local $x) (get_local $y))) - (func (export "le_s") (param $x i32) (param $y i32) (result i32) (i32.le_s (get_local $x) (get_local $y))) - (func (export "le_u") (param $x i32) (param $y i32) (result i32) (i32.le_u (get_local $x) (get_local $y))) - (func (export "gt_s") (param $x i32) (param $y i32) (result i32) (i32.gt_s (get_local $x) (get_local $y))) - (func (export "gt_u") (param $x i32) (param $y i32) (result i32) (i32.gt_u (get_local $x) (get_local $y))) - (func (export "ge_s") (param $x i32) (param $y i32) (result i32) (i32.ge_s (get_local $x) (get_local $y))) - (func (export "ge_u") (param $x i32) (param $y i32) (result i32) (i32.ge_u (get_local $x) (get_local $y))) -) - -(assert_return (invoke "add" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "add" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "add" (i32.const -1) (i32.const -1)) (i32.const -2)) -(assert_return (invoke "add" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "add" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "add" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x7fffffff)) -(assert_return (invoke "add" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "add" (i32.const 0x3fffffff) (i32.const 1)) (i32.const 0x40000000)) - -(assert_return (invoke "sub" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "sub" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "sub" (i32.const 0x80000000) (i32.const 1)) (i32.const 0x7fffffff)) -(assert_return (invoke "sub" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 0x3fffffff) (i32.const -1)) (i32.const 0x40000000)) - -(assert_return (invoke "mul" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "mul" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "mul" (i32.const 0x10000000) (i32.const 4096)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "mul" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x80000001)) -(assert_return (invoke "mul" (i32.const 0x01234567) (i32.const 0x76543210)) (i32.const 0x358e7470)) -(assert_return (invoke "mul" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) - -(assert_trap (invoke "div_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i32.const 0x80000000) (i32.const -1)) "integer overflow") -(assert_return (invoke "div_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "div_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "div_s" (i32.const 0) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "div_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "div_s" (i32.const 0x80000000) (i32.const 2)) (i32.const 0xc0000000)) -(assert_return (invoke "div_s" (i32.const 0x80000001) (i32.const 1000)) (i32.const 0xffdf3b65)) -(assert_return (invoke "div_s" (i32.const 5) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const -5) (i32.const 2)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const 5) (i32.const -2)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const -5) (i32.const -2)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 7) (i32.const 3)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const -7) (i32.const 3)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const 7) (i32.const -3)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const -7) (i32.const -3)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 11) (i32.const 5)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 17) (i32.const 7)) (i32.const 2)) - -(assert_trap (invoke "div_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_u" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "div_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "div_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "div_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const 0x80000000) (i32.const 2)) (i32.const 0x40000000)) -(assert_return (invoke "div_u" (i32.const 0x8ff00ff0) (i32.const 0x10001)) (i32.const 0x8fef)) -(assert_return (invoke "div_u" (i32.const 0x80000001) (i32.const 1000)) (i32.const 0x20c49b)) -(assert_return (invoke "div_u" (i32.const 5) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const -5) (i32.const 2)) (i32.const 0x7ffffffd)) -(assert_return (invoke "div_u" (i32.const 5) (i32.const -2)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const -5) (i32.const -2)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const 7) (i32.const 3)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const 11) (i32.const 5)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const 17) (i32.const 7)) (i32.const 2)) - -(assert_trap (invoke "rem_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_s" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "rem_s" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000000) (i32.const 2)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000001) (i32.const 1000)) (i32.const -647)) -(assert_return (invoke "rem_s" (i32.const 5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -5) (i32.const 2)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 5) (i32.const -2)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -5) (i32.const -2)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 7) (i32.const 3)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -7) (i32.const 3)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 7) (i32.const -3)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -7) (i32.const -3)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 11) (i32.const 5)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const 17) (i32.const 7)) (i32.const 3)) - -(assert_trap (invoke "rem_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_u" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "rem_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "rem_u" (i32.const 0x80000000) (i32.const 2)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0x8ff00ff0) (i32.const 0x10001)) (i32.const 0x8001)) -(assert_return (invoke "rem_u" (i32.const 0x80000001) (i32.const 1000)) (i32.const 649)) -(assert_return (invoke "rem_u" (i32.const 5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const -5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 5) (i32.const -2)) (i32.const 5)) -(assert_return (invoke "rem_u" (i32.const -5) (i32.const -2)) (i32.const -5)) -(assert_return (invoke "rem_u" (i32.const 7) (i32.const 3)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 11) (i32.const 5)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 17) (i32.const 7)) (i32.const 3)) - -(assert_return (invoke "and" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "and" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x7fffffff)) -(assert_return (invoke "and" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0xf0f0f0f0)) -(assert_return (invoke "and" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0xffffffff)) - -(assert_return (invoke "or" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "or" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const -1)) -(assert_return (invoke "or" (i32.const 0x80000000) (i32.const 0)) (i32.const 0x80000000)) -(assert_return (invoke "or" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0xffffffff)) -(assert_return (invoke "or" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0xffffffff)) - -(assert_return (invoke "xor" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "xor" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "xor" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "xor" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "xor" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const -1)) -(assert_return (invoke "xor" (i32.const 0x80000000) (i32.const 0)) (i32.const 0x80000000)) -(assert_return (invoke "xor" (i32.const -1) (i32.const 0x80000000)) (i32.const 0x7fffffff)) -(assert_return (invoke "xor" (i32.const -1) (i32.const 0x7fffffff)) (i32.const 0x80000000)) -(assert_return (invoke "xor" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0x0f0f0f0f)) -(assert_return (invoke "xor" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0)) - -(assert_return (invoke "shl" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shl" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0xfffffffe)) -(assert_return (invoke "shl" (i32.const 0xffffffff) (i32.const 1)) (i32.const 0xfffffffe)) -(assert_return (invoke "shl" (i32.const 0x80000000) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shl" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 31)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 33)) (i32.const 2)) -(assert_return (invoke "shl" (i32.const 1) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0x80000000)) - -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x3fffffff)) -(assert_return (invoke "shr_s" (i32.const 0x80000000) (i32.const 1)) (i32.const 0xc0000000)) -(assert_return (invoke "shr_s" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x20000000)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 33)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const 0x80000000) (i32.const 31)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 32)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 33)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const -1)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 0x7fffffff)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 0x80000000)) (i32.const -1)) - -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 1)) (i32.const 0x7fffffff)) -(assert_return (invoke "shr_u" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x3fffffff)) -(assert_return (invoke "shr_u" (i32.const 0x80000000) (i32.const 1)) (i32.const 0x40000000)) -(assert_return (invoke "shr_u" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x20000000)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 33)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const 0x80000000) (i32.const 31)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 32)) (i32.const -1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 33)) (i32.const 0x7fffffff)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 0x80000000)) (i32.const -1)) - -(assert_return (invoke "rotl" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "rotl" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "rotl" (i32.const 0xabcd9876) (i32.const 1)) (i32.const 0x579b30ed)) -(assert_return (invoke "rotl" (i32.const 0xfe00dc00) (i32.const 4)) (i32.const 0xe00dc00f)) -(assert_return (invoke "rotl" (i32.const 0xb0c1d2e3) (i32.const 5)) (i32.const 0x183a5c76)) -(assert_return (invoke "rotl" (i32.const 0x00008000) (i32.const 37)) (i32.const 0x00100000)) -(assert_return (invoke "rotl" (i32.const 0xb0c1d2e3) (i32.const 0xff05)) (i32.const 0x183a5c76)) -(assert_return (invoke "rotl" (i32.const 0x769abcdf) (i32.const 0xffffffed)) (i32.const 0x579beed3)) -(assert_return (invoke "rotl" (i32.const 0x769abcdf) (i32.const 0x8000000d)) (i32.const 0x579beed3)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 31)) (i32.const 0x80000000)) -(assert_return (invoke "rotl" (i32.const 0x80000000) (i32.const 1)) (i32.const 1)) - -(assert_return (invoke "rotr" (i32.const 1) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "rotr" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "rotr" (i32.const 0xff00cc00) (i32.const 1)) (i32.const 0x7f806600)) -(assert_return (invoke "rotr" (i32.const 0x00080000) (i32.const 4)) (i32.const 0x00008000)) -(assert_return (invoke "rotr" (i32.const 0xb0c1d2e3) (i32.const 5)) (i32.const 0x1d860e97)) -(assert_return (invoke "rotr" (i32.const 0x00008000) (i32.const 37)) (i32.const 0x00000400)) -(assert_return (invoke "rotr" (i32.const 0xb0c1d2e3) (i32.const 0xff05)) (i32.const 0x1d860e97)) -(assert_return (invoke "rotr" (i32.const 0x769abcdf) (i32.const 0xffffffed)) (i32.const 0xe6fbb4d5)) -(assert_return (invoke "rotr" (i32.const 0x769abcdf) (i32.const 0x8000000d)) (i32.const 0xe6fbb4d5)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 31)) (i32.const 2)) -(assert_return (invoke "rotr" (i32.const 0x80000000) (i32.const 31)) (i32.const 1)) - -(assert_return (invoke "clz" (i32.const 0xffffffff)) (i32.const 0)) -(assert_return (invoke "clz" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "clz" (i32.const 0x00008000)) (i32.const 16)) -(assert_return (invoke "clz" (i32.const 0xff)) (i32.const 24)) -(assert_return (invoke "clz" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "clz" (i32.const 1)) (i32.const 31)) -(assert_return (invoke "clz" (i32.const 2)) (i32.const 30)) -(assert_return (invoke "clz" (i32.const 0x7fffffff)) (i32.const 1)) - -(assert_return (invoke "ctz" (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ctz" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "ctz" (i32.const 0x00008000)) (i32.const 15)) -(assert_return (invoke "ctz" (i32.const 0x00010000)) (i32.const 16)) -(assert_return (invoke "ctz" (i32.const 0x80000000)) (i32.const 31)) -(assert_return (invoke "ctz" (i32.const 0x7fffffff)) (i32.const 0)) - -(assert_return (invoke "popcnt" (i32.const -1)) (i32.const 32)) -(assert_return (invoke "popcnt" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "popcnt" (i32.const 0x00008000)) (i32.const 1)) -(assert_return (invoke "popcnt" (i32.const 0x80008000)) (i32.const 2)) -(assert_return (invoke "popcnt" (i32.const 0x7fffffff)) (i32.const 31)) -(assert_return (invoke "popcnt" (i32.const 0xAAAAAAAA)) (i32.const 16)) -(assert_return (invoke "popcnt" (i32.const 0x55555555)) (i32.const 16)) -(assert_return (invoke "popcnt" (i32.const 0xDEADBEEF)) (i32.const 24)) - -(assert_return (invoke "eqz" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "eqz" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0xffffffff)) (i32.const 0)) - -(assert_return (invoke "eq" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "ne" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "le_s" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "le_u" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) diff --git a/tests/samples/i64.wast b/tests/samples/i64.wast deleted file mode 100644 index 6bb8a31..0000000 --- a/tests/samples/i64.wast +++ /dev/null @@ -1,421 +0,0 @@ -;; i64 operations - -(module - (func (export "add") (param $x i64) (param $y i64) (result i64) (i64.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x i64) (param $y i64) (result i64) (i64.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x i64) (param $y i64) (result i64) (i64.mul (get_local $x) (get_local $y))) - (func (export "div_s") (param $x i64) (param $y i64) (result i64) (i64.div_s (get_local $x) (get_local $y))) - (func (export "div_u") (param $x i64) (param $y i64) (result i64) (i64.div_u (get_local $x) (get_local $y))) - (func (export "rem_s") (param $x i64) (param $y i64) (result i64) (i64.rem_s (get_local $x) (get_local $y))) - (func (export "rem_u") (param $x i64) (param $y i64) (result i64) (i64.rem_u (get_local $x) (get_local $y))) - (func (export "and") (param $x i64) (param $y i64) (result i64) (i64.and (get_local $x) (get_local $y))) - (func (export "or") (param $x i64) (param $y i64) (result i64) (i64.or (get_local $x) (get_local $y))) - (func (export "xor") (param $x i64) (param $y i64) (result i64) (i64.xor (get_local $x) (get_local $y))) - (func (export "shl") (param $x i64) (param $y i64) (result i64) (i64.shl (get_local $x) (get_local $y))) - (func (export "shr_s") (param $x i64) (param $y i64) (result i64) (i64.shr_s (get_local $x) (get_local $y))) - (func (export "shr_u") (param $x i64) (param $y i64) (result i64) (i64.shr_u (get_local $x) (get_local $y))) - (func (export "rotl") (param $x i64) (param $y i64) (result i64) (i64.rotl (get_local $x) (get_local $y))) - (func (export "rotr") (param $x i64) (param $y i64) (result i64) (i64.rotr (get_local $x) (get_local $y))) - (func (export "clz") (param $x i64) (result i64) (i64.clz (get_local $x))) - (func (export "ctz") (param $x i64) (result i64) (i64.ctz (get_local $x))) - (func (export "popcnt") (param $x i64) (result i64) (i64.popcnt (get_local $x))) - (func (export "eqz") (param $x i64) (result i32) (i64.eqz (get_local $x))) - (func (export "eq") (param $x i64) (param $y i64) (result i32) (i64.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x i64) (param $y i64) (result i32) (i64.ne (get_local $x) (get_local $y))) - (func (export "lt_s") (param $x i64) (param $y i64) (result i32) (i64.lt_s (get_local $x) (get_local $y))) - (func (export "lt_u") (param $x i64) (param $y i64) (result i32) (i64.lt_u (get_local $x) (get_local $y))) - (func (export "le_s") (param $x i64) (param $y i64) (result i32) (i64.le_s (get_local $x) (get_local $y))) - (func (export "le_u") (param $x i64) (param $y i64) (result i32) (i64.le_u (get_local $x) (get_local $y))) - (func (export "gt_s") (param $x i64) (param $y i64) (result i32) (i64.gt_s (get_local $x) (get_local $y))) - (func (export "gt_u") (param $x i64) (param $y i64) (result i32) (i64.gt_u (get_local $x) (get_local $y))) - (func (export "ge_s") (param $x i64) (param $y i64) (result i32) (i64.ge_s (get_local $x) (get_local $y))) - (func (export "ge_u") (param $x i64) (param $y i64) (result i32) (i64.ge_u (get_local $x) (get_local $y))) -) - -(assert_return (invoke "add" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "add" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "add" (i64.const -1) (i64.const -1)) (i64.const -2)) -(assert_return (invoke "add" (i64.const -1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "add" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "add" (i64.const 0x3fffffff) (i64.const 1)) (i64.const 0x40000000)) - -(assert_return (invoke "sub" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "sub" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 0x3fffffff) (i64.const -1)) (i64.const 0x40000000)) - -(assert_return (invoke "mul" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "mul" (i64.const 1) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "mul" (i64.const 0x1000000000000000) (i64.const 4096)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000001)) -(assert_return (invoke "mul" (i64.const 0x0123456789abcdef) (i64.const 0xfedcba9876543210)) (i64.const 0x2236d88fe5618cf0)) -(assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i64.const 1)) - -(assert_trap (invoke "div_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i64.const 0x8000000000000000) (i64.const -1)) "integer overflow") -(assert_return (invoke "div_s" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "div_s" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "div_s" (i64.const 0) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "div_s" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "div_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0xc000000000000000)) -(assert_return (invoke "div_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0xffdf3b645a1cac09)) -(assert_return (invoke "div_s" (i64.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const -5) (i64.const 2)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const 5) (i64.const -2)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const -5) (i64.const -2)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 7) (i64.const 3)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const -7) (i64.const 3)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const 7) (i64.const -3)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const -7) (i64.const -3)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 11) (i64.const 5)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 17) (i64.const 7)) (i64.const 2)) - -(assert_trap (invoke "div_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_u" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "div_u" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "div_u" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0x4000000000000000)) -(assert_return (invoke "div_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x8ff00fef)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0x20c49ba5e353f7)) -(assert_return (invoke "div_u" (i64.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const -5) (i64.const 2)) (i64.const 0x7ffffffffffffffd)) -(assert_return (invoke "div_u" (i64.const 5) (i64.const -2)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const -5) (i64.const -2)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const 7) (i64.const 3)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const 11) (i64.const 5)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const 17) (i64.const 7)) (i64.const 2)) - -(assert_trap (invoke "rem_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_s" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "rem_s" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const -807)) -(assert_return (invoke "rem_s" (i64.const 5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -5) (i64.const 2)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 5) (i64.const -2)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -5) (i64.const -2)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 7) (i64.const 3)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -7) (i64.const 3)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 7) (i64.const -3)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -7) (i64.const -3)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 11) (i64.const 5)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const 17) (i64.const 7)) (i64.const 3)) - -(assert_trap (invoke "rem_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_u" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "rem_u" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x80000001)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 809)) -(assert_return (invoke "rem_u" (i64.const 5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const -5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 5) (i64.const -2)) (i64.const 5)) -(assert_return (invoke "rem_u" (i64.const -5) (i64.const -2)) (i64.const -5)) -(assert_return (invoke "rem_u" (i64.const 7) (i64.const 3)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 11) (i64.const 5)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 17) (i64.const 7)) (i64.const 3)) - -(assert_return (invoke "and" (i64.const 1) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "and" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "and" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xf0f0f0f0)) -(assert_return (invoke "and" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff)) - -(assert_return (invoke "or" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "or" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1)) -(assert_return (invoke "or" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "or" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xffffffff)) -(assert_return (invoke "or" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff)) - -(assert_return (invoke "xor" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "xor" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "xor" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "xor" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "xor" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1)) -(assert_return (invoke "xor" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "xor" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "xor" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000)) -(assert_return (invoke "xor" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0x0f0f0f0f)) -(assert_return (invoke "xor" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0)) - -(assert_return (invoke "shl" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shl" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe)) -(assert_return (invoke "shl" (i64.const 0xffffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe)) -(assert_return (invoke "shl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shl" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 65)) (i64.const 2)) -(assert_return (invoke "shl" (i64.const 1) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000)) - -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff)) -(assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0xc000000000000000)) -(assert_return (invoke "shr_s" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 65)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 64)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 65)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const -1)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1)) - -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x4000000000000000)) -(assert_return (invoke "shr_u" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 65)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 64)) (i64.const -1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 65)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1)) - -(assert_return (invoke "rotl" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "rotl" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "rotl" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x579b30ec048d159d)) -(assert_return (invoke "rotl" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0xe000000dc000000f)) -(assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x013579a2469deacf)) -(assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x55e891a77ab3c04e)) -(assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x013579a2469deacf)) -(assert_return (invoke "rotl" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0xcf013579ae529dea)) -(assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x55e891a77ab3c04e)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rotl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 1)) - -(assert_return (invoke "rotr" (i64.const 1) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "rotr" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "rotr" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x55e6cc3b01234567)) -(assert_return (invoke "rotr" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0x0fe000000dc00000)) -(assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x6891a77ab3c04d5e)) -(assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x57a2469deacf0139)) -(assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x6891a77ab3c04d5e)) -(assert_return (invoke "rotr" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0x94a77ab3c04d5e6b)) -(assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x57a2469deacf0139)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 63)) (i64.const 2)) -(assert_return (invoke "rotr" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1)) - -(assert_return (invoke "clz" (i64.const 0xffffffffffffffff)) (i64.const 0)) -(assert_return (invoke "clz" (i64.const 0)) (i64.const 64)) -(assert_return (invoke "clz" (i64.const 0x00008000)) (i64.const 48)) -(assert_return (invoke "clz" (i64.const 0xff)) (i64.const 56)) -(assert_return (invoke "clz" (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "clz" (i64.const 1)) (i64.const 63)) -(assert_return (invoke "clz" (i64.const 2)) (i64.const 62)) -(assert_return (invoke "clz" (i64.const 0x7fffffffffffffff)) (i64.const 1)) - -(assert_return (invoke "ctz" (i64.const -1)) (i64.const 0)) -(assert_return (invoke "ctz" (i64.const 0)) (i64.const 64)) -(assert_return (invoke "ctz" (i64.const 0x00008000)) (i64.const 15)) -(assert_return (invoke "ctz" (i64.const 0x00010000)) (i64.const 16)) -(assert_return (invoke "ctz" (i64.const 0x8000000000000000)) (i64.const 63)) -(assert_return (invoke "ctz" (i64.const 0x7fffffffffffffff)) (i64.const 0)) - -(assert_return (invoke "popcnt" (i64.const -1)) (i64.const 64)) -(assert_return (invoke "popcnt" (i64.const 0)) (i64.const 0)) -(assert_return (invoke "popcnt" (i64.const 0x00008000)) (i64.const 1)) -(assert_return (invoke "popcnt" (i64.const 0x8000800080008000)) (i64.const 4)) -(assert_return (invoke "popcnt" (i64.const 0x7fffffffffffffff)) (i64.const 63)) -(assert_return (invoke "popcnt" (i64.const 0xAAAAAAAA55555555)) (i64.const 32)) -(assert_return (invoke "popcnt" (i64.const 0x99999999AAAAAAAA)) (i64.const 32)) -(assert_return (invoke "popcnt" (i64.const 0xDEADBEEFDEADBEEF)) (i64.const 48)) - -(assert_return (invoke "eqz" (i64.const 0)) (i32.const 1)) -(assert_return (invoke "eqz" (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0xffffffffffffffff)) (i32.const 0)) - -(assert_return (invoke "eq" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "ne" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "le_s" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "le_u" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) diff --git a/tests/samples/if.wast b/tests/samples/if.wast deleted file mode 100644 index 07a9ee2..0000000 --- a/tests/samples/if.wast +++ /dev/null @@ -1,449 +0,0 @@ -;; Test `if` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "empty") (param i32) - (if (get_local 0) (then)) - (if (get_local 0) (then) (else)) - (if $l (get_local 0) (then)) - (if $l (get_local 0) (then) (else)) - ) - - (func (export "singular") (param i32) (result i32) - (if (get_local 0) (then (nop))) - (if (get_local 0) (then (nop)) (else (nop))) - (if (result i32) (get_local 0) (then (i32.const 7)) (else (i32.const 8))) - ) - - (func (export "multi") (param i32) (result i32) - (if (get_local 0) (then (call $dummy) (call $dummy) (call $dummy))) - (if (get_local 0) (then) (else (call $dummy) (call $dummy) (call $dummy))) - (if (result i32) (get_local 0) - (then (call $dummy) (call $dummy) (i32.const 8)) - (else (call $dummy) (call $dummy) (i32.const 9)) - ) - ) - - (func (export "nested") (param i32 i32) (result i32) - (if (result i32) (get_local 0) - (then - (if (get_local 1) (then (call $dummy) (block) (nop))) - (if (get_local 1) (then) (else (call $dummy) (block) (nop))) - (if (result i32) (get_local 1) - (then (call $dummy) (i32.const 9)) - (else (call $dummy) (i32.const 10)) - ) - ) - (else - (if (get_local 1) (then (call $dummy) (block) (nop))) - (if (get_local 1) (then) (else (call $dummy) (block) (nop))) - (if (result i32) (get_local 1) - (then (call $dummy) (i32.const 10)) - (else (call $dummy) (i32.const 11)) - ) - ) - ) - ) - - (func (export "as-unary-operand") (param i32) (result i32) - (i32.ctz - (if (result i32) (get_local 0) - (then (call $dummy) (i32.const 13)) - (else (call $dummy) (i32.const -13)) - ) - ) - ) - (func (export "as-binary-operand") (param i32 i32) (result i32) - (i32.mul - (if (result i32) (get_local 0) - (then (call $dummy) (i32.const 3)) - (else (call $dummy) (i32.const -3)) - ) - (if (result i32) (get_local 1) - (then (call $dummy) (i32.const 4)) - (else (call $dummy) (i32.const -5)) - ) - ) - ) - (func (export "as-test-operand") (param i32) (result i32) - (i32.eqz - (if (result i32) (get_local 0) - (then (call $dummy) (i32.const 13)) - (else (call $dummy) (i32.const 0)) - ) - ) - ) - (func (export "as-compare-operand") (param i32 i32) (result i32) - (f32.gt - (if (result f32) (get_local 0) - (then (call $dummy) (f32.const 3)) - (else (call $dummy) (f32.const -3)) - ) - (if (result f32) (get_local 1) - (then (call $dummy) (f32.const 4)) - (else (call $dummy) (f32.const -4)) - ) - ) - ) - - (func (export "break-bare") (result i32) - (if (i32.const 1) (then (br 0) (unreachable))) - (if (i32.const 1) (then (br 0) (unreachable)) (else (unreachable))) - (if (i32.const 0) (then (unreachable)) (else (br 0) (unreachable))) - (if (i32.const 1) (then (br_if 0 (i32.const 1)) (unreachable))) - (if (i32.const 1) (then (br_if 0 (i32.const 1)) (unreachable)) (else (unreachable))) - (if (i32.const 0) (then (unreachable)) (else (br_if 0 (i32.const 1)) (unreachable))) - (if (i32.const 1) (then (br_table 0 (i32.const 0)) (unreachable))) - (if (i32.const 1) (then (br_table 0 (i32.const 0)) (unreachable)) (else (unreachable))) - (if (i32.const 0) (then (unreachable)) (else (br_table 0 (i32.const 0)) (unreachable))) - (i32.const 19) - ) - - (func (export "break-value") (param i32) (result i32) - (if (result i32) (get_local 0) - (then (br 0 (i32.const 18)) (i32.const 19)) - (else (br 0 (i32.const 21)) (i32.const 20)) - ) - ) - - (func (export "effects") (param i32) (result i32) - (local i32) - (if - (block (result i32) (set_local 1 (i32.const 1)) (get_local 0)) - (then - (set_local 1 (i32.mul (get_local 1) (i32.const 3))) - (set_local 1 (i32.sub (get_local 1) (i32.const 5))) - (set_local 1 (i32.mul (get_local 1) (i32.const 7))) - (br 0) - (set_local 1 (i32.mul (get_local 1) (i32.const 100))) - ) - (else - (set_local 1 (i32.mul (get_local 1) (i32.const 5))) - (set_local 1 (i32.sub (get_local 1) (i32.const 7))) - (set_local 1 (i32.mul (get_local 1) (i32.const 3))) - (br 0) - (set_local 1 (i32.mul (get_local 1) (i32.const 1000))) - ) - ) - (get_local 1) - ) -) - -(assert_return (invoke "empty" (i32.const 0))) -(assert_return (invoke "empty" (i32.const 1))) -(assert_return (invoke "empty" (i32.const 100))) -(assert_return (invoke "empty" (i32.const -2))) - -(assert_return (invoke "singular" (i32.const 0)) (i32.const 8)) -(assert_return (invoke "singular" (i32.const 1)) (i32.const 7)) -(assert_return (invoke "singular" (i32.const 10)) (i32.const 7)) -(assert_return (invoke "singular" (i32.const -10)) (i32.const 7)) - -(assert_return (invoke "multi" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "multi" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "multi" (i32.const 13)) (i32.const 8)) -(assert_return (invoke "multi" (i32.const -5)) (i32.const 8)) - -(assert_return (invoke "nested" (i32.const 0) (i32.const 0)) (i32.const 11)) -(assert_return (invoke "nested" (i32.const 1) (i32.const 0)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const 0) (i32.const 1)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const 3) (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested" (i32.const 0) (i32.const -100)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const 10) (i32.const 10)) (i32.const 9)) -(assert_return (invoke "nested" (i32.const 0) (i32.const -1)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const -111) (i32.const -2)) (i32.const 9)) - -(assert_return (invoke "as-unary-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-unary-operand" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "as-unary-operand" (i32.const -1)) (i32.const 0)) - -(assert_return (invoke "as-binary-operand" (i32.const 0) (i32.const 0)) (i32.const 15)) -(assert_return (invoke "as-binary-operand" (i32.const 0) (i32.const 1)) (i32.const -12)) -(assert_return (invoke "as-binary-operand" (i32.const 1) (i32.const 0)) (i32.const -15)) -(assert_return (invoke "as-binary-operand" (i32.const 1) (i32.const 1)) (i32.const 12)) - -(assert_return (invoke "as-test-operand" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-test-operand" (i32.const 1)) (i32.const 0)) - -(assert_return (invoke "as-compare-operand" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-compare-operand" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "as-compare-operand" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-compare-operand" (i32.const 1) (i32.const 1)) (i32.const 0)) - -(assert_return (invoke "break-bare") (i32.const 19)) -(assert_return (invoke "break-value" (i32.const 1)) (i32.const 18)) -(assert_return (invoke "break-value" (i32.const 0)) (i32.const 21)) - -(assert_return (invoke "effects" (i32.const 1)) (i32.const -14)) -(assert_return (invoke "effects" (i32.const 0)) (i32.const -6)) - -(assert_invalid - (module (func $type-empty-i32 (result i32) (if (i32.const 0) (then)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64) (if (i32.const 0) (then)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32) (if (i32.const 0) (then)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64) (if (i32.const 0) (then)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-empty-i32 (result i32) (if (i32.const 0) (then) (else)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64) (if (i32.const 0) (then) (else)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32) (if (i32.const 0) (then) (else)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64) (if (i32.const 0) (then) (else)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-num-vs-void - (if (i32.const 1) (then (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-num-vs-void - (if (i32.const 1) (then (i32.const 1)) (else)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-value-num-vs-void - (if (i32.const 1) (then) (else (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-num-vs-void - (if (i32.const 1) (then (i32.const 1)) (else (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-empty-vs-num (result i32) - (if (result i32) (i32.const 1) (then) (else (i32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-empty-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 0)) (else)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-empty-vs-num (result i32) - (if (result i32) (i32.const 1) (then) (else)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-no-else-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (nop)) (else (i32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 0)) (else (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (nop)) (else (nop))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i64.const 1)) (else (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 1)) (else (i64.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i64.const 1)) (else (i64.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-different-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i64.const 1)) (else (f64.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-unreached-select (result i32) - (if (result i64) - (i32.const 0) - (then (select (unreachable) (unreachable) (unreachable))) - (else (i64.const 0)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-value-unreached-select (result i32) - (if (result i64) - (i32.const 1) - (then (i64.const 0)) - (else (select (unreachable) (unreachable) (unreachable))) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-value-unreached-select (result i32) - (if (result i64) - (i32.const 1) - (then (select (unreachable) (unreachable) (unreachable))) - (else (select (unreachable) (unreachable) (unreachable))) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-break-last-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (br 0)) (else (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-last-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 1)) (else (br 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-break-empty-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (br 0) (i32.const 1)) - (else (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-empty-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (i32.const 1)) - (else (br 0) (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-break-void-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (br 0 (nop)) (i32.const 1)) - (else (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-void-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (i32.const 1)) - (else (br 0 (nop)) (i32.const 1)) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-break-num-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (br 0 (i64.const 1)) (i32.const 1)) - (else (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-num-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (i32.const 1)) - (else (br 0 (i64.const 1)) (i32.const 1)) - ) - )) - "type mismatch" -) - - -(assert_malformed - (module quote "(func if end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else $l end)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else $l end)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else $l end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else $l1 end $l2)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else $a end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else $l end $l)") - "mismatching label" -) diff --git a/tests/samples/imports.wast b/tests/samples/imports.wast deleted file mode 100644 index 691550b..0000000 --- a/tests/samples/imports.wast +++ /dev/null @@ -1,591 +0,0 @@ -;; Auxiliary module to import from - -(module - (func (export "func")) - (func (export "func-i32") (param i32)) - (func (export "func-f32") (param f32)) - (func (export "func->i32") (result i32) (i32.const 22)) - (func (export "func->f32") (result f32) (f32.const 11)) - (func (export "func-i32->i32") (param i32) (result i32) (get_local 0)) - (func (export "func-i64->i64") (param i64) (result i64) (get_local 0)) - (global (export "global-i32") i32 (i32.const 55)) - (global (export "global-f32") f32 (f32.const 44)) - (table (export "table-10-inf") 10 anyfunc) - ;; (table (export "table-10-20") 10 20 anyfunc) - (memory (export "memory-2-inf") 2) - ;; (memory (export "memory-2-4") 2 4) -) - -(register "test") - - -;; Functions - -(module - (type $func_i32 (func (param i32))) - (type $func_i64 (func (param i64))) - (type $func_f32 (func (param f32))) - (type $func_f64 (func (param f64))) - - (import "spectest" "print_i32" (func (param i32))) - ;; JavaScript can't handle i64 yet. - ;; (func (import "spectest" "print_i64") (param i64)) - (import "spectest" "print_i32" (func $print_i32 (param i32))) - ;; JavaScript can't handle i64 yet. - ;; (import "spectest" "print_i64" (func $print_i64 (param i64))) - (import "spectest" "print_f32" (func $print_f32 (param f32))) - (import "spectest" "print_f64" (func $print_f64 (param f64))) - (import "spectest" "print_i32_f32" (func $print_i32_f32 (param i32 f32))) - (import "spectest" "print_f64_f64" (func $print_f64_f64 (param f64 f64))) - (func $print_i32-2 (import "spectest" "print_i32") (param i32)) - (func $print_f64-2 (import "spectest" "print_f64") (param f64)) - (import "test" "func-i64->i64" (func $i64->i64 (param i64) (result i64))) - - (func (export "p1") (import "spectest" "print_i32") (param i32)) - (func $p (export "p2") (import "spectest" "print_i32") (param i32)) - (func (export "p3") (export "p4") (import "spectest" "print_i32") (param i32)) - (func (export "p5") (import "spectest" "print_i32") (type 0)) - (func (export "p6") (import "spectest" "print_i32") (type 0) (param i32) (result)) - - (import "spectest" "print_i32" (func (type $forward))) - (func (import "spectest" "print_i32") (type $forward)) - (type $forward (func (param i32))) - - (table anyfunc (elem $print_i32 $print_f64)) - - (func (export "print32") (param $i i32) - (local $x f32) - (set_local $x (f32.convert_s/i32 (get_local $i))) - (call 0 (get_local $i)) - (call $print_i32_f32 - (i32.add (get_local $i) (i32.const 1)) - (f32.const 42) - ) - (call $print_i32 (get_local $i)) - (call $print_i32-2 (get_local $i)) - (call $print_f32 (get_local $x)) - (call_indirect (type $func_i32) (get_local $i) (i32.const 0)) - ) - - (func (export "print64") (param $i i64) - (local $x f64) - (set_local $x (f64.convert_s/i64 (call $i64->i64 (get_local $i)))) - ;; JavaScript can't handle i64 yet. - ;; (call 1 (get_local $i)) - (call $print_f64_f64 - (f64.add (get_local $x) (f64.const 1)) - (f64.const 53) - ) - ;; JavaScript can't handle i64 yet. - ;; (call $print_i64 (get_local $i)) - (call $print_f64 (get_local $x)) - (call $print_f64-2 (get_local $x)) - (call_indirect (type $func_f64) (get_local $x) (i32.const 1)) - ) -) - -(assert_return (invoke "print32" (i32.const 13))) -(assert_return (invoke "print64" (i64.const 24))) - -(assert_invalid - (module - (type (func (result i32))) - (import "test" "func" (func (type 1))) - ) - "unknown type" -) - -(module (import "test" "func" (func))) -(module (import "test" "func-i32" (func (param i32)))) -(module (import "test" "func-f32" (func (param f32)))) -(module (import "test" "func->i32" (func (result i32)))) -(module (import "test" "func->f32" (func (result f32)))) -(module (import "test" "func-i32->i32" (func (param i32) (result i32)))) -(module (import "test" "func-i64->i64" (func (param i64) (result i64)))) - -(assert_unlinkable - (module (import "test" "unknown" (func))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (func))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "func" (func (param i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func" (func (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func" (func (param i32) (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (param f32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (param i64)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (param i32) (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (param i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (result f32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (result i64)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (param i32) (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32->i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32->i32" (func (param i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32->i32" (func (result i32)))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "test" "global-i32" (func (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "global_i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (func))) - "incompatible import type" -) - - -;; Globals - -(module - (import "spectest" "global_i32" (global i32)) - (global (import "spectest" "global_i32") i32) - - (import "spectest" "global_i32" (global $x i32)) - (global $y (import "spectest" "global_i32") i32) - - ;; JavaScript can't handle i64 yet. - ;; (import "spectest" "global_i64" (global i64)) - (import "spectest" "global_f32" (global f32)) - (import "spectest" "global_f64" (global f64)) - - (func (export "get-0") (result i32) (get_global 0)) - (func (export "get-1") (result i32) (get_global 1)) - (func (export "get-x") (result i32) (get_global $x)) - (func (export "get-y") (result i32) (get_global $y)) -) - -(assert_return (invoke "get-0") (i32.const 666)) -(assert_return (invoke "get-1") (i32.const 666)) -(assert_return (invoke "get-x") (i32.const 666)) -(assert_return (invoke "get-y") (i32.const 666)) - -(module (import "test" "global-i32" (global i32))) -(module (import "test" "global-f32" (global f32))) - -(assert_unlinkable - (module (import "test" "unknown" (global i32))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (global i32))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "func" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "print_i32" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (global i32))) - "incompatible import type" -) - - -;; Tables - -(module - (type (func (result i32))) - (import "spectest" "table" (table 10 20 anyfunc)) - (elem 0 (i32.const 1) $f $g) - - (func (export "call") (param i32) (result i32) - (call_indirect (type 0) (get_local 0)) - ) - (func $f (result i32) (i32.const 11)) - (func $g (result i32) (i32.const 22)) -) - -(assert_trap (invoke "call" (i32.const 0)) "uninitialized element") -(assert_return (invoke "call" (i32.const 1)) (i32.const 11)) -(assert_return (invoke "call" (i32.const 2)) (i32.const 22)) -(assert_trap (invoke "call" (i32.const 3)) "uninitialized element") -(assert_trap (invoke "call" (i32.const 100)) "undefined element") - - -(module - (type (func (result i32))) - (table (import "spectest" "table") 10 20 anyfunc) - (elem 0 (i32.const 1) $f $g) - - (func (export "call") (param i32) (result i32) - (call_indirect (type 0) (get_local 0)) - ) - (func $f (result i32) (i32.const 11)) - (func $g (result i32) (i32.const 22)) -) - -(assert_trap (invoke "call" (i32.const 0)) "uninitialized element") -(assert_return (invoke "call" (i32.const 1)) (i32.const 11)) -(assert_return (invoke "call" (i32.const 2)) (i32.const 22)) -(assert_trap (invoke "call" (i32.const 3)) "uninitialized element") -(assert_trap (invoke "call" (i32.const 100)) "undefined element") - - -(assert_invalid - (module (import "" "" (table 10 anyfunc)) (import "" "" (table 10 anyfunc))) - "multiple tables" -) -(assert_invalid - (module (import "" "" (table 10 anyfunc)) (table 10 anyfunc)) - "multiple tables" -) -(assert_invalid - (module (table 10 anyfunc) (table 10 anyfunc)) - "multiple tables" -) - -(module (import "test" "table-10-inf" (table 10 anyfunc))) -(module (import "test" "table-10-inf" (table 5 anyfunc))) -(module (import "test" "table-10-inf" (table 0 anyfunc))) -(module (import "spectest" "table" (table 10 anyfunc))) -(module (import "spectest" "table" (table 5 anyfunc))) -(module (import "spectest" "table" (table 0 anyfunc))) -(module (import "spectest" "table" (table 10 20 anyfunc))) -(module (import "spectest" "table" (table 5 20 anyfunc))) -(module (import "spectest" "table" (table 0 20 anyfunc))) -(module (import "spectest" "table" (table 10 25 anyfunc))) -(module (import "spectest" "table" (table 5 25 anyfunc))) - -(assert_unlinkable - (module (import "test" "unknown" (table 10 anyfunc))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (table 10 anyfunc))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "table-10-inf" (table 12 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (table 10 20 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (table 12 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (table 10 15 anyfunc))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "test" "func" (table 10 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "global-i32" (table 10 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (table 10 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "print_i32" (table 10 anyfunc))) - "incompatible import type" -) - - - -;; Memories - -(module - (import "spectest" "memory" (memory 1 2)) - (data 0 (i32.const 10) "\10") - - (func (export "load") (param i32) (result i32) (i32.load (get_local 0))) -) - -(assert_return (invoke "load" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "load" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "load" (i32.const 8)) (i32.const 0x100000)) -(assert_trap (invoke "load" (i32.const 1000000)) "out of bounds memory access") - -(module - (memory (import "spectest" "memory") 1 2) - (data 0 (i32.const 10) "\10") - - (func (export "load") (param i32) (result i32) (i32.load (get_local 0))) -) -(assert_return (invoke "load" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "load" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "load" (i32.const 8)) (i32.const 0x100000)) -(assert_trap (invoke "load" (i32.const 1000000)) "out of bounds memory access") - -(assert_invalid - (module (import "" "" (memory 1)) (import "" "" (memory 1))) - "multiple memories" -) -(assert_invalid - (module (import "" "" (memory 1)) (memory 0)) - "multiple memories" -) -(assert_invalid - (module (memory 0) (memory 0)) - "multiple memories" -) - -(module (import "test" "memory-2-inf" (memory 2))) -(module (import "test" "memory-2-inf" (memory 1))) -(module (import "test" "memory-2-inf" (memory 0))) -(module (import "spectest" "memory" (memory 1))) -(module (import "spectest" "memory" (memory 0))) -(module (import "spectest" "memory" (memory 1 2))) -(module (import "spectest" "memory" (memory 0 2))) -(module (import "spectest" "memory" (memory 1 3))) -(module (import "spectest" "memory" (memory 0 3))) - -(assert_unlinkable - (module (import "test" "unknown" (memory 1))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (memory 1))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "memory-2-inf" (memory 3))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (memory 2 3))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (memory 2))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (memory 1 1))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "test" "func-i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "global-i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "print_i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "global_i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (memory 1))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "spectest" "memory" (memory 2))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (memory 1 1))) - "incompatible import type" -) - -(module - (import "spectest" "memory" (memory 0 3)) ;; actual has max size 2 - (func (export "grow") (param i32) (result i32) (memory.grow (get_local 0))) -) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const -1)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 2)) - - -;; Syntax errors - -(assert_malformed - (module quote "(func) (import \"\" \"\" (func))") - "import after function" -) -(assert_malformed - (module quote "(func) (import \"\" \"\" (global i64))") - "import after function" -) -(assert_malformed - (module quote "(func) (import \"\" \"\" (table 0 anyfunc))") - "import after function" -) -(assert_malformed - (module quote "(func) (import \"\" \"\" (memory 0))") - "import after function" -) - -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (func))") - "import after global" -) -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (global f32))") - "import after global" -) -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (table 0 anyfunc))") - "import after global" -) -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (memory 0))") - "import after global" -) - -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (func))") - "import after table" -) -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (global i32))") - "import after table" -) -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (table 0 anyfunc))") - "import after table" -) -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (memory 0))") - "import after table" -) - -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (func))") - "import after memory" -) -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (global i32))") - "import after memory" -) -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (table 1 3 anyfunc))") - "import after memory" -) -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (memory 1 2))") - "import after memory" -) - -;; This module is required to validate, regardless of whether it can be -;; linked. Overloading is not possible in wasm itself, but it is possible -;; in modules from which wasm can import. -(assert_unlinkable - (module - (import "not wasm" "overloaded" (func)) - (import "not wasm" "overloaded" (func (param i32))) - (import "not wasm" "overloaded" (func (param i32 i32))) - (import "not wasm" "overloaded" (func (param i64))) - (import "not wasm" "overloaded" (func (param f32))) - (import "not wasm" "overloaded" (func (param f64))) - (import "not wasm" "overloaded" (func (result i32))) - (import "not wasm" "overloaded" (func (result i64))) - (import "not wasm" "overloaded" (func (result f32))) - (import "not wasm" "overloaded" (func (result f64))) - (import "not wasm" "overloaded" (global i32)) - (import "not wasm" "overloaded" (global i64)) - (import "not wasm" "overloaded" (global f32)) - (import "not wasm" "overloaded" (global f64)) - (import "not wasm" "overloaded" (table 0 anyfunc)) - (import "not wasm" "overloaded" (memory 0)) - ) - "unknown import" -) diff --git a/tests/samples/inline-module.wast b/tests/samples/inline-module.wast deleted file mode 100644 index dc7ead7..0000000 --- a/tests/samples/inline-module.wast +++ /dev/null @@ -1 +0,0 @@ -(func) (memory 0) (func (export "f")) diff --git a/tests/samples/int_exprs.wast b/tests/samples/int_exprs.wast deleted file mode 100644 index 99396a8..0000000 --- a/tests/samples/int_exprs.wast +++ /dev/null @@ -1,350 +0,0 @@ -;; Test interesting integer "expressions". These tests contain code -;; patterns which tempt common value-changing optimizations. - -;; Test that x+1>n is not folded to x. - -(module - (func (export "i32.no_fold_shl_shr_s") (param $x i32) (result i32) - (i32.shr_s (i32.shl (get_local $x) (i32.const 1)) (i32.const 1))) - (func (export "i32.no_fold_shl_shr_u") (param $x i32) (result i32) - (i32.shr_u (i32.shl (get_local $x) (i32.const 1)) (i32.const 1))) - - (func (export "i64.no_fold_shl_shr_s") (param $x i64) (result i64) - (i64.shr_s (i64.shl (get_local $x) (i64.const 1)) (i64.const 1))) - (func (export "i64.no_fold_shl_shr_u") (param $x i64) (result i64) - (i64.shr_u (i64.shl (get_local $x) (i64.const 1)) (i64.const 1))) -) - -(assert_return (invoke "i32.no_fold_shl_shr_s" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "i32.no_fold_shl_shr_u" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "i64.no_fold_shl_shr_s" (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "i64.no_fold_shl_shr_u" (i64.const 0x8000000000000000)) (i64.const 0)) - -;; Test that x>>n<?,./ ") (result i32) (i32.const 6)) - - ;; Test that we can use names that have special meaning in JS. - (func (export "NaN") (result i32) (i32.const 7)) - (func (export "Infinity") (result i32) (i32.const 8)) - (func (export "if") (result i32) (i32.const 9)) - - ;; Test that we can use common libc names without conflict. - (func (export "malloc") (result i32) (i32.const 10)) - - ;; Test that we can use some libc hidden names without conflict. - (func (export "_malloc") (result i32) (i32.const 11)) - (func (export "__malloc") (result i32) (i32.const 12)) - - ;; Test that names are case-sensitive. - (func (export "a") (result i32) (i32.const 13)) - (func (export "A") (result i32) (i32.const 14)) - - ;; Test that UTF-8 BOM code points can appear in identifiers. - (func (export "") (result i32) (i32.const 15)) - - ;; Test that Unicode normalization is not applied. These function names - ;; contain different codepoints which normalize to the same thing under - ;; NFC or NFD. - (func (export "Å") (result i32) (i32.const 16)) - (func (export "Å") (result i32) (i32.const 17)) - (func (export "Å") (result i32) (i32.const 18)) - - ;; Test that Unicode compatibility normalization is not applied. These - ;; function names contain different codepoints which normalize to the - ;; same thing under NFKC or NFKD. - (func (export "ffi") (result i32) (i32.const 19)) - (func (export "ffi") (result i32) (i32.const 20)) - (func (export "ffi") (result i32) (i32.const 21)) - - ;; Test the C0 control codes. - (func (export "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f") (result i32) (i32.const 22)) - (func (export "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f") (result i32) (i32.const 23)) - ;; Test miscellaneous control codes. - (func (export " \7f") (result i32) (i32.const 24)) - ;; Test the C1 control codes. - (func (export "\c2\80\c2\81\c2\82\c2\83\c2\84\c2\85\c2\86\c2\87\c2\88\c2\89\c2\8a\c2\8b\c2\8c\c2\8d\c2\8e\c2\8f") (result i32) (i32.const 25)) - (func (export "\c2\90\c2\91\c2\92\c2\93\c2\94\c2\95\c2\96\c2\97\c2\98\c2\99\c2\9a\c2\9b\c2\9c\c2\9d\c2\9e\c2\9f") (result i32) (i32.const 26)) - ;; Test the Unicode Specials. - (func (export "\ef\bf\b0\ef\bf\b1\ef\bf\b2\ef\bf\b3\ef\bf\b4\ef\bf\b5\ef\bf\b6\ef\bf\b7") (result i32) (i32.const 27)) - (func (export "\ef\bf\b8\ef\bf\b9\ef\bf\ba\ef\bf\bb\ef\bf\bc\ef\bf\bd\ef\bf\be\ef\bf\bf") (result i32) (i32.const 28)) - - ;; Test that the control pictures are distinct from the control codes they - ;; depict. These correspond to the C0 and miscellaneous control code tests - ;; above. - (func (export "␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏") (result i32) (i32.const 29)) - (func (export "␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟") (result i32) (i32.const 30)) - (func (export "␠␡") (result i32) (i32.const 31)) - - ;; Test the Unicode Specials in non-escaped form (excluding U+FFFE and - ;; U+FFFF, so that generic tools don't detect this file as non-UTF-8). - (func (export "￰￱￲￳￴￵￶￷￸�") (result i32) (i32.const 32)) - - ;; Test a bare ZWJ code point. - (func (export "‍") (result i32) (i32.const 33)) - ;; Test a bare ZWNJ code point. - (func (export "‌") (result i32) (i32.const 34)) - - ;; Test various bare joiner code points. - (func (export "͏") (result i32) (i32.const 35)) - (func (export "⁠") (result i32) (i32.const 36)) - (func (export "⵿") (result i32) (i32.const 37)) - (func (export "𑁿") (result i32) (i32.const 38)) - (func (export "᠎") (result i32) (i32.const 39)) - - ;; Test various interesting code points: reverse BOM, zero-width space, - ;; no-break space, soft hyphen, word joiner, ogham space mark, - ;; right-to-left override, left-to-right override. - (func (export "￯​ ­⁠ ‮‭") (result i32) (i32.const 40)) - - ;; Test more interesting code points: left-to-right mark, right-to-left mark, - ;; non-breaking hyphen, line separator, paragraph separator, - ;; left-to-right embedding, right-to-left embedding, - ;; pop directional formatting, narrow no-break space, left-to-right isolate, - ;; right-to-left isolate, first strong isolate, pop directional isolate. - (func (export "‎‏‑

‪‫‬ ⁦⁧⁨⁩") (result i32) (i32.const 41)) - - ;; Test some deprecated code points: inhibit symmetric swapping, - ;; activate symmetric swapping, inhibit arabic form shaping, - ;; activate arabic form shaping, national digit shapes, nominal digit shapes. - (func (export "") (result i32) (i32.const 42)) - - ;; Test "invisible" operator code points. - (func (export "⁡⁢⁣⁤") (result i32) (i32.const 43)) - - ;; Test that code points outside the BMP are supported. - (func (export "𐀀󟿿􏿿") (result i32) (i32.const 44)) - - ;; Test that WebAssembly implementations cope in the presence of Zalgo. - (func (export "Z̴͇̫̥̪͓͈͔͎̗̞̺̯̱̞̙̱̜̖̠̏͆̆͛͌͘͞ḁ̶̰̳̭͙̲̱̹̝͎̼͗ͨ̎̄̆͗̿̀́͟͡l̶̷͉̩̹̫̝͖̙̲̼͇͚͍̮͎̥̞̈́͊͗ͦ̈́ͫ̇́̚ͅͅg̶͕͔͚̩̓̐̅ͮ̔̐̎̂̏̾͊̍͋͊ͧ́̆ͦ͞o̡͋̔͐ͪͩ͏̢̧̫̙̤̮͖͙͓̺̜̩̼̘̠́") (result i32) (i32.const 45)) - - ;; Test Hangul filler code points. - (func (export "ᅟᅠㅤᅠ") (result i32) (i32.const 46)) - - ;; Test variation selectors (which are also ID_Continue code points). - (func (export "︀") (result i32) (i32.const 47)) - (func (export "︄") (result i32) (i32.const 48)) - (func (export "󠄀") (result i32) (i32.const 49)) - (func (export "󠇯") (result i32) (i32.const 50)) - - ;; Test an uncombined combining code point. - (func (export "̈") (result i32) (i32.const 51)) - - ;; Test that numerous different present and historical representations of the - ;; "newline" concept are distinct. Tests largely inspired by: - ;; https://en.wikipedia.org/wiki/Newline#Representations - ;; https://en.wikipedia.org/wiki/Newline#Unicode and - ;; https://en.wikipedia.org/wiki/Newline#Reverse_and_partial_line_feeds - (func (export "\0a") (result i32) (i32.const 52)) - (func (export "␤") (result i32) (i32.const 53)) - (func (export "
") (result i32) (i32.const 54)) - (func (export "\0d") (result i32) (i32.const 55)) - (func (export "\0d\0a") (result i32) (i32.const 56)) - (func (export "\0a\0d") (result i32) (i32.const 57)) - (func (export "\1e") (result i32) (i32.const 58)) - (func (export "\0b") (result i32) (i32.const 59)) - (func (export "\0c") (result i32) (i32.const 60)) - (func (export "\c2\85") (result i32) (i32.const 61)) - (func (export "
") (result i32) (i32.const 62)) - (func (export "…") (result i32) (i32.const 63)) - (func (export "⏎") (result i32) (i32.const 64)) - (func (export "\c2\8b") (result i32) (i32.const 65)) - (func (export "\c2\8c") (result i32) (i32.const 66)) - (func (export "\c2\8d") (result i32) (i32.const 67)) - (func (export "↵") (result i32) (i32.const 68)) - (func (export "↩") (result i32) (i32.const 69)) - (func (export "⌤") (result i32) (i32.const 70)) - (func (export "⤶") (result i32) (i32.const 71)) - (func (export "↲") (result i32) (i32.const 72)) - (func (export "⮨") (result i32) (i32.const 73)) - (func (export "⮰") (result i32) (i32.const 74)) - - ;; Test that non-characters are not replaced by the replacement character. - (func (export "�") (result i32) (i32.const 75)) - (func (export "\ef\b7\90") (result i32) (i32.const 76)) - (func (export "\ef\b7\91") (result i32) (i32.const 77)) - (func (export "\ef\b7\92") (result i32) (i32.const 78)) - (func (export "\ef\b7\93") (result i32) (i32.const 79)) - (func (export "\ef\b7\94") (result i32) (i32.const 80)) - (func (export "\ef\b7\95") (result i32) (i32.const 81)) - (func (export "\ef\b7\96") (result i32) (i32.const 82)) - (func (export "\ef\b7\97") (result i32) (i32.const 83)) - (func (export "\ef\b7\98") (result i32) (i32.const 84)) - (func (export "\ef\b7\99") (result i32) (i32.const 85)) - (func (export "\ef\b7\9a") (result i32) (i32.const 86)) - (func (export "\ef\b7\9b") (result i32) (i32.const 87)) - (func (export "\ef\b7\9c") (result i32) (i32.const 88)) - (func (export "\ef\b7\9d") (result i32) (i32.const 89)) - (func (export "\ef\b7\9e") (result i32) (i32.const 90)) - (func (export "\ef\b7\9f") (result i32) (i32.const 91)) - (func (export "\ef\b7\a0") (result i32) (i32.const 92)) - (func (export "\ef\b7\a1") (result i32) (i32.const 93)) - (func (export "\ef\b7\a2") (result i32) (i32.const 94)) - (func (export "\ef\b7\a3") (result i32) (i32.const 95)) - (func (export "\ef\b7\a4") (result i32) (i32.const 96)) - (func (export "\ef\b7\a5") (result i32) (i32.const 97)) - (func (export "\ef\b7\a6") (result i32) (i32.const 98)) - (func (export "\ef\b7\a7") (result i32) (i32.const 99)) - (func (export "\ef\b7\a8") (result i32) (i32.const 100)) - (func (export "\ef\b7\a9") (result i32) (i32.const 101)) - (func (export "\ef\b7\aa") (result i32) (i32.const 102)) - (func (export "\ef\b7\ab") (result i32) (i32.const 103)) - (func (export "\ef\b7\ac") (result i32) (i32.const 104)) - (func (export "\ef\b7\ad") (result i32) (i32.const 105)) - (func (export "\ef\b7\ae") (result i32) (i32.const 106)) - (func (export "\ef\b7\af") (result i32) (i32.const 107)) - (func (export "\ef\bf\be") (result i32) (i32.const 108)) - (func (export "\ef\bf\bf") (result i32) (i32.const 109)) - (func (export "\f0\9f\bf\be") (result i32) (i32.const 110)) - (func (export "\f0\9f\bf\bf") (result i32) (i32.const 111)) - (func (export "\f0\af\bf\be") (result i32) (i32.const 112)) - (func (export "\f0\af\bf\bf") (result i32) (i32.const 113)) - (func (export "\f0\bf\bf\be") (result i32) (i32.const 114)) - (func (export "\f0\bf\bf\bf") (result i32) (i32.const 115)) - (func (export "\f1\8f\bf\be") (result i32) (i32.const 116)) - (func (export "\f1\8f\bf\bf") (result i32) (i32.const 117)) - (func (export "\f1\9f\bf\be") (result i32) (i32.const 118)) - (func (export "\f1\9f\bf\bf") (result i32) (i32.const 119)) - (func (export "\f1\af\bf\be") (result i32) (i32.const 120)) - (func (export "\f1\af\bf\bf") (result i32) (i32.const 121)) - (func (export "\f1\bf\bf\be") (result i32) (i32.const 122)) - (func (export "\f1\bf\bf\bf") (result i32) (i32.const 123)) - (func (export "\f2\8f\bf\be") (result i32) (i32.const 124)) - (func (export "\f2\8f\bf\bf") (result i32) (i32.const 125)) - (func (export "\f2\9f\bf\be") (result i32) (i32.const 126)) - (func (export "\f2\9f\bf\bf") (result i32) (i32.const 127)) - (func (export "\f2\af\bf\be") (result i32) (i32.const 128)) - (func (export "\f2\af\bf\bf") (result i32) (i32.const 129)) - (func (export "\f2\bf\bf\be") (result i32) (i32.const 130)) - (func (export "\f2\bf\bf\bf") (result i32) (i32.const 131)) - (func (export "\f3\8f\bf\be") (result i32) (i32.const 132)) - (func (export "\f3\8f\bf\bf") (result i32) (i32.const 133)) - (func (export "\f3\9f\bf\be") (result i32) (i32.const 134)) - (func (export "\f3\9f\bf\bf") (result i32) (i32.const 135)) - (func (export "\f3\af\bf\be") (result i32) (i32.const 136)) - (func (export "\f3\af\bf\bf") (result i32) (i32.const 137)) - (func (export "\f3\bf\bf\be") (result i32) (i32.const 138)) - (func (export "\f3\bf\bf\bf") (result i32) (i32.const 139)) - (func (export "\f4\8f\bf\be") (result i32) (i32.const 140)) - (func (export "\f4\8f\bf\bf") (result i32) (i32.const 141)) - - ;; Test an interrobang with combining diacritical marks above. - ;; https://xkcd.com/1209/ - (func (export "̈‽̈̉") (result i32) (i32.const 142)) - - ;; Test that RLM/LRM don't change the logical byte order. - (func (export "abc") (result i32) (i32.const 143)) - (func (export "‭abc") (result i32) (i32.const 144)) - (func (export "‮cba") (result i32) (i32.const 145)) - (func (export "‭abc‮") (result i32) (i32.const 146)) - (func (export "‮cba‭") (result i32) (i32.const 147)) - - ;; Test that Unicode font variations are preserved. - (func (export "𝑨") (result i32) (i32.const 148)) - (func (export "𝐴") (result i32) (i32.const 149)) - (func (export "𝘈") (result i32) (i32.const 150)) - (func (export "𝘼") (result i32) (i32.const 151)) - (func (export "𝐀") (result i32) (i32.const 152)) - (func (export "𝓐") (result i32) (i32.const 153)) - (func (export "𝕬") (result i32) (i32.const 154)) - (func (export "𝗔") (result i32) (i32.const 155)) - (func (export "𝒜") (result i32) (i32.const 156)) - (func (export "𝔄") (result i32) (i32.const 157)) - (func (export "𝔸") (result i32) (i32.const 158)) - (func (export "𝖠") (result i32) (i32.const 159)) - (func (export "𝙰") (result i32) (i32.const 160)) - (func (export "ᴀ") (result i32) (i32.const 161)) - - ;; Test that various additional letter variations are preserved. - ;; (U+0040, U+0061, U+0041, U+00C5, U+0041 U+030A, U+212B, and the font - ;; variations are covered above.) - (func (export "ᴬ") (result i32) (i32.const 162)) - (func (export "Ⓐ") (result i32) (i32.const 163)) - (func (export "A") (result i32) (i32.const 164)) - (func (export "🄐") (result i32) (i32.const 165)) - (func (export "🄰") (result i32) (i32.const 166)) - (func (export "󠁁") (result i32) (i32.const 167)) - (func (export "U+0041") (result i32) (i32.const 168)) - (func (export "A​") (result i32) (i32.const 169)) - (func (export "А") (result i32) (i32.const 170)) - (func (export "Ꙗ") (result i32) (i32.const 171)) - (func (export "ⷼ") (result i32) (i32.const 172)) - (func (export "ⷶ") (result i32) (i32.const 173)) - (func (export "Ɐ") (result i32) (i32.const 174)) - (func (export "🅐") (result i32) (i32.const 175)) - (func (export "🅰") (result i32) (i32.const 176)) - (func (export "Ⱝ") (result i32) (i32.const 177)) - (func (export "𐐂") (result i32) (i32.const 178)) - (func (export "𐐈") (result i32) (i32.const 179)) - (func (export "𐒰") (result i32) (i32.const 180)) - (func (export "À") (result i32) (i32.const 181)) - (func (export "Á") (result i32) (i32.const 182)) - (func (export "Â") (result i32) (i32.const 183)) - (func (export "Ã") (result i32) (i32.const 184)) - (func (export "Ä") (result i32) (i32.const 185)) - (func (export "Ā") (result i32) (i32.const 186)) - (func (export "Ă") (result i32) (i32.const 187)) - (func (export "Ą") (result i32) (i32.const 188)) - (func (export "Ǎ") (result i32) (i32.const 189)) - (func (export "Ǟ") (result i32) (i32.const 190)) - (func (export "Ǡ") (result i32) (i32.const 191)) - (func (export "Ǻ") (result i32) (i32.const 192)) - (func (export "Ȁ") (result i32) (i32.const 193)) - (func (export "Ȃ") (result i32) (i32.const 194)) - (func (export "Ȧ") (result i32) (i32.const 195)) - (func (export "Ⱥ") (result i32) (i32.const 196)) - (func (export "Ӑ") (result i32) (i32.const 197)) - (func (export "Ӓ") (result i32) (i32.const 198)) - (func (export "ߊ") (result i32) (i32.const 199)) - (func (export "ࠡ") (result i32) (i32.const 200)) - (func (export "ࠢ") (result i32) (i32.const 201)) - (func (export "ࠣ") (result i32) (i32.const 202)) - (func (export "ࠤ") (result i32) (i32.const 203)) - (func (export "ࠥ") (result i32) (i32.const 204)) - (func (export "ऄ") (result i32) (i32.const 205)) - (func (export "अ") (result i32) (i32.const 206)) - (func (export "ॲ") (result i32) (i32.const 207)) - (func (export "অ") (result i32) (i32.const 208)) - (func (export "ਅ") (result i32) (i32.const 209)) - (func (export "અ") (result i32) (i32.const 210)) - (func (export "ଅ") (result i32) (i32.const 211)) - (func (export "அ") (result i32) (i32.const 212)) - (func (export "అ") (result i32) (i32.const 213)) - (func (export "ಅ") (result i32) (i32.const 214)) - (func (export "അ") (result i32) (i32.const 215)) - (func (export "ะ") (result i32) (i32.const 216)) - (func (export "ະ") (result i32) (i32.const 217)) - (func (export "༁") (result i32) (i32.const 218)) - (func (export "ཨ") (result i32) (i32.const 219)) - (func (export "ྸ") (result i32) (i32.const 220)) - (func (export "အ") (result i32) (i32.const 221)) - (func (export "ဢ") (result i32) (i32.const 222)) - (func (export "ႜ") (result i32) (i32.const 223)) - (func (export "ᅡ") (result i32) (i32.const 224)) - (func (export "አ") (result i32) (i32.const 225)) - (func (export "ዐ") (result i32) (i32.const 226)) - (func (export "Ꭰ") (result i32) (i32.const 227)) - (func (export "ᐊ") (result i32) (i32.const 228)) - (func (export "ᖳ") (result i32) (i32.const 229)) - (func (export "ᚨ") (result i32) (i32.const 230)) - (func (export "ᚪ") (result i32) (i32.const 231)) - (func (export "ᛆ") (result i32) (i32.const 232)) - (func (export "ᜀ") (result i32) (i32.const 233)) - (func (export "ᜠ") (result i32) (i32.const 234)) - (func (export "ᝀ") (result i32) (i32.const 235)) - (func (export "ᝠ") (result i32) (i32.const 236)) - (func (export "ᠠ") (result i32) (i32.const 237)) - (func (export "ᢇ") (result i32) (i32.const 238)) - (func (export "ᤠ") (result i32) (i32.const 239)) - (func (export "ᥣ") (result i32) (i32.const 240)) - (func (export "ᨕ") (result i32) (i32.const 241)) - (func (export "ᩋ") (result i32) (i32.const 242)) - (func (export "ᩡ") (result i32) (i32.const 243)) - (func (export "ᮃ") (result i32) (i32.const 244)) - (func (export "ᯀ") (result i32) (i32.const 245)) - (func (export "ᯁ") (result i32) (i32.const 246)) - (func (export "ᰣ") (result i32) (i32.const 247)) - (func (export "Ḁ") (result i32) (i32.const 248)) - (func (export "Ạ") (result i32) (i32.const 249)) - (func (export "Ả") (result i32) (i32.const 250)) - (func (export "Ấ") (result i32) (i32.const 251)) - (func (export "Ầ") (result i32) (i32.const 252)) - (func (export "Ẩ") (result i32) (i32.const 253)) - (func (export "Ẫ") (result i32) (i32.const 254)) - (func (export "Ậ") (result i32) (i32.const 255)) - (func (export "Ắ") (result i32) (i32.const 256)) - (func (export "Ằ") (result i32) (i32.const 257)) - (func (export "Ẳ") (result i32) (i32.const 258)) - (func (export "Ẵ") (result i32) (i32.const 259)) - (func (export "Ặ") (result i32) (i32.const 260)) - (func (export "あ") (result i32) (i32.const 261)) - (func (export "ア") (result i32) (i32.const 262)) - (func (export "ㄚ") (result i32) (i32.const 263)) - (func (export "ㅏ") (result i32) (i32.const 264)) - (func (export "㈎") (result i32) (i32.const 265)) - (func (export "㈏") (result i32) (i32.const 266)) - (func (export "㈐") (result i32) (i32.const 267)) - (func (export "㈑") (result i32) (i32.const 268)) - (func (export "㈒") (result i32) (i32.const 269)) - (func (export "㈓") (result i32) (i32.const 270)) - (func (export "㈔") (result i32) (i32.const 271)) - (func (export "㈕") (result i32) (i32.const 272)) - (func (export "㈖") (result i32) (i32.const 273)) - (func (export "㈗") (result i32) (i32.const 274)) - (func (export "㈘") (result i32) (i32.const 275)) - (func (export "㈙") (result i32) (i32.const 276)) - (func (export "㈚") (result i32) (i32.const 277)) - (func (export "㈛") (result i32) (i32.const 278)) - (func (export "㉮") (result i32) (i32.const 279)) - (func (export "㉯") (result i32) (i32.const 280)) - (func (export "㉰") (result i32) (i32.const 281)) - (func (export "㉱") (result i32) (i32.const 282)) - (func (export "㉲") (result i32) (i32.const 283)) - (func (export "㉳") (result i32) (i32.const 284)) - (func (export "㉴") (result i32) (i32.const 285)) - (func (export "㉵") (result i32) (i32.const 286)) - (func (export "㉶") (result i32) (i32.const 287)) - (func (export "㉷") (result i32) (i32.const 288)) - (func (export "㉸") (result i32) (i32.const 289)) - (func (export "㉹") (result i32) (i32.const 290)) - (func (export "㉺") (result i32) (i32.const 291)) - (func (export "㉻") (result i32) (i32.const 292)) - (func (export "㋐") (result i32) (i32.const 293)) - (func (export "ꀊ") (result i32) (i32.const 294)) - (func (export "ꓮ") (result i32) (i32.const 295)) - (func (export "ꕉ") (result i32) (i32.const 296)) - (func (export "ꚠ") (result i32) (i32.const 297)) - (func (export "ꠀ") (result i32) (i32.const 298)) - (func (export "ꠣ") (result i32) (i32.const 299)) - (func (export "ꡝ") (result i32) (i32.const 300)) - (func (export "ꢂ") (result i32) (i32.const 301)) - (func (export "꣪") (result i32) (i32.const 302)) - (func (export "ꤢ") (result i32) (i32.const 303)) - (func (export "ꥆ") (result i32) (i32.const 304)) - (func (export "ꦄ") (result i32) (i32.const 305)) - (func (export "ꨀ") (result i32) (i32.const 306)) - (func (export "ア") (result i32) (i32.const 307)) - (func (export "ᅡ") (result i32) (i32.const 308)) - (func (export "𐀀") (result i32) (i32.const 309)) - (func (export "𐊀") (result i32) (i32.const 310)) - (func (export "𐊠") (result i32) (i32.const 311)) - (func (export "𐌀") (result i32) (i32.const 312)) - (func (export "𐎠") (result i32) (i32.const 313)) - (func (export "𐒖") (result i32) (i32.const 314)) - (func (export "𐔀") (result i32) (i32.const 315)) - (func (export "𐝀") (result i32) (i32.const 316)) - (func (export "𐠀") (result i32) (i32.const 317)) - (func (export "𐤠") (result i32) (i32.const 318)) - (func (export "𐦀") (result i32) (i32.const 319)) - (func (export "𐦠") (result i32) (i32.const 320)) - (func (export "𐨀") (result i32) (i32.const 321)) - (func (export "𐬀") (result i32) (i32.const 322)) - (func (export "𐰀") (result i32) (i32.const 323)) - (func (export "𐰁") (result i32) (i32.const 324)) - (func (export "𐲀") (result i32) (i32.const 325)) - (func (export "𑀅") (result i32) (i32.const 326)) - (func (export "𑂃") (result i32) (i32.const 327)) - (func (export "𑄧") (result i32) (i32.const 328)) - (func (export "𑅐") (result i32) (i32.const 329)) - (func (export "𑆃") (result i32) (i32.const 330)) - (func (export "𑈀") (result i32) (i32.const 331)) - (func (export "𑊀") (result i32) (i32.const 332)) - (func (export "𑊰") (result i32) (i32.const 333)) - (func (export "𑌅") (result i32) (i32.const 334)) - (func (export "𑍰") (result i32) (i32.const 335)) - (func (export "𑐀") (result i32) (i32.const 336)) - (func (export "𑒁") (result i32) (i32.const 337)) - (func (export "𑖀") (result i32) (i32.const 338)) - (func (export "𑘀") (result i32) (i32.const 339)) - (func (export "𑚀") (result i32) (i32.const 340)) - (func (export "𑜒") (result i32) (i32.const 341)) - (func (export "𑜠") (result i32) (i32.const 342)) - (func (export "𑢡") (result i32) (i32.const 343)) - (func (export "𑫕") (result i32) (i32.const 344)) - (func (export "𑰀") (result i32) (i32.const 345)) - (func (export "𑲏") (result i32) (i32.const 346)) - (func (export "𑲯") (result i32) (i32.const 347)) - (func (export "𒀀") (result i32) (i32.const 348)) - (func (export "𖧕") (result i32) (i32.const 349)) - (func (export "𖩆") (result i32) (i32.const 350)) - (func (export "𖫧") (result i32) (i32.const 351)) - (func (export "𖽔") (result i32) (i32.const 352)) - (func (export "𛱁") (result i32) (i32.const 353)) - (func (export "𛱤") (result i32) (i32.const 354)) - (func (export "𞠣") (result i32) (i32.const 355)) - (func (export "🇦") (result i32) (i32.const 356)) - (func (export "Ɑ") (result i32) (i32.const 357)) - (func (export "Λ") (result i32) (i32.const 358)) - (func (export "Ɒ") (result i32) (i32.const 359)) - (func (export "ª") (result i32) (i32.const 360)) - (func (export "∀") (result i32) (i32.const 361)) - (func (export "₳") (result i32) (i32.const 362)) - (func (export "𐤀") (result i32) (i32.const 363)) - (func (export "Ⲁ") (result i32) (i32.const 364)) - (func (export "𐌰") (result i32) (i32.const 365)) - (func (export "Ά") (result i32) (i32.const 366)) - (func (export "Α") (result i32) (i32.const 367)) - (func (export "Ἀ") (result i32) (i32.const 368)) - (func (export "Ἁ") (result i32) (i32.const 369)) - (func (export "Ἂ") (result i32) (i32.const 370)) - (func (export "Ἃ") (result i32) (i32.const 371)) - (func (export "Ἄ") (result i32) (i32.const 372)) - (func (export "Ἅ") (result i32) (i32.const 373)) - (func (export "Ἆ") (result i32) (i32.const 374)) - (func (export "Ἇ") (result i32) (i32.const 375)) - (func (export "ᾈ") (result i32) (i32.const 376)) - (func (export "ᾉ") (result i32) (i32.const 377)) - (func (export "ᾊ") (result i32) (i32.const 378)) - (func (export "ᾋ") (result i32) (i32.const 379)) - (func (export "ᾌ") (result i32) (i32.const 380)) - (func (export "ᾍ") (result i32) (i32.const 381)) - (func (export "ᾎ") (result i32) (i32.const 382)) - (func (export "ᾏ") (result i32) (i32.const 383)) - (func (export "Ᾰ") (result i32) (i32.const 384)) - (func (export "Ᾱ") (result i32) (i32.const 385)) - (func (export "Ὰ") (result i32) (i32.const 386)) - (func (export "Ά") (result i32) (i32.const 387)) - (func (export "ᾼ") (result i32) (i32.const 388)) - (func (export "𝚨") (result i32) (i32.const 389)) - (func (export "𝛢") (result i32) (i32.const 390)) - (func (export "𝜜") (result i32) (i32.const 391)) - (func (export "𝝖") (result i32) (i32.const 392)) - (func (export "𝞐") (result i32) (i32.const 393)) - (func (export "⍶") (result i32) (i32.const 394)) - (func (export "⍺") (result i32) (i32.const 395)) - (func (export "⩜") (result i32) (i32.const 396)) - (func (export "ᗅ") (result i32) (i32.const 397)) - (func (export "Ꭺ") (result i32) (i32.const 398)) - - ;; Test unmatched "closing" and "opening" code points. - (func (export ")˺˼𔗏𝅴𝅶𝅸𝅺⁾₎❩❫⟯﴿︶﹚)⦆󠀩❳❵⟧⟩⟫⟭⦈⦊⦖⸣⸥︘︸︺︼︾﹀﹂﹄﹈﹜﹞]}」󠁝󠁽»’”›❯") (result i32) (i32.const 399)) - (func (export "(˹˻𔗎𝅳𝅵𝅷𝅹⁽₍❨❪⟮﴾︵﹙(⦅󠀨❲❴⟦⟨⟪⟬⦇⦉⦕⸢⸤︗︷︹︻︽︿﹁﹃﹇﹛﹝[{「󠁛󠁻«‘“‹❮") (result i32) (i32.const 400)) - (func (export "𝪋𝪤") (result i32) (i32.const 401)) - (func (export "𝪋") (result i32) (i32.const 402)) - - ;; Test that Unicode fraction normalization is not applied. - (func (export "½") (result i32) (i32.const 403)) - (func (export "1⁄2") (result i32) (i32.const 404)) - (func (export "1/2") (result i32) (i32.const 405)) - (func (export "୳") (result i32) (i32.const 406)) - (func (export "൴") (result i32) (i32.const 407)) - (func (export "⳽") (result i32) (i32.const 408)) - (func (export "꠱") (result i32) (i32.const 409)) - (func (export "𐅁") (result i32) (i32.const 410)) - (func (export "𐅵") (result i32) (i32.const 411)) - (func (export "𐅶") (result i32) (i32.const 412)) - (func (export "𐦽") (result i32) (i32.const 413)) - (func (export "𐹻") (result i32) (i32.const 414)) - - ;; Test a full-width quote. - (func (export """) (result i32) (i32.const 415)) - - ;; Test that different present and historical representations of the "delete" - ;; concept are distinct. - (func (export "\7f") (result i32) (i32.const 416)) - (func (export "\08") (result i32) (i32.const 417)) - (func (export "⌫") (result i32) (i32.const 418)) - (func (export "⌦") (result i32) (i32.const 419)) - (func (export "␈") (result i32) (i32.const 420)) - (func (export "␡") (result i32) (i32.const 421)) - (func (export "᷻") (result i32) (i32.const 422)) - (func (export "\0f") (result i32) (i32.const 423)) - (func (export "←") (result i32) (i32.const 424)) - (func (export "⌧") (result i32) (i32.const 425)) - (func (export "⍒") (result i32) (i32.const 426)) - (func (export "⍔") (result i32) (i32.const 427)) - (func (export "⍢") (result i32) (i32.const 428)) - (func (export "⍫") (result i32) (i32.const 429)) - - ;; Test that different representations of the "substitute" concept are - ;; distinct. (U+FFFD is covered above.) - (func (export "\1a") (result i32) (i32.const 430)) - (func (export "␦") (result i32) (i32.const 431)) - (func (export "␚") (result i32) (i32.const 432)) - (func (export "") (result i32) (i32.const 433)) - (func (export "?") (result i32) (i32.const 434)) - (func (export "¿") (result i32) (i32.const 435)) - (func (export "᥅") (result i32) (i32.const 436)) - (func (export ";") (result i32) (i32.const 437)) - (func (export "՞") (result i32) (i32.const 438)) - (func (export "؟") (result i32) (i32.const 439)) - (func (export "፧") (result i32) (i32.const 440)) - (func (export "⁇") (result i32) (i32.const 441)) - (func (export "⍰") (result i32) (i32.const 442)) - (func (export "❓") (result i32) (i32.const 443)) - (func (export "❔") (result i32) (i32.const 444)) - (func (export "⳺") (result i32) (i32.const 445)) - (func (export "⳻") (result i32) (i32.const 446)) - (func (export "⸮") (result i32) (i32.const 447)) - (func (export "㉄") (result i32) (i32.const 448)) - (func (export "꘏") (result i32) (i32.const 449)) - (func (export "꛷") (result i32) (i32.const 450)) - (func (export "︖") (result i32) (i32.const 451)) - (func (export "﹖") (result i32) (i32.const 452)) - (func (export "?") (result i32) (i32.const 453)) - (func (export "𑅃") (result i32) (i32.const 454)) - (func (export "𞥟") (result i32) (i32.const 455)) - (func (export "󠀿") (result i32) (i32.const 456)) - (func (export "𖡄") (result i32) (i32.const 457)) - (func (export "⯑") (result i32) (i32.const 458)) - - ;; Test that different present and historical representations of the - ;; "paragraph" concept are distinct. (U+2029 is covered above). - (func (export "¶") (result i32) (i32.const 459)) - (func (export "⁋") (result i32) (i32.const 460)) - (func (export "܀") (result i32) (i32.const 461)) - (func (export "჻") (result i32) (i32.const 462)) - (func (export "፨") (result i32) (i32.const 463)) - (func (export "〷") (result i32) (i32.const 464)) - (func (export "❡") (result i32) (i32.const 465)) - (func (export "⸏") (result i32) (i32.const 466)) - (func (export "⸐") (result i32) (i32.const 467)) - (func (export "⸑") (result i32) (i32.const 468)) - (func (export "⸎") (result i32) (i32.const 469)) - (func (export "\14") (result i32) (i32.const 470)) ;; ¶ in CP437 - (func (export "☙") (result i32) (i32.const 471)) -) - -(assert_return (invoke "") (i32.const 0)) -(assert_return (invoke "0") (i32.const 1)) -(assert_return (invoke "-0") (i32.const 2)) -(assert_return (invoke "_") (i32.const 3)) -(assert_return (invoke "$") (i32.const 4)) -(assert_return (invoke "@") (i32.const 5)) -(assert_return (invoke "~!@#$%^&*()_+`-={}|[]\\:\";'<>?,./ ") (i32.const 6)) -(assert_return (invoke "NaN") (i32.const 7)) -(assert_return (invoke "Infinity") (i32.const 8)) -(assert_return (invoke "if") (i32.const 9)) -(assert_return (invoke "malloc") (i32.const 10)) -(assert_return (invoke "_malloc") (i32.const 11)) -(assert_return (invoke "__malloc") (i32.const 12)) -(assert_return (invoke "a") (i32.const 13)) -(assert_return (invoke "A") (i32.const 14)) -(assert_return (invoke "") (i32.const 15)) -(assert_return (invoke "Å") (i32.const 16)) -(assert_return (invoke "Å") (i32.const 17)) -(assert_return (invoke "Å") (i32.const 18)) -(assert_return (invoke "ffi") (i32.const 19)) -(assert_return (invoke "ffi") (i32.const 20)) -(assert_return (invoke "ffi") (i32.const 21)) -(assert_return (invoke "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f") (i32.const 22)) -(assert_return (invoke "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f") (i32.const 23)) -(assert_return (invoke " \7f") (i32.const 24)) -(assert_return (invoke "\c2\80\c2\81\c2\82\c2\83\c2\84\c2\85\c2\86\c2\87\c2\88\c2\89\c2\8a\c2\8b\c2\8c\c2\8d\c2\8e\c2\8f") (i32.const 25)) -(assert_return (invoke "\c2\90\c2\91\c2\92\c2\93\c2\94\c2\95\c2\96\c2\97\c2\98\c2\99\c2\9a\c2\9b\c2\9c\c2\9d\c2\9e\c2\9f") (i32.const 26)) -(assert_return (invoke "\ef\bf\b0\ef\bf\b1\ef\bf\b2\ef\bf\b3\ef\bf\b4\ef\bf\b5\ef\bf\b6\ef\bf\b7") (i32.const 27)) -(assert_return (invoke "\ef\bf\b8\ef\bf\b9\ef\bf\ba\ef\bf\bb\ef\bf\bc\ef\bf\bd\ef\bf\be\ef\bf\bf") (i32.const 28)) -(assert_return (invoke "␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏") (i32.const 29)) -(assert_return (invoke "␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟") (i32.const 30)) -(assert_return (invoke "␠␡") (i32.const 31)) -(assert_return (invoke "￰￱￲￳￴￵￶￷￸�") (i32.const 32)) -(assert_return (invoke "‍") (i32.const 33)) -(assert_return (invoke "‌") (i32.const 34)) -(assert_return (invoke "͏") (i32.const 35)) -(assert_return (invoke "⁠") (i32.const 36)) -(assert_return (invoke "⵿") (i32.const 37)) -(assert_return (invoke "𑁿") (i32.const 38)) -(assert_return (invoke "᠎") (i32.const 39)) -(assert_return (invoke "￯​ ­⁠ ‮‭") (i32.const 40)) -(assert_return (invoke "‎‏‑

‪‫‬ ⁦⁧⁨⁩") (i32.const 41)) -(assert_return (invoke "") (i32.const 42)) -(assert_return (invoke "⁡⁢⁣⁤") (i32.const 43)) -(assert_return (invoke "𐀀󟿿􏿿") (i32.const 44)) -(assert_return (invoke "Z̴͇̫̥̪͓͈͔͎̗̞̺̯̱̞̙̱̜̖̠̏͆̆͛͌͘͞ḁ̶̰̳̭͙̲̱̹̝͎̼͗ͨ̎̄̆͗̿̀́͟͡l̶̷͉̩̹̫̝͖̙̲̼͇͚͍̮͎̥̞̈́͊͗ͦ̈́ͫ̇́̚ͅͅg̶͕͔͚̩̓̐̅ͮ̔̐̎̂̏̾͊̍͋͊ͧ́̆ͦ͞o̡͋̔͐ͪͩ͏̢̧̫̙̤̮͖͙͓̺̜̩̼̘̠́") (i32.const 45)) -(assert_return (invoke "ᅟᅠㅤᅠ") (i32.const 46)) -(assert_return (invoke "︀") (i32.const 47)) -(assert_return (invoke "︄") (i32.const 48)) -(assert_return (invoke "󠄀") (i32.const 49)) -(assert_return (invoke "󠇯") (i32.const 50)) -(assert_return (invoke "̈") (i32.const 51)) -(assert_return (invoke "\0a") (i32.const 52)) -(assert_return (invoke "␤") (i32.const 53)) -(assert_return (invoke "
") (i32.const 54)) -(assert_return (invoke "\0d") (i32.const 55)) -(assert_return (invoke "\0d\0a") (i32.const 56)) -(assert_return (invoke "\0a\0d") (i32.const 57)) -(assert_return (invoke "\1e") (i32.const 58)) -(assert_return (invoke "\0b") (i32.const 59)) -(assert_return (invoke "\0c") (i32.const 60)) -(assert_return (invoke "\c2\85") (i32.const 61)) -(assert_return (invoke "
") (i32.const 62)) -(assert_return (invoke "…") (i32.const 63)) -(assert_return (invoke "⏎") (i32.const 64)) -(assert_return (invoke "\c2\8b") (i32.const 65)) -(assert_return (invoke "\c2\8c") (i32.const 66)) -(assert_return (invoke "\c2\8d") (i32.const 67)) -(assert_return (invoke "↵") (i32.const 68)) -(assert_return (invoke "↩") (i32.const 69)) -(assert_return (invoke "⌤") (i32.const 70)) -(assert_return (invoke "⤶") (i32.const 71)) -(assert_return (invoke "↲") (i32.const 72)) -(assert_return (invoke "⮨") (i32.const 73)) -(assert_return (invoke "⮰") (i32.const 74)) -(assert_return (invoke "�") (i32.const 75)) -(assert_return (invoke "\ef\b7\90") (i32.const 76)) -(assert_return (invoke "\ef\b7\91") (i32.const 77)) -(assert_return (invoke "\ef\b7\92") (i32.const 78)) -(assert_return (invoke "\ef\b7\93") (i32.const 79)) -(assert_return (invoke "\ef\b7\94") (i32.const 80)) -(assert_return (invoke "\ef\b7\95") (i32.const 81)) -(assert_return (invoke "\ef\b7\96") (i32.const 82)) -(assert_return (invoke "\ef\b7\97") (i32.const 83)) -(assert_return (invoke "\ef\b7\98") (i32.const 84)) -(assert_return (invoke "\ef\b7\99") (i32.const 85)) -(assert_return (invoke "\ef\b7\9a") (i32.const 86)) -(assert_return (invoke "\ef\b7\9b") (i32.const 87)) -(assert_return (invoke "\ef\b7\9c") (i32.const 88)) -(assert_return (invoke "\ef\b7\9d") (i32.const 89)) -(assert_return (invoke "\ef\b7\9e") (i32.const 90)) -(assert_return (invoke "\ef\b7\9f") (i32.const 91)) -(assert_return (invoke "\ef\b7\a0") (i32.const 92)) -(assert_return (invoke "\ef\b7\a1") (i32.const 93)) -(assert_return (invoke "\ef\b7\a2") (i32.const 94)) -(assert_return (invoke "\ef\b7\a3") (i32.const 95)) -(assert_return (invoke "\ef\b7\a4") (i32.const 96)) -(assert_return (invoke "\ef\b7\a5") (i32.const 97)) -(assert_return (invoke "\ef\b7\a6") (i32.const 98)) -(assert_return (invoke "\ef\b7\a7") (i32.const 99)) -(assert_return (invoke "\ef\b7\a8") (i32.const 100)) -(assert_return (invoke "\ef\b7\a9") (i32.const 101)) -(assert_return (invoke "\ef\b7\aa") (i32.const 102)) -(assert_return (invoke "\ef\b7\ab") (i32.const 103)) -(assert_return (invoke "\ef\b7\ac") (i32.const 104)) -(assert_return (invoke "\ef\b7\ad") (i32.const 105)) -(assert_return (invoke "\ef\b7\ae") (i32.const 106)) -(assert_return (invoke "\ef\b7\af") (i32.const 107)) -(assert_return (invoke "\ef\bf\be") (i32.const 108)) -(assert_return (invoke "\ef\bf\bf") (i32.const 109)) -(assert_return (invoke "\f0\9f\bf\be") (i32.const 110)) -(assert_return (invoke "\f0\9f\bf\bf") (i32.const 111)) -(assert_return (invoke "\f0\af\bf\be") (i32.const 112)) -(assert_return (invoke "\f0\af\bf\bf") (i32.const 113)) -(assert_return (invoke "\f0\bf\bf\be") (i32.const 114)) -(assert_return (invoke "\f0\bf\bf\bf") (i32.const 115)) -(assert_return (invoke "\f1\8f\bf\be") (i32.const 116)) -(assert_return (invoke "\f1\8f\bf\bf") (i32.const 117)) -(assert_return (invoke "\f1\9f\bf\be") (i32.const 118)) -(assert_return (invoke "\f1\9f\bf\bf") (i32.const 119)) -(assert_return (invoke "\f1\af\bf\be") (i32.const 120)) -(assert_return (invoke "\f1\af\bf\bf") (i32.const 121)) -(assert_return (invoke "\f1\bf\bf\be") (i32.const 122)) -(assert_return (invoke "\f1\bf\bf\bf") (i32.const 123)) -(assert_return (invoke "\f2\8f\bf\be") (i32.const 124)) -(assert_return (invoke "\f2\8f\bf\bf") (i32.const 125)) -(assert_return (invoke "\f2\9f\bf\be") (i32.const 126)) -(assert_return (invoke "\f2\9f\bf\bf") (i32.const 127)) -(assert_return (invoke "\f2\af\bf\be") (i32.const 128)) -(assert_return (invoke "\f2\af\bf\bf") (i32.const 129)) -(assert_return (invoke "\f2\bf\bf\be") (i32.const 130)) -(assert_return (invoke "\f2\bf\bf\bf") (i32.const 131)) -(assert_return (invoke "\f3\8f\bf\be") (i32.const 132)) -(assert_return (invoke "\f3\8f\bf\bf") (i32.const 133)) -(assert_return (invoke "\f3\9f\bf\be") (i32.const 134)) -(assert_return (invoke "\f3\9f\bf\bf") (i32.const 135)) -(assert_return (invoke "\f3\af\bf\be") (i32.const 136)) -(assert_return (invoke "\f3\af\bf\bf") (i32.const 137)) -(assert_return (invoke "\f3\bf\bf\be") (i32.const 138)) -(assert_return (invoke "\f3\bf\bf\bf") (i32.const 139)) -(assert_return (invoke "\f4\8f\bf\be") (i32.const 140)) -(assert_return (invoke "\f4\8f\bf\bf") (i32.const 141)) -(assert_return (invoke "̈‽̈̉") (i32.const 142)) -(assert_return (invoke "abc") (i32.const 143)) -(assert_return (invoke "‭abc") (i32.const 144)) -(assert_return (invoke "‮cba") (i32.const 145)) -(assert_return (invoke "‭abc‮") (i32.const 146)) -(assert_return (invoke "‮cba‭") (i32.const 147)) -(assert_return (invoke "𝑨") (i32.const 148)) -(assert_return (invoke "𝐴") (i32.const 149)) -(assert_return (invoke "𝘈") (i32.const 150)) -(assert_return (invoke "𝘼") (i32.const 151)) -(assert_return (invoke "𝐀") (i32.const 152)) -(assert_return (invoke "𝓐") (i32.const 153)) -(assert_return (invoke "𝕬") (i32.const 154)) -(assert_return (invoke "𝗔") (i32.const 155)) -(assert_return (invoke "𝒜") (i32.const 156)) -(assert_return (invoke "𝔄") (i32.const 157)) -(assert_return (invoke "𝔸") (i32.const 158)) -(assert_return (invoke "𝖠") (i32.const 159)) -(assert_return (invoke "𝙰") (i32.const 160)) -(assert_return (invoke "ᴀ") (i32.const 161)) -(assert_return (invoke "ᴬ") (i32.const 162)) -(assert_return (invoke "Ⓐ") (i32.const 163)) -(assert_return (invoke "A") (i32.const 164)) -(assert_return (invoke "🄐") (i32.const 165)) -(assert_return (invoke "🄰") (i32.const 166)) -(assert_return (invoke "󠁁") (i32.const 167)) -(assert_return (invoke "U+0041") (i32.const 168)) -(assert_return (invoke "A​") (i32.const 169)) -(assert_return (invoke "А") (i32.const 170)) -(assert_return (invoke "Ꙗ") (i32.const 171)) -(assert_return (invoke "ⷼ") (i32.const 172)) -(assert_return (invoke "ⷶ") (i32.const 173)) -(assert_return (invoke "Ɐ") (i32.const 174)) -(assert_return (invoke "🅐") (i32.const 175)) -(assert_return (invoke "🅰") (i32.const 176)) -(assert_return (invoke "Ⱝ") (i32.const 177)) -(assert_return (invoke "𐐂") (i32.const 178)) -(assert_return (invoke "𐐈") (i32.const 179)) -(assert_return (invoke "𐒰") (i32.const 180)) -(assert_return (invoke "À") (i32.const 181)) -(assert_return (invoke "Á") (i32.const 182)) -(assert_return (invoke "Â") (i32.const 183)) -(assert_return (invoke "Ã") (i32.const 184)) -(assert_return (invoke "Ä") (i32.const 185)) -(assert_return (invoke "Ā") (i32.const 186)) -(assert_return (invoke "Ă") (i32.const 187)) -(assert_return (invoke "Ą") (i32.const 188)) -(assert_return (invoke "Ǎ") (i32.const 189)) -(assert_return (invoke "Ǟ") (i32.const 190)) -(assert_return (invoke "Ǡ") (i32.const 191)) -(assert_return (invoke "Ǻ") (i32.const 192)) -(assert_return (invoke "Ȁ") (i32.const 193)) -(assert_return (invoke "Ȃ") (i32.const 194)) -(assert_return (invoke "Ȧ") (i32.const 195)) -(assert_return (invoke "Ⱥ") (i32.const 196)) -(assert_return (invoke "Ӑ") (i32.const 197)) -(assert_return (invoke "Ӓ") (i32.const 198)) -(assert_return (invoke "ߊ") (i32.const 199)) -(assert_return (invoke "ࠡ") (i32.const 200)) -(assert_return (invoke "ࠢ") (i32.const 201)) -(assert_return (invoke "ࠣ") (i32.const 202)) -(assert_return (invoke "ࠤ") (i32.const 203)) -(assert_return (invoke "ࠥ") (i32.const 204)) -(assert_return (invoke "ऄ") (i32.const 205)) -(assert_return (invoke "अ") (i32.const 206)) -(assert_return (invoke "ॲ") (i32.const 207)) -(assert_return (invoke "অ") (i32.const 208)) -(assert_return (invoke "ਅ") (i32.const 209)) -(assert_return (invoke "અ") (i32.const 210)) -(assert_return (invoke "ଅ") (i32.const 211)) -(assert_return (invoke "அ") (i32.const 212)) -(assert_return (invoke "అ") (i32.const 213)) -(assert_return (invoke "ಅ") (i32.const 214)) -(assert_return (invoke "അ") (i32.const 215)) -(assert_return (invoke "ะ") (i32.const 216)) -(assert_return (invoke "ະ") (i32.const 217)) -(assert_return (invoke "༁") (i32.const 218)) -(assert_return (invoke "ཨ") (i32.const 219)) -(assert_return (invoke "ྸ") (i32.const 220)) -(assert_return (invoke "အ") (i32.const 221)) -(assert_return (invoke "ဢ") (i32.const 222)) -(assert_return (invoke "ႜ") (i32.const 223)) -(assert_return (invoke "ᅡ") (i32.const 224)) -(assert_return (invoke "አ") (i32.const 225)) -(assert_return (invoke "ዐ") (i32.const 226)) -(assert_return (invoke "Ꭰ") (i32.const 227)) -(assert_return (invoke "ᐊ") (i32.const 228)) -(assert_return (invoke "ᖳ") (i32.const 229)) -(assert_return (invoke "ᚨ") (i32.const 230)) -(assert_return (invoke "ᚪ") (i32.const 231)) -(assert_return (invoke "ᛆ") (i32.const 232)) -(assert_return (invoke "ᜀ") (i32.const 233)) -(assert_return (invoke "ᜠ") (i32.const 234)) -(assert_return (invoke "ᝀ") (i32.const 235)) -(assert_return (invoke "ᝠ") (i32.const 236)) -(assert_return (invoke "ᠠ") (i32.const 237)) -(assert_return (invoke "ᢇ") (i32.const 238)) -(assert_return (invoke "ᤠ") (i32.const 239)) -(assert_return (invoke "ᥣ") (i32.const 240)) -(assert_return (invoke "ᨕ") (i32.const 241)) -(assert_return (invoke "ᩋ") (i32.const 242)) -(assert_return (invoke "ᩡ") (i32.const 243)) -(assert_return (invoke "ᮃ") (i32.const 244)) -(assert_return (invoke "ᯀ") (i32.const 245)) -(assert_return (invoke "ᯁ") (i32.const 246)) -(assert_return (invoke "ᰣ") (i32.const 247)) -(assert_return (invoke "Ḁ") (i32.const 248)) -(assert_return (invoke "Ạ") (i32.const 249)) -(assert_return (invoke "Ả") (i32.const 250)) -(assert_return (invoke "Ấ") (i32.const 251)) -(assert_return (invoke "Ầ") (i32.const 252)) -(assert_return (invoke "Ẩ") (i32.const 253)) -(assert_return (invoke "Ẫ") (i32.const 254)) -(assert_return (invoke "Ậ") (i32.const 255)) -(assert_return (invoke "Ắ") (i32.const 256)) -(assert_return (invoke "Ằ") (i32.const 257)) -(assert_return (invoke "Ẳ") (i32.const 258)) -(assert_return (invoke "Ẵ") (i32.const 259)) -(assert_return (invoke "Ặ") (i32.const 260)) -(assert_return (invoke "あ") (i32.const 261)) -(assert_return (invoke "ア") (i32.const 262)) -(assert_return (invoke "ㄚ") (i32.const 263)) -(assert_return (invoke "ㅏ") (i32.const 264)) -(assert_return (invoke "㈎") (i32.const 265)) -(assert_return (invoke "㈏") (i32.const 266)) -(assert_return (invoke "㈐") (i32.const 267)) -(assert_return (invoke "㈑") (i32.const 268)) -(assert_return (invoke "㈒") (i32.const 269)) -(assert_return (invoke "㈓") (i32.const 270)) -(assert_return (invoke "㈔") (i32.const 271)) -(assert_return (invoke "㈕") (i32.const 272)) -(assert_return (invoke "㈖") (i32.const 273)) -(assert_return (invoke "㈗") (i32.const 274)) -(assert_return (invoke "㈘") (i32.const 275)) -(assert_return (invoke "㈙") (i32.const 276)) -(assert_return (invoke "㈚") (i32.const 277)) -(assert_return (invoke "㈛") (i32.const 278)) -(assert_return (invoke "㉮") (i32.const 279)) -(assert_return (invoke "㉯") (i32.const 280)) -(assert_return (invoke "㉰") (i32.const 281)) -(assert_return (invoke "㉱") (i32.const 282)) -(assert_return (invoke "㉲") (i32.const 283)) -(assert_return (invoke "㉳") (i32.const 284)) -(assert_return (invoke "㉴") (i32.const 285)) -(assert_return (invoke "㉵") (i32.const 286)) -(assert_return (invoke "㉶") (i32.const 287)) -(assert_return (invoke "㉷") (i32.const 288)) -(assert_return (invoke "㉸") (i32.const 289)) -(assert_return (invoke "㉹") (i32.const 290)) -(assert_return (invoke "㉺") (i32.const 291)) -(assert_return (invoke "㉻") (i32.const 292)) -(assert_return (invoke "㋐") (i32.const 293)) -(assert_return (invoke "ꀊ") (i32.const 294)) -(assert_return (invoke "ꓮ") (i32.const 295)) -(assert_return (invoke "ꕉ") (i32.const 296)) -(assert_return (invoke "ꚠ") (i32.const 297)) -(assert_return (invoke "ꠀ") (i32.const 298)) -(assert_return (invoke "ꠣ") (i32.const 299)) -(assert_return (invoke "ꡝ") (i32.const 300)) -(assert_return (invoke "ꢂ") (i32.const 301)) -(assert_return (invoke "꣪") (i32.const 302)) -(assert_return (invoke "ꤢ") (i32.const 303)) -(assert_return (invoke "ꥆ") (i32.const 304)) -(assert_return (invoke "ꦄ") (i32.const 305)) -(assert_return (invoke "ꨀ") (i32.const 306)) -(assert_return (invoke "ア") (i32.const 307)) -(assert_return (invoke "ᅡ") (i32.const 308)) -(assert_return (invoke "𐀀") (i32.const 309)) -(assert_return (invoke "𐊀") (i32.const 310)) -(assert_return (invoke "𐊠") (i32.const 311)) -(assert_return (invoke "𐌀") (i32.const 312)) -(assert_return (invoke "𐎠") (i32.const 313)) -(assert_return (invoke "𐒖") (i32.const 314)) -(assert_return (invoke "𐔀") (i32.const 315)) -(assert_return (invoke "𐝀") (i32.const 316)) -(assert_return (invoke "𐠀") (i32.const 317)) -(assert_return (invoke "𐤠") (i32.const 318)) -(assert_return (invoke "𐦀") (i32.const 319)) -(assert_return (invoke "𐦠") (i32.const 320)) -(assert_return (invoke "𐨀") (i32.const 321)) -(assert_return (invoke "𐬀") (i32.const 322)) -(assert_return (invoke "𐰀") (i32.const 323)) -(assert_return (invoke "𐰁") (i32.const 324)) -(assert_return (invoke "𐲀") (i32.const 325)) -(assert_return (invoke "𑀅") (i32.const 326)) -(assert_return (invoke "𑂃") (i32.const 327)) -(assert_return (invoke "𑄧") (i32.const 328)) -(assert_return (invoke "𑅐") (i32.const 329)) -(assert_return (invoke "𑆃") (i32.const 330)) -(assert_return (invoke "𑈀") (i32.const 331)) -(assert_return (invoke "𑊀") (i32.const 332)) -(assert_return (invoke "𑊰") (i32.const 333)) -(assert_return (invoke "𑌅") (i32.const 334)) -(assert_return (invoke "𑍰") (i32.const 335)) -(assert_return (invoke "𑐀") (i32.const 336)) -(assert_return (invoke "𑒁") (i32.const 337)) -(assert_return (invoke "𑖀") (i32.const 338)) -(assert_return (invoke "𑘀") (i32.const 339)) -(assert_return (invoke "𑚀") (i32.const 340)) -(assert_return (invoke "𑜒") (i32.const 341)) -(assert_return (invoke "𑜠") (i32.const 342)) -(assert_return (invoke "𑢡") (i32.const 343)) -(assert_return (invoke "𑫕") (i32.const 344)) -(assert_return (invoke "𑰀") (i32.const 345)) -(assert_return (invoke "𑲏") (i32.const 346)) -(assert_return (invoke "𑲯") (i32.const 347)) -(assert_return (invoke "𒀀") (i32.const 348)) -(assert_return (invoke "𖧕") (i32.const 349)) -(assert_return (invoke "𖩆") (i32.const 350)) -(assert_return (invoke "𖫧") (i32.const 351)) -(assert_return (invoke "𖽔") (i32.const 352)) -(assert_return (invoke "𛱁") (i32.const 353)) -(assert_return (invoke "𛱤") (i32.const 354)) -(assert_return (invoke "𞠣") (i32.const 355)) -(assert_return (invoke "🇦") (i32.const 356)) -(assert_return (invoke "Ɑ") (i32.const 357)) -(assert_return (invoke "Λ") (i32.const 358)) -(assert_return (invoke "Ɒ") (i32.const 359)) -(assert_return (invoke "ª") (i32.const 360)) -(assert_return (invoke "∀") (i32.const 361)) -(assert_return (invoke "₳") (i32.const 362)) -(assert_return (invoke "𐤀") (i32.const 363)) -(assert_return (invoke "Ⲁ") (i32.const 364)) -(assert_return (invoke "𐌰") (i32.const 365)) -(assert_return (invoke "Ά") (i32.const 366)) -(assert_return (invoke "Α") (i32.const 367)) -(assert_return (invoke "Ἀ") (i32.const 368)) -(assert_return (invoke "Ἁ") (i32.const 369)) -(assert_return (invoke "Ἂ") (i32.const 370)) -(assert_return (invoke "Ἃ") (i32.const 371)) -(assert_return (invoke "Ἄ") (i32.const 372)) -(assert_return (invoke "Ἅ") (i32.const 373)) -(assert_return (invoke "Ἆ") (i32.const 374)) -(assert_return (invoke "Ἇ") (i32.const 375)) -(assert_return (invoke "ᾈ") (i32.const 376)) -(assert_return (invoke "ᾉ") (i32.const 377)) -(assert_return (invoke "ᾊ") (i32.const 378)) -(assert_return (invoke "ᾋ") (i32.const 379)) -(assert_return (invoke "ᾌ") (i32.const 380)) -(assert_return (invoke "ᾍ") (i32.const 381)) -(assert_return (invoke "ᾎ") (i32.const 382)) -(assert_return (invoke "ᾏ") (i32.const 383)) -(assert_return (invoke "Ᾰ") (i32.const 384)) -(assert_return (invoke "Ᾱ") (i32.const 385)) -(assert_return (invoke "Ὰ") (i32.const 386)) -(assert_return (invoke "Ά") (i32.const 387)) -(assert_return (invoke "ᾼ") (i32.const 388)) -(assert_return (invoke "𝚨") (i32.const 389)) -(assert_return (invoke "𝛢") (i32.const 390)) -(assert_return (invoke "𝜜") (i32.const 391)) -(assert_return (invoke "𝝖") (i32.const 392)) -(assert_return (invoke "𝞐") (i32.const 393)) -(assert_return (invoke "⍶") (i32.const 394)) -(assert_return (invoke "⍺") (i32.const 395)) -(assert_return (invoke "⩜") (i32.const 396)) -(assert_return (invoke "ᗅ") (i32.const 397)) -(assert_return (invoke "Ꭺ") (i32.const 398)) -(assert_return (invoke ")˺˼𔗏𝅴𝅶𝅸𝅺⁾₎❩❫⟯﴿︶﹚)⦆󠀩❳❵⟧⟩⟫⟭⦈⦊⦖⸣⸥︘︸︺︼︾﹀﹂﹄﹈﹜﹞]}」󠁝󠁽»’”›❯") (i32.const 399)) -(assert_return (invoke "(˹˻𔗎𝅳𝅵𝅷𝅹⁽₍❨❪⟮﴾︵﹙(⦅󠀨❲❴⟦⟨⟪⟬⦇⦉⦕⸢⸤︗︷︹︻︽︿﹁﹃﹇﹛﹝[{「󠁛󠁻«‘“‹❮") (i32.const 400)) -(assert_return (invoke "𝪋𝪤") (i32.const 401)) -(assert_return (invoke "𝪋") (i32.const 402)) -(assert_return (invoke "½") (i32.const 403)) -(assert_return (invoke "1⁄2") (i32.const 404)) -(assert_return (invoke "1/2") (i32.const 405)) -(assert_return (invoke "୳") (i32.const 406)) -(assert_return (invoke "൴") (i32.const 407)) -(assert_return (invoke "⳽") (i32.const 408)) -(assert_return (invoke "꠱") (i32.const 409)) -(assert_return (invoke "𐅁") (i32.const 410)) -(assert_return (invoke "𐅵") (i32.const 411)) -(assert_return (invoke "𐅶") (i32.const 412)) -(assert_return (invoke "𐦽") (i32.const 413)) -(assert_return (invoke "𐹻") (i32.const 414)) -(assert_return (invoke """) (i32.const 415)) -(assert_return (invoke "\7f") (i32.const 416)) -(assert_return (invoke "\08") (i32.const 417)) -(assert_return (invoke "⌫") (i32.const 418)) -(assert_return (invoke "⌦") (i32.const 419)) -(assert_return (invoke "␈") (i32.const 420)) -(assert_return (invoke "␡") (i32.const 421)) -(assert_return (invoke "᷻") (i32.const 422)) -(assert_return (invoke "\0f") (i32.const 423)) -(assert_return (invoke "←") (i32.const 424)) -(assert_return (invoke "⌧") (i32.const 425)) -(assert_return (invoke "⍒") (i32.const 426)) -(assert_return (invoke "⍔") (i32.const 427)) -(assert_return (invoke "⍢") (i32.const 428)) -(assert_return (invoke "⍫") (i32.const 429)) -(assert_return (invoke "\1a") (i32.const 430)) -(assert_return (invoke "␦") (i32.const 431)) -(assert_return (invoke "␚") (i32.const 432)) -(assert_return (invoke "") (i32.const 433)) -(assert_return (invoke "?") (i32.const 434)) -(assert_return (invoke "¿") (i32.const 435)) -(assert_return (invoke "᥅") (i32.const 436)) -(assert_return (invoke ";") (i32.const 437)) -(assert_return (invoke "՞") (i32.const 438)) -(assert_return (invoke "؟") (i32.const 439)) -(assert_return (invoke "፧") (i32.const 440)) -(assert_return (invoke "⁇") (i32.const 441)) -(assert_return (invoke "⍰") (i32.const 442)) -(assert_return (invoke "❓") (i32.const 443)) -(assert_return (invoke "❔") (i32.const 444)) -(assert_return (invoke "⳺") (i32.const 445)) -(assert_return (invoke "⳻") (i32.const 446)) -(assert_return (invoke "⸮") (i32.const 447)) -(assert_return (invoke "㉄") (i32.const 448)) -(assert_return (invoke "꘏") (i32.const 449)) -(assert_return (invoke "꛷") (i32.const 450)) -(assert_return (invoke "︖") (i32.const 451)) -(assert_return (invoke "﹖") (i32.const 452)) -(assert_return (invoke "?") (i32.const 453)) -(assert_return (invoke "𑅃") (i32.const 454)) -(assert_return (invoke "𞥟") (i32.const 455)) -(assert_return (invoke "󠀿") (i32.const 456)) -(assert_return (invoke "𖡄") (i32.const 457)) -(assert_return (invoke "⯑") (i32.const 458)) -(assert_return (invoke "¶") (i32.const 459)) -(assert_return (invoke "⁋") (i32.const 460)) -(assert_return (invoke "܀") (i32.const 461)) -(assert_return (invoke "჻") (i32.const 462)) -(assert_return (invoke "፨") (i32.const 463)) -(assert_return (invoke "〷") (i32.const 464)) -(assert_return (invoke "❡") (i32.const 465)) -(assert_return (invoke "⸏") (i32.const 466)) -(assert_return (invoke "⸐") (i32.const 467)) -(assert_return (invoke "⸑") (i32.const 468)) -(assert_return (invoke "⸎") (i32.const 469)) -(assert_return (invoke "\14") (i32.const 470)) -(assert_return (invoke "☙") (i32.const 471)) - -(module - ;; Test that we can use indices instead of names to reference imports, - ;; exports, functions and parameters. - (import "spectest" "print_i32" (func (param i32))) - (func (import "spectest" "print_i32") (param i32)) - (func (param i32) (param i32) - (call 0 (get_local 0)) - (call 1 (get_local 1)) - ) - (export "print32" (func 2)) -) - -(assert_return (invoke "print32" (i32.const 42) (i32.const 123))) diff --git a/tests/samples/nop.wast b/tests/samples/nop.wast deleted file mode 100644 index 02b4028..0000000 --- a/tests/samples/nop.wast +++ /dev/null @@ -1,264 +0,0 @@ -;; Test `nop` operator. - -(module - ;; Auxiliary definitions - (func $dummy) - (func $3-ary (param i32 i32 i32) (result i32) - get_local 0 get_local 1 get_local 2 i32.sub i32.add - ) - (memory 1) - - (func (export "as-func-first") (result i32) - (nop) (i32.const 1) - ) - (func (export "as-func-mid") (result i32) - (call $dummy) (nop) (i32.const 2) - ) - (func (export "as-func-last") (result i32) - (call $dummy) (i32.const 3) (nop) - ) - (func (export "as-func-everywhere") (result i32) - (nop) (nop) (call $dummy) (nop) (i32.const 4) (nop) (nop) - ) - - (func (export "as-drop-last") (param i32) - (get_local 0) (nop) (drop) - ) - (func (export "as-drop-everywhere") (param i32) - (nop) (nop) (get_local 0) (nop) (nop) (drop) - ) - - (func (export "as-select-mid1") (param i32) (result i32) - (get_local 0) (nop) (get_local 0) (get_local 0) (select) - ) - (func (export "as-select-mid2") (param i32) (result i32) - (get_local 0) (get_local 0) (nop) (get_local 0) (select) - ) - (func (export "as-select-last") (param i32) (result i32) - (get_local 0) (get_local 0) (get_local 0) (nop) (select) - ) - (func (export "as-select-everywhere") (param i32) (result i32) - (nop) (get_local 0) (nop) (nop) (get_local 0) - (nop) (nop) (get_local 0) (nop) (nop) (select) - ) - - (func (export "as-block-first") (result i32) - (block (result i32) (nop) (i32.const 2)) - ) - (func (export "as-block-mid") (result i32) - (block (result i32) (call $dummy) (nop) (i32.const 2)) - ) - (func (export "as-block-last") (result i32) - (block (result i32) (nop) (call $dummy) (i32.const 3) (nop)) - ) - (func (export "as-block-everywhere") (result i32) - (block (result i32) - (nop) (nop) (call $dummy) (nop) (i32.const 4) (nop) (nop) - ) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (nop) (i32.const 2)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) (call $dummy) (nop) (i32.const 2)) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) (call $dummy) (i32.const 3) (nop)) - ) - (func (export "as-loop-everywhere") (result i32) - (loop (result i32) - (nop) (nop) (call $dummy) (nop) (i32.const 4) (nop) (nop) - ) - ) - - (func (export "as-if-condition") (param i32) - (get_local 0) (nop) (if (then (call $dummy))) - ) - (func (export "as-if-then") (param i32) - (if (get_local 0) (then (nop)) (else (call $dummy))) - ) - (func (export "as-if-else") (param i32) - (if (get_local 0) (then (call $dummy)) (else (nop))) - ) - - (func (export "as-br-last") (param i32) (result i32) - (block (result i32) (get_local 0) (nop) (br 0)) - ) - (func (export "as-br-everywhere") (param i32) (result i32) - (block (result i32) (nop) (nop) (get_local 0) (nop) (nop) (br 0)) - ) - - (func (export "as-br_if-mid") (param i32) (result i32) - (block (result i32) (get_local 0) (nop) (get_local 0) (br_if 0)) - ) - (func (export "as-br_if-last") (param i32) (result i32) - (block (result i32) (get_local 0) (get_local 0) (nop) (br_if 0)) - ) - (func (export "as-br_if-everywhere") (param i32) (result i32) - (block (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) - (br_if 0) - ) - ) - - (func (export "as-br_table-mid") (param i32) (result i32) - (block (result i32) (get_local 0) (nop) (get_local 0) (br_table 0 0)) - ) - (func (export "as-br_table-last") (param i32) (result i32) - (block (result i32) (get_local 0) (get_local 0) (nop) (br_table 0 0)) - ) - (func (export "as-br_table-everywhere") (param i32) (result i32) - (block (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) - (br_table 0 0) - ) - ) - - (func (export "as-return-last") (param i32) (result i32) - (get_local 0) (nop) (return) - ) - (func (export "as-return-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (return) - ) - - (func (export "as-call-mid1") (param i32 i32 i32) (result i32) - (get_local 0) (nop) (get_local 1) (get_local 2) (call $3-ary) - ) - (func (export "as-call-mid2") (param i32 i32 i32) (result i32) - (get_local 0) (get_local 1) (nop) (get_local 2) (call $3-ary) - ) - (func (export "as-call-last") (param i32 i32 i32) (result i32) - (get_local 0) (get_local 1) (get_local 2) (nop) (call $3-ary) - ) - (func (export "as-call-everywhere") (param i32 i32 i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (get_local 1) - (nop) (nop) (get_local 2) (nop) (nop) (call $3-ary) - ) - - ;; TODO(stack): call_indirect, *_local, load*, store* - - (func (export "as-unary-last") (param i32) (result i32) - (get_local 0) (nop) (i32.ctz) - ) - (func (export "as-unary-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (i32.ctz) - ) - - (func (export "as-binary-mid") (param i32) (result i32) - (get_local 0) (nop) (get_local 0) (i32.add) - ) - (func (export "as-binary-last") (param i32) (result i32) - (get_local 0) (get_local 0) (nop) (i32.add) - ) - (func (export "as-binary-everywhere") (param i32) (result i32) - (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) (i32.add) - ) - - (func (export "as-test-last") (param i32) (result i32) - (get_local 0) (nop) (i32.eqz) - ) - (func (export "as-test-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) i32.eqz - ) - - (func (export "as-compare-mid") (param i32) (result i32) - (get_local 0) (nop) (get_local 0) (i32.ne) - ) - (func (export "as-compare-last") (param i32) (result i32) - (get_local 0) (get_local 0) (nop) (i32.lt_u) - ) - (func (export "as-compare-everywhere") (param i32) (result i32) - (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) (i32.le_s) - ) - - (func (export "as-memory.grow-last") (param i32) (result i32) - (get_local 0) (nop) (memory.grow) - ) - (func (export "as-memory.grow-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (memory.grow) - ) -) - -(assert_return (invoke "as-func-first") (i32.const 1)) -(assert_return (invoke "as-func-mid") (i32.const 2)) -(assert_return (invoke "as-func-last") (i32.const 3)) -(assert_return (invoke "as-func-everywhere") (i32.const 4)) - -(assert_return (invoke "as-drop-last" (i32.const 0))) -(assert_return (invoke "as-drop-everywhere" (i32.const 0))) - -(assert_return (invoke "as-select-mid1" (i32.const 3)) (i32.const 3)) -(assert_return (invoke "as-select-mid2" (i32.const 3)) (i32.const 3)) -(assert_return (invoke "as-select-last" (i32.const 3)) (i32.const 3)) -(assert_return (invoke "as-select-everywhere" (i32.const 3)) (i32.const 3)) - -(assert_return (invoke "as-block-first") (i32.const 2)) -(assert_return (invoke "as-block-mid") (i32.const 2)) -(assert_return (invoke "as-block-last") (i32.const 3)) -(assert_return (invoke "as-block-everywhere") (i32.const 4)) - -(assert_return (invoke "as-loop-first") (i32.const 2)) -(assert_return (invoke "as-loop-mid") (i32.const 2)) -(assert_return (invoke "as-loop-last") (i32.const 3)) -(assert_return (invoke "as-loop-everywhere") (i32.const 4)) - -(assert_return (invoke "as-if-condition" (i32.const 0))) -(assert_return (invoke "as-if-condition" (i32.const -1))) -(assert_return (invoke "as-if-then" (i32.const 0))) -(assert_return (invoke "as-if-then" (i32.const 4))) -(assert_return (invoke "as-if-else" (i32.const 0))) -(assert_return (invoke "as-if-else" (i32.const 3))) - -(assert_return (invoke "as-br-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-br-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-br_if-mid" (i32.const 5)) (i32.const 5)) -(assert_return (invoke "as-br_if-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-br_if-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-br_table-mid" (i32.const 5)) (i32.const 5)) -(assert_return (invoke "as-br_table-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-br_table-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-return-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-return-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-call-mid1" (i32.const 3) (i32.const 1) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "as-call-mid2" (i32.const 0) (i32.const 3) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-call-last" (i32.const 10) (i32.const 9) (i32.const -1)) (i32.const 20)) -(assert_return (invoke "as-call-everywhere" (i32.const 2) (i32.const 1) (i32.const 5)) (i32.const -2)) - -(assert_return (invoke "as-unary-last" (i32.const 30)) (i32.const 1)) -(assert_return (invoke "as-unary-everywhere" (i32.const 12)) (i32.const 2)) - -(assert_return (invoke "as-binary-mid" (i32.const 3)) (i32.const 6)) -(assert_return (invoke "as-binary-last" (i32.const 3)) (i32.const 6)) -(assert_return (invoke "as-binary-everywhere" (i32.const 3)) (i32.const 6)) - -(assert_return (invoke "as-test-last" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-test-everywhere" (i32.const 0)) (i32.const 1)) - -(assert_return (invoke "as-compare-mid" (i32.const 3)) (i32.const 0)) -(assert_return (invoke "as-compare-last" (i32.const 3)) (i32.const 0)) -(assert_return (invoke "as-compare-everywhere" (i32.const 3)) (i32.const 1)) - -(assert_return (invoke "as-memory.grow-last" (i32.const 2)) (i32.const 1)) -(assert_return (invoke "as-memory.grow-everywhere" (i32.const 12)) (i32.const 3)) - -(assert_invalid - (module (func $type-i32 (result i32) (nop))) - "type mismatch" -) -(assert_invalid - (module (func $type-i64 (result i64) (nop))) - "type mismatch" -) -(assert_invalid - (module (func $type-f32 (result f32) (nop))) - "type mismatch" -) -(assert_invalid - (module (func $type-f64 (result f64) (nop))) - "type mismatch" -) diff --git a/tests/samples/resizing.wast b/tests/samples/resizing.wast deleted file mode 100644 index 183332e..0000000 --- a/tests/samples/resizing.wast +++ /dev/null @@ -1,60 +0,0 @@ -(module - (memory 0) - - (func (export "load_at_zero") (result i32) (i32.load (i32.const 0))) - (func (export "store_at_zero") (i32.store (i32.const 0) (i32.const 2))) - - (func (export "load_at_page_size") (result i32) (i32.load (i32.const 0x10000))) - (func (export "store_at_page_size") (i32.store (i32.const 0x10000) (i32.const 3))) - - (func (export "grow") (param $sz i32) (result i32) (memory.grow (get_local $sz))) - (func (export "size") (result i32) (memory.size)) -) - -(assert_return (invoke "size") (i32.const 0)) -(assert_trap (invoke "store_at_zero") "out of bounds memory access") -(assert_trap (invoke "load_at_zero") "out of bounds memory access") -(assert_trap (invoke "store_at_page_size") "out of bounds memory access") -(assert_trap (invoke "load_at_page_size") "out of bounds memory access") -(assert_return (invoke "grow" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "size") (i32.const 1)) -(assert_return (invoke "load_at_zero") (i32.const 0)) -(assert_return (invoke "store_at_zero")) -(assert_return (invoke "load_at_zero") (i32.const 2)) -(assert_trap (invoke "store_at_page_size") "out of bounds memory access") -(assert_trap (invoke "load_at_page_size") "out of bounds memory access") -(assert_return (invoke "grow" (i32.const 4)) (i32.const 1)) -(assert_return (invoke "size") (i32.const 5)) -(assert_return (invoke "load_at_zero") (i32.const 2)) -(assert_return (invoke "store_at_zero")) -(assert_return (invoke "load_at_zero") (i32.const 2)) -(assert_return (invoke "load_at_page_size") (i32.const 0)) -(assert_return (invoke "store_at_page_size")) -(assert_return (invoke "load_at_page_size") (i32.const 3)) - - -(module - (memory 0) - (func (export "grow") (param i32) (result i32) (memory.grow (get_local 0))) -) - -(assert_return (invoke "grow" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 2)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 800)) (i32.const 3)) -(assert_return (invoke "grow" (i32.const 0x10000)) (i32.const -1)) - -(module - (memory 0 10) - (func (export "grow") (param i32) (result i32) (memory.grow (get_local 0))) -) - -(assert_return (invoke "grow" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 2)) (i32.const 2)) -(assert_return (invoke "grow" (i32.const 6)) (i32.const 4)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 10)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const -1)) -(assert_return (invoke "grow" (i32.const 0x10000)) (i32.const -1)) diff --git a/tests/samples/return.wast b/tests/samples/return.wast deleted file mode 100644 index 727680a..0000000 --- a/tests/samples/return.wast +++ /dev/null @@ -1,295 +0,0 @@ -;; Test `return` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") (drop (i32.ctz (return)))) - (func (export "type-i64") (drop (i64.ctz (return)))) - (func (export "type-f32") (drop (f32.neg (return)))) - (func (export "type-f64") (drop (f64.neg (return)))) - - (func (export "nullary") (return)) - (func (export "unary") (result f64) (return (f64.const 3))) - - (func (export "as-func-first") (result i32) - (return (i32.const 1)) (i32.const 2) - ) - (func (export "as-func-mid") (result i32) - (call $dummy) (return (i32.const 2)) (i32.const 3) - ) - (func (export "as-func-last") - (nop) (call $dummy) (return) - ) - (func (export "as-func-value") (result i32) - (nop) (call $dummy) (return (i32.const 3)) - ) - - (func (export "as-block-first") - (block (return) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (return) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (return)) - ) - (func (export "as-block-value") (result i32) - (block (result i32) (nop) (call $dummy) (return (i32.const 2))) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (return (i32.const 3)) (i32.const 2)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) (call $dummy) (return (i32.const 4)) (i32.const 2)) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) (nop) (call $dummy) (return (i32.const 5))) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (return (i32.const 9)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (return))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (return (i32.const 8)) (i32.const 1))) (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (return (i32.const 9)))) (i32.const 7) - ) - ) - - (func (export "as-br_table-index") (result i64) - (block (br_table 0 0 0 (return (i64.const 9)))) (i64.const -1) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (return (i32.const 10)) (i32.const 1)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (return (i32.const 11))) (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (return (return (i64.const 7))) - ) - - (func (export "as-if-cond") (result i32) - (if (result i32) - (return (i32.const 2)) (then (i32.const 0)) (else (i32.const 1)) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (if (result i32) - (get_local 0) (then (return (i32.const 3))) (else (get_local 1)) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (if (result i32) - (get_local 0) (then (get_local 1)) (else (return (i32.const 4))) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (select (return (i32.const 5)) (get_local 0) (get_local 1)) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (select (get_local 0) (return (i32.const 6)) (get_local 1)) - ) - (func (export "as-select-cond") (result i32) - (select (i32.const 0) (i32.const 1) (return (i32.const 7))) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (call $f (return (i32.const 12)) (i32.const 2) (i32.const 3)) - ) - (func (export "as-call-mid") (result i32) - (call $f (i32.const 1) (return (i32.const 13)) (i32.const 3)) - ) - (func (export "as-call-last") (result i32) - (call $f (i32.const 1) (i32.const 2) (return (i32.const 14))) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table anyfunc (elem $f)) - (func (export "as-call_indirect-func") (result i32) - (call_indirect (type $sig) - (return (i32.const 20)) (i32.const 1) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-first") (result i32) - (call_indirect (type $sig) - (i32.const 0) (return (i32.const 21)) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (return (i32.const 22)) (i32.const 3) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) (return (i32.const 23)) - ) - ) - - (func (export "as-set_local-value") (result i32) (local f32) - (set_local 0 (return (i32.const 17))) (i32.const -1) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (f32.load (return (f32.const 1.7))) - ) - (func (export "as-loadN-address") (result i64) - (i64.load8_s (return (i64.const 30))) - ) - - (func (export "as-store-address") (result i32) - (f64.store (return (i32.const 30)) (f64.const 7)) (i32.const -1) - ) - (func (export "as-store-value") (result i32) - (i64.store (i32.const 2) (return (i32.const 31))) (i32.const -1) - ) - - (func (export "as-storeN-address") (result i32) - (i32.store8 (return (i32.const 32)) (i32.const 7)) (i32.const -1) - ) - (func (export "as-storeN-value") (result i32) - (i64.store16 (i32.const 2) (return (i32.const 33))) (i32.const -1) - ) - - (func (export "as-unary-operand") (result f32) - (f32.neg (return (f32.const 3.4))) - ) - - (func (export "as-binary-left") (result i32) - (i32.add (return (i32.const 3)) (i32.const 10)) - ) - (func (export "as-binary-right") (result i64) - (i64.sub (i64.const 10) (return (i64.const 45))) - ) - - (func (export "as-test-operand") (result i32) - (i32.eqz (return (i32.const 44))) - ) - - (func (export "as-compare-left") (result i32) - (f64.le (return (i32.const 43)) (f64.const 10)) - ) - (func (export "as-compare-right") (result i32) - (f32.ne (f32.const 10) (return (i32.const 42))) - ) - - (func (export "as-convert-operand") (result i32) - (i32.wrap/i64 (return (i32.const 41))) - ) - - (func (export "as-memory.grow-size") (result i32) - (memory.grow (return (i32.const 40))) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "nullary")) -(assert_return (invoke "unary") (f64.const 3)) - -(assert_return (invoke "as-func-first") (i32.const 1)) -(assert_return (invoke "as-func-mid") (i32.const 2)) -(assert_return (invoke "as-func-last")) -(assert_return (invoke "as-func-value") (i32.const 3)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index") (i64.const 9)) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-func") (i32.const 20)) -(assert_return (invoke "as-call_indirect-first") (i32.const 21)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 22)) -(assert_return (invoke "as-call_indirect-last") (i32.const 23)) - -(assert_return (invoke "as-set_local-value") (i32.const 17)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_invalid - (module (func $type-value-empty-vs-num (result f64) (return))) - "type mismatch" -) -(assert_invalid - (module (func $type-value-void-vs-num (result f64) (return (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-num (result f64) (return (i64.const 1)))) - "type mismatch" -) - diff --git a/tests/samples/select.wast b/tests/samples/select.wast deleted file mode 100644 index 4dfa456..0000000 --- a/tests/samples/select.wast +++ /dev/null @@ -1,67 +0,0 @@ -(module - (func (export "select_i32") (param $lhs i32) (param $rhs i32) (param $cond i32) (result i32) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - (func (export "select_i64") (param $lhs i64) (param $rhs i64) (param $cond i32) (result i64) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - (func (export "select_f32") (param $lhs f32) (param $rhs f32) (param $cond i32) (result f32) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - (func (export "select_f64") (param $lhs f64) (param $rhs f64) (param $cond i32) (result f64) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - ;; Check that both sides of the select are evaluated - (func (export "select_trap_l") (param $cond i32) (result i32) - (select (unreachable) (i32.const 0) (get_local $cond)) - ) - (func (export "select_trap_r") (param $cond i32) (result i32) - (select (i32.const 0) (unreachable) (get_local $cond)) - ) - - (func (export "select_unreached") - (unreachable) (select) - (unreachable) (i32.const 0) (select) - (unreachable) (i32.const 0) (i32.const 0) (select) - (unreachable) (f32.const 0) (i32.const 0) (select) - (unreachable) - ) -) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) -(assert_return (invoke "select_f32" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) -(assert_return (invoke "select_f64" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) -(assert_return (invoke "select_i32" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) - -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) - -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) - -(assert_trap (invoke "select_trap_l" (i32.const 1)) "unreachable executed") -(assert_trap (invoke "select_trap_l" (i32.const 0)) "unreachable executed") -(assert_trap (invoke "select_trap_r" (i32.const 1)) "unreachable executed") -(assert_trap (invoke "select_trap_r" (i32.const 0)) "unreachable executed") - -(assert_invalid - (module (func $arity-0 (select (nop) (nop) (i32.const 1)))) - "type mismatch" -) diff --git a/tests/samples/set_local.wast b/tests/samples/set_local.wast deleted file mode 100644 index 5a006e1..0000000 --- a/tests/samples/set_local.wast +++ /dev/null @@ -1,205 +0,0 @@ -;; Test `set_local` operator - -(module - ;; Typing - - (func (export "type-local-i32") (local i32) (set_local 0 (i32.const 0))) - (func (export "type-local-i64") (local i64) (set_local 0 (i64.const 0))) - (func (export "type-local-f32") (local f32) (set_local 0 (f32.const 0))) - (func (export "type-local-f64") (local f64) (set_local 0 (f64.const 0))) - - (func (export "type-param-i32") (param i32) (set_local 0 (i32.const 10))) - (func (export "type-param-i64") (param i64) (set_local 0 (i64.const 11))) - (func (export "type-param-f32") (param f32) (set_local 0 (f32.const 11.1))) - (func (export "type-param-f64") (param f64) (set_local 0 (f64.const 12.2))) - - (func (export "type-mixed") (param i64 f32 f64 i32 i32) (local f32 i64 i64 f64) - (set_local 0 (i64.const 0)) - (set_local 1 (f32.const 0)) - (set_local 2 (f64.const 0)) - (set_local 3 (i32.const 0)) - (set_local 4 (i32.const 0)) - (set_local 5 (f32.const 0)) - (set_local 6 (i64.const 0)) - (set_local 7 (i64.const 0)) - (set_local 8 (f64.const 0)) - ) - - ;; Writing - - (func (export "write") (param i64 f32 f64 i32 i32) (result i64) - (local f32 i64 i64 f64) - (set_local 1 (f32.const -0.3)) - (set_local 3 (i32.const 40)) - (set_local 4 (i32.const -7)) - (set_local 5 (f32.const 5.5)) - (set_local 6 (i64.const 6)) - (set_local 8 (f64.const 8)) - (i64.trunc_s/f64 - (f64.add - (f64.convert_u/i64 (get_local 0)) - (f64.add - (f64.promote/f32 (get_local 1)) - (f64.add - (get_local 2) - (f64.add - (f64.convert_u/i32 (get_local 3)) - (f64.add - (f64.convert_s/i32 (get_local 4)) - (f64.add - (f64.promote/f32 (get_local 5)) - (f64.add - (f64.convert_u/i64 (get_local 6)) - (f64.add - (f64.convert_u/i64 (get_local 7)) - (get_local 8) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) - -(assert_return (invoke "type-local-i32")) -(assert_return (invoke "type-local-i64")) -(assert_return (invoke "type-local-f32")) -(assert_return (invoke "type-local-f64")) - -(assert_return (invoke "type-param-i32" (i32.const 2))) -(assert_return (invoke "type-param-i64" (i64.const 3))) -(assert_return (invoke "type-param-f32" (f32.const 4.4))) -(assert_return (invoke "type-param-f64" (f64.const 5.5))) - -(assert_return - (invoke "type-mixed" - (i64.const 1) (f32.const 2.2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) -) - -(assert_return - (invoke "write" - (i64.const 1) (f32.const 2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) - (i64.const 56) -) - - -;; Invalid typing of access to locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) - (set_local 0 (i32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) - (i32.eqz (set_local 0 (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) - (f64.neg (set_local 1 (i64.const 0))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-local-arg-void-vs-num (local i32) (set_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local i32) (set_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f32) (set_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f64 i64) (set_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid typing of access to parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-param-arg-void-vs-num (param i32) (set_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param i32) (set_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f32) (set_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f64 i64) (set_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid local index - -(assert_invalid - (module (func $unbound-local (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-local (local i32 i64) (get_local 14324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-param (param i32 i64) (get_local 2))) - "unknown local" -) -(assert_invalid - (module (func $large-param (local i32 i64) (get_local 714324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) - "unknown local" -) - -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param f32) (local i32) (set_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64 i32) (local f32) (set_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64) (local f64 i64) (set_local 1 (i64.const 0)))) - "type mismatch" -) - diff --git a/tests/samples/skip-stack-guard-page.wast b/tests/samples/skip-stack-guard-page.wast deleted file mode 100644 index f2449dc..0000000 --- a/tests/samples/skip-stack-guard-page.wast +++ /dev/null @@ -1,2284 +0,0 @@ -;; This tests that the stack overflow guard page can't be skipped by a function with more than a page of locals. -(module - (memory 1) - (export "test-guard-page-skip" (func $test-guard-page-skip)) - - (func $test-guard-page-skip - (param $depth i32) - (if (i32.eq (get_local $depth) (i32.const 0)) - (then (call $function-with-many-locals)) - (else (call $test-guard-page-skip (i32.sub (get_local $depth) (i32.const 1)))) - ) - ) - - (func $function-with-many-locals - - ;; 1056 i64 = 8448 bytes of locals - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x000-0x007 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x008-0x00f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x010-0x017 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x018-0x01f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x020-0x027 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x028-0x02f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x030-0x037 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x038-0x03f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x040-0x047 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x048-0x04f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x050-0x057 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x058-0x05f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x060-0x067 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x068-0x06f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x070-0x077 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x078-0x07f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x080-0x087 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x088-0x08f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x090-0x097 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x098-0x09f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0a0-0x0a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0a8-0x0af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0b0-0x0b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0b8-0x0bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0c0-0x0c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0c8-0x0cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0d0-0x0d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0d8-0x0df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0e0-0x0e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0e8-0x0ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0f0-0x0f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0f8-0x0ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x100-0x107 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x108-0x10f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x110-0x117 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x118-0x11f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x120-0x127 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x128-0x12f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x130-0x137 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x138-0x13f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x140-0x147 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x148-0x14f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x150-0x157 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x158-0x15f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x160-0x167 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x168-0x16f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x170-0x177 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x178-0x17f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x180-0x187 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x188-0x18f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x190-0x197 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x198-0x19f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1a0-0x1a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1a8-0x1af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1b0-0x1b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1b8-0x1bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1c0-0x1c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1c8-0x1cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1d0-0x1d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1d8-0x1df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1e0-0x1e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1e8-0x1ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1f0-0x1f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1f8-0x1ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x200-0x207 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x208-0x20f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x210-0x217 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x218-0x21f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x220-0x227 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x228-0x22f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x230-0x237 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x238-0x23f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x240-0x247 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x248-0x24f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x250-0x257 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x258-0x25f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x260-0x267 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x268-0x26f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x270-0x277 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x278-0x27f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x280-0x287 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x288-0x28f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x290-0x297 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x298-0x29f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2a0-0x2a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2a8-0x2af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2b0-0x2b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2b8-0x2bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2c0-0x2c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2c8-0x2cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2d0-0x2d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2d8-0x2df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2e0-0x2e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2e8-0x2ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2f0-0x2f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2f8-0x2ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x300-0x307 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x308-0x30f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x310-0x317 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x318-0x31f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x320-0x327 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x328-0x32f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x330-0x337 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x338-0x33f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x340-0x347 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x348-0x34f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x350-0x357 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x358-0x35f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x360-0x367 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x368-0x36f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x370-0x377 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x378-0x37f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x380-0x387 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x388-0x38f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x390-0x397 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x398-0x39f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3a0-0x3a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3a8-0x3af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3b0-0x3b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3b8-0x3bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3c0-0x3c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3c8-0x3cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3d0-0x3d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3d8-0x3df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3e0-0x3e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3e8-0x3ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3f0-0x3f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3f8-0x3ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x400-0x407 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x408-0x40f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x410-0x417 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x418-0x41f - - ;; recurse first to try to make the callee access the stack below the space allocated for the locals before the locals themselves have been initialized. - (call $function-with-many-locals) - - ;; load from memory into the locals - (set_local 0x000 (i64.load offset=0x000 align=1 (i32.const 0))) - (set_local 0x001 (i64.load offset=0x001 align=1 (i32.const 0))) - (set_local 0x002 (i64.load offset=0x002 align=1 (i32.const 0))) - (set_local 0x003 (i64.load offset=0x003 align=1 (i32.const 0))) - (set_local 0x004 (i64.load offset=0x004 align=1 (i32.const 0))) - (set_local 0x005 (i64.load offset=0x005 align=1 (i32.const 0))) - (set_local 0x006 (i64.load offset=0x006 align=1 (i32.const 0))) - (set_local 0x007 (i64.load offset=0x007 align=1 (i32.const 0))) - (set_local 0x008 (i64.load offset=0x008 align=1 (i32.const 0))) - (set_local 0x009 (i64.load offset=0x009 align=1 (i32.const 0))) - (set_local 0x00a (i64.load offset=0x00a align=1 (i32.const 0))) - (set_local 0x00b (i64.load offset=0x00b align=1 (i32.const 0))) - (set_local 0x00c (i64.load offset=0x00c align=1 (i32.const 0))) - (set_local 0x00d (i64.load offset=0x00d align=1 (i32.const 0))) - (set_local 0x00e (i64.load offset=0x00e align=1 (i32.const 0))) - (set_local 0x00f (i64.load offset=0x00f align=1 (i32.const 0))) - (set_local 0x010 (i64.load offset=0x010 align=1 (i32.const 0))) - (set_local 0x011 (i64.load offset=0x011 align=1 (i32.const 0))) - (set_local 0x012 (i64.load offset=0x012 align=1 (i32.const 0))) - (set_local 0x013 (i64.load offset=0x013 align=1 (i32.const 0))) - (set_local 0x014 (i64.load offset=0x014 align=1 (i32.const 0))) - (set_local 0x015 (i64.load offset=0x015 align=1 (i32.const 0))) - (set_local 0x016 (i64.load offset=0x016 align=1 (i32.const 0))) - (set_local 0x017 (i64.load offset=0x017 align=1 (i32.const 0))) - (set_local 0x018 (i64.load offset=0x018 align=1 (i32.const 0))) - (set_local 0x019 (i64.load offset=0x019 align=1 (i32.const 0))) - (set_local 0x01a (i64.load offset=0x01a align=1 (i32.const 0))) - (set_local 0x01b (i64.load offset=0x01b align=1 (i32.const 0))) - (set_local 0x01c (i64.load offset=0x01c align=1 (i32.const 0))) - (set_local 0x01d (i64.load offset=0x01d align=1 (i32.const 0))) - (set_local 0x01e (i64.load offset=0x01e align=1 (i32.const 0))) - (set_local 0x01f (i64.load offset=0x01f align=1 (i32.const 0))) - (set_local 0x020 (i64.load offset=0x020 align=1 (i32.const 0))) - (set_local 0x021 (i64.load offset=0x021 align=1 (i32.const 0))) - (set_local 0x022 (i64.load offset=0x022 align=1 (i32.const 0))) - (set_local 0x023 (i64.load offset=0x023 align=1 (i32.const 0))) - (set_local 0x024 (i64.load offset=0x024 align=1 (i32.const 0))) - (set_local 0x025 (i64.load offset=0x025 align=1 (i32.const 0))) - (set_local 0x026 (i64.load offset=0x026 align=1 (i32.const 0))) - (set_local 0x027 (i64.load offset=0x027 align=1 (i32.const 0))) - (set_local 0x028 (i64.load offset=0x028 align=1 (i32.const 0))) - (set_local 0x029 (i64.load offset=0x029 align=1 (i32.const 0))) - (set_local 0x02a (i64.load offset=0x02a align=1 (i32.const 0))) - (set_local 0x02b (i64.load offset=0x02b align=1 (i32.const 0))) - (set_local 0x02c (i64.load offset=0x02c align=1 (i32.const 0))) - (set_local 0x02d (i64.load offset=0x02d align=1 (i32.const 0))) - (set_local 0x02e (i64.load offset=0x02e align=1 (i32.const 0))) - (set_local 0x02f (i64.load offset=0x02f align=1 (i32.const 0))) - (set_local 0x030 (i64.load offset=0x030 align=1 (i32.const 0))) - (set_local 0x031 (i64.load offset=0x031 align=1 (i32.const 0))) - (set_local 0x032 (i64.load offset=0x032 align=1 (i32.const 0))) - (set_local 0x033 (i64.load offset=0x033 align=1 (i32.const 0))) - (set_local 0x034 (i64.load offset=0x034 align=1 (i32.const 0))) - (set_local 0x035 (i64.load offset=0x035 align=1 (i32.const 0))) - (set_local 0x036 (i64.load offset=0x036 align=1 (i32.const 0))) - (set_local 0x037 (i64.load offset=0x037 align=1 (i32.const 0))) - (set_local 0x038 (i64.load offset=0x038 align=1 (i32.const 0))) - (set_local 0x039 (i64.load offset=0x039 align=1 (i32.const 0))) - (set_local 0x03a (i64.load offset=0x03a align=1 (i32.const 0))) - (set_local 0x03b (i64.load offset=0x03b align=1 (i32.const 0))) - (set_local 0x03c (i64.load offset=0x03c align=1 (i32.const 0))) - (set_local 0x03d (i64.load offset=0x03d align=1 (i32.const 0))) - (set_local 0x03e (i64.load offset=0x03e align=1 (i32.const 0))) - (set_local 0x03f (i64.load offset=0x03f align=1 (i32.const 0))) - (set_local 0x040 (i64.load offset=0x040 align=1 (i32.const 0))) - (set_local 0x041 (i64.load offset=0x041 align=1 (i32.const 0))) - (set_local 0x042 (i64.load offset=0x042 align=1 (i32.const 0))) - (set_local 0x043 (i64.load offset=0x043 align=1 (i32.const 0))) - (set_local 0x044 (i64.load offset=0x044 align=1 (i32.const 0))) - (set_local 0x045 (i64.load offset=0x045 align=1 (i32.const 0))) - (set_local 0x046 (i64.load offset=0x046 align=1 (i32.const 0))) - (set_local 0x047 (i64.load offset=0x047 align=1 (i32.const 0))) - (set_local 0x048 (i64.load offset=0x048 align=1 (i32.const 0))) - (set_local 0x049 (i64.load offset=0x049 align=1 (i32.const 0))) - (set_local 0x04a (i64.load offset=0x04a align=1 (i32.const 0))) - (set_local 0x04b (i64.load offset=0x04b align=1 (i32.const 0))) - (set_local 0x04c (i64.load offset=0x04c align=1 (i32.const 0))) - (set_local 0x04d (i64.load offset=0x04d align=1 (i32.const 0))) - (set_local 0x04e (i64.load offset=0x04e align=1 (i32.const 0))) - (set_local 0x04f (i64.load offset=0x04f align=1 (i32.const 0))) - (set_local 0x050 (i64.load offset=0x050 align=1 (i32.const 0))) - (set_local 0x051 (i64.load offset=0x051 align=1 (i32.const 0))) - (set_local 0x052 (i64.load offset=0x052 align=1 (i32.const 0))) - (set_local 0x053 (i64.load offset=0x053 align=1 (i32.const 0))) - (set_local 0x054 (i64.load offset=0x054 align=1 (i32.const 0))) - (set_local 0x055 (i64.load offset=0x055 align=1 (i32.const 0))) - (set_local 0x056 (i64.load offset=0x056 align=1 (i32.const 0))) - (set_local 0x057 (i64.load offset=0x057 align=1 (i32.const 0))) - (set_local 0x058 (i64.load offset=0x058 align=1 (i32.const 0))) - (set_local 0x059 (i64.load offset=0x059 align=1 (i32.const 0))) - (set_local 0x05a (i64.load offset=0x05a align=1 (i32.const 0))) - (set_local 0x05b (i64.load offset=0x05b align=1 (i32.const 0))) - (set_local 0x05c (i64.load offset=0x05c align=1 (i32.const 0))) - (set_local 0x05d (i64.load offset=0x05d align=1 (i32.const 0))) - (set_local 0x05e (i64.load offset=0x05e align=1 (i32.const 0))) - (set_local 0x05f (i64.load offset=0x05f align=1 (i32.const 0))) - (set_local 0x060 (i64.load offset=0x060 align=1 (i32.const 0))) - (set_local 0x061 (i64.load offset=0x061 align=1 (i32.const 0))) - (set_local 0x062 (i64.load offset=0x062 align=1 (i32.const 0))) - (set_local 0x063 (i64.load offset=0x063 align=1 (i32.const 0))) - (set_local 0x064 (i64.load offset=0x064 align=1 (i32.const 0))) - (set_local 0x065 (i64.load offset=0x065 align=1 (i32.const 0))) - (set_local 0x066 (i64.load offset=0x066 align=1 (i32.const 0))) - (set_local 0x067 (i64.load offset=0x067 align=1 (i32.const 0))) - (set_local 0x068 (i64.load offset=0x068 align=1 (i32.const 0))) - (set_local 0x069 (i64.load offset=0x069 align=1 (i32.const 0))) - (set_local 0x06a (i64.load offset=0x06a align=1 (i32.const 0))) - (set_local 0x06b (i64.load offset=0x06b align=1 (i32.const 0))) - (set_local 0x06c (i64.load offset=0x06c align=1 (i32.const 0))) - (set_local 0x06d (i64.load offset=0x06d align=1 (i32.const 0))) - (set_local 0x06e (i64.load offset=0x06e align=1 (i32.const 0))) - (set_local 0x06f (i64.load offset=0x06f align=1 (i32.const 0))) - (set_local 0x070 (i64.load offset=0x070 align=1 (i32.const 0))) - (set_local 0x071 (i64.load offset=0x071 align=1 (i32.const 0))) - (set_local 0x072 (i64.load offset=0x072 align=1 (i32.const 0))) - (set_local 0x073 (i64.load offset=0x073 align=1 (i32.const 0))) - (set_local 0x074 (i64.load offset=0x074 align=1 (i32.const 0))) - (set_local 0x075 (i64.load offset=0x075 align=1 (i32.const 0))) - (set_local 0x076 (i64.load offset=0x076 align=1 (i32.const 0))) - (set_local 0x077 (i64.load offset=0x077 align=1 (i32.const 0))) - (set_local 0x078 (i64.load offset=0x078 align=1 (i32.const 0))) - (set_local 0x079 (i64.load offset=0x079 align=1 (i32.const 0))) - (set_local 0x07a (i64.load offset=0x07a align=1 (i32.const 0))) - (set_local 0x07b (i64.load offset=0x07b align=1 (i32.const 0))) - (set_local 0x07c (i64.load offset=0x07c align=1 (i32.const 0))) - (set_local 0x07d (i64.load offset=0x07d align=1 (i32.const 0))) - (set_local 0x07e (i64.load offset=0x07e align=1 (i32.const 0))) - (set_local 0x07f (i64.load offset=0x07f align=1 (i32.const 0))) - (set_local 0x080 (i64.load offset=0x080 align=1 (i32.const 0))) - (set_local 0x081 (i64.load offset=0x081 align=1 (i32.const 0))) - (set_local 0x082 (i64.load offset=0x082 align=1 (i32.const 0))) - (set_local 0x083 (i64.load offset=0x083 align=1 (i32.const 0))) - (set_local 0x084 (i64.load offset=0x084 align=1 (i32.const 0))) - (set_local 0x085 (i64.load offset=0x085 align=1 (i32.const 0))) - (set_local 0x086 (i64.load offset=0x086 align=1 (i32.const 0))) - (set_local 0x087 (i64.load offset=0x087 align=1 (i32.const 0))) - (set_local 0x088 (i64.load offset=0x088 align=1 (i32.const 0))) - (set_local 0x089 (i64.load offset=0x089 align=1 (i32.const 0))) - (set_local 0x08a (i64.load offset=0x08a align=1 (i32.const 0))) - (set_local 0x08b (i64.load offset=0x08b align=1 (i32.const 0))) - (set_local 0x08c (i64.load offset=0x08c align=1 (i32.const 0))) - (set_local 0x08d (i64.load offset=0x08d align=1 (i32.const 0))) - (set_local 0x08e (i64.load offset=0x08e align=1 (i32.const 0))) - (set_local 0x08f (i64.load offset=0x08f align=1 (i32.const 0))) - (set_local 0x090 (i64.load offset=0x090 align=1 (i32.const 0))) - (set_local 0x091 (i64.load offset=0x091 align=1 (i32.const 0))) - (set_local 0x092 (i64.load offset=0x092 align=1 (i32.const 0))) - (set_local 0x093 (i64.load offset=0x093 align=1 (i32.const 0))) - (set_local 0x094 (i64.load offset=0x094 align=1 (i32.const 0))) - (set_local 0x095 (i64.load offset=0x095 align=1 (i32.const 0))) - (set_local 0x096 (i64.load offset=0x096 align=1 (i32.const 0))) - (set_local 0x097 (i64.load offset=0x097 align=1 (i32.const 0))) - (set_local 0x098 (i64.load offset=0x098 align=1 (i32.const 0))) - (set_local 0x099 (i64.load offset=0x099 align=1 (i32.const 0))) - (set_local 0x09a (i64.load offset=0x09a align=1 (i32.const 0))) - (set_local 0x09b (i64.load offset=0x09b align=1 (i32.const 0))) - (set_local 0x09c (i64.load offset=0x09c align=1 (i32.const 0))) - (set_local 0x09d (i64.load offset=0x09d align=1 (i32.const 0))) - (set_local 0x09e (i64.load offset=0x09e align=1 (i32.const 0))) - (set_local 0x09f (i64.load offset=0x09f align=1 (i32.const 0))) - (set_local 0x0a0 (i64.load offset=0x0a0 align=1 (i32.const 0))) - (set_local 0x0a1 (i64.load offset=0x0a1 align=1 (i32.const 0))) - (set_local 0x0a2 (i64.load offset=0x0a2 align=1 (i32.const 0))) - (set_local 0x0a3 (i64.load offset=0x0a3 align=1 (i32.const 0))) - (set_local 0x0a4 (i64.load offset=0x0a4 align=1 (i32.const 0))) - (set_local 0x0a5 (i64.load offset=0x0a5 align=1 (i32.const 0))) - (set_local 0x0a6 (i64.load offset=0x0a6 align=1 (i32.const 0))) - (set_local 0x0a7 (i64.load offset=0x0a7 align=1 (i32.const 0))) - (set_local 0x0a8 (i64.load offset=0x0a8 align=1 (i32.const 0))) - (set_local 0x0a9 (i64.load offset=0x0a9 align=1 (i32.const 0))) - (set_local 0x0aa (i64.load offset=0x0aa align=1 (i32.const 0))) - (set_local 0x0ab (i64.load offset=0x0ab align=1 (i32.const 0))) - (set_local 0x0ac (i64.load offset=0x0ac align=1 (i32.const 0))) - (set_local 0x0ad (i64.load offset=0x0ad align=1 (i32.const 0))) - (set_local 0x0ae (i64.load offset=0x0ae align=1 (i32.const 0))) - (set_local 0x0af (i64.load offset=0x0af align=1 (i32.const 0))) - (set_local 0x0b0 (i64.load offset=0x0b0 align=1 (i32.const 0))) - (set_local 0x0b1 (i64.load offset=0x0b1 align=1 (i32.const 0))) - (set_local 0x0b2 (i64.load offset=0x0b2 align=1 (i32.const 0))) - (set_local 0x0b3 (i64.load offset=0x0b3 align=1 (i32.const 0))) - (set_local 0x0b4 (i64.load offset=0x0b4 align=1 (i32.const 0))) - (set_local 0x0b5 (i64.load offset=0x0b5 align=1 (i32.const 0))) - (set_local 0x0b6 (i64.load offset=0x0b6 align=1 (i32.const 0))) - (set_local 0x0b7 (i64.load offset=0x0b7 align=1 (i32.const 0))) - (set_local 0x0b8 (i64.load offset=0x0b8 align=1 (i32.const 0))) - (set_local 0x0b9 (i64.load offset=0x0b9 align=1 (i32.const 0))) - (set_local 0x0ba (i64.load offset=0x0ba align=1 (i32.const 0))) - (set_local 0x0bb (i64.load offset=0x0bb align=1 (i32.const 0))) - (set_local 0x0bc (i64.load offset=0x0bc align=1 (i32.const 0))) - (set_local 0x0bd (i64.load offset=0x0bd align=1 (i32.const 0))) - (set_local 0x0be (i64.load offset=0x0be align=1 (i32.const 0))) - (set_local 0x0bf (i64.load offset=0x0bf align=1 (i32.const 0))) - (set_local 0x0c0 (i64.load offset=0x0c0 align=1 (i32.const 0))) - (set_local 0x0c1 (i64.load offset=0x0c1 align=1 (i32.const 0))) - (set_local 0x0c2 (i64.load offset=0x0c2 align=1 (i32.const 0))) - (set_local 0x0c3 (i64.load offset=0x0c3 align=1 (i32.const 0))) - (set_local 0x0c4 (i64.load offset=0x0c4 align=1 (i32.const 0))) - (set_local 0x0c5 (i64.load offset=0x0c5 align=1 (i32.const 0))) - (set_local 0x0c6 (i64.load offset=0x0c6 align=1 (i32.const 0))) - (set_local 0x0c7 (i64.load offset=0x0c7 align=1 (i32.const 0))) - (set_local 0x0c8 (i64.load offset=0x0c8 align=1 (i32.const 0))) - (set_local 0x0c9 (i64.load offset=0x0c9 align=1 (i32.const 0))) - (set_local 0x0ca (i64.load offset=0x0ca align=1 (i32.const 0))) - (set_local 0x0cb (i64.load offset=0x0cb align=1 (i32.const 0))) - (set_local 0x0cc (i64.load offset=0x0cc align=1 (i32.const 0))) - (set_local 0x0cd (i64.load offset=0x0cd align=1 (i32.const 0))) - (set_local 0x0ce (i64.load offset=0x0ce align=1 (i32.const 0))) - (set_local 0x0cf (i64.load offset=0x0cf align=1 (i32.const 0))) - (set_local 0x0d0 (i64.load offset=0x0d0 align=1 (i32.const 0))) - (set_local 0x0d1 (i64.load offset=0x0d1 align=1 (i32.const 0))) - (set_local 0x0d2 (i64.load offset=0x0d2 align=1 (i32.const 0))) - (set_local 0x0d3 (i64.load offset=0x0d3 align=1 (i32.const 0))) - (set_local 0x0d4 (i64.load offset=0x0d4 align=1 (i32.const 0))) - (set_local 0x0d5 (i64.load offset=0x0d5 align=1 (i32.const 0))) - (set_local 0x0d6 (i64.load offset=0x0d6 align=1 (i32.const 0))) - (set_local 0x0d7 (i64.load offset=0x0d7 align=1 (i32.const 0))) - (set_local 0x0d8 (i64.load offset=0x0d8 align=1 (i32.const 0))) - (set_local 0x0d9 (i64.load offset=0x0d9 align=1 (i32.const 0))) - (set_local 0x0da (i64.load offset=0x0da align=1 (i32.const 0))) - (set_local 0x0db (i64.load offset=0x0db align=1 (i32.const 0))) - (set_local 0x0dc (i64.load offset=0x0dc align=1 (i32.const 0))) - (set_local 0x0dd (i64.load offset=0x0dd align=1 (i32.const 0))) - (set_local 0x0de (i64.load offset=0x0de align=1 (i32.const 0))) - (set_local 0x0df (i64.load offset=0x0df align=1 (i32.const 0))) - (set_local 0x0e0 (i64.load offset=0x0e0 align=1 (i32.const 0))) - (set_local 0x0e1 (i64.load offset=0x0e1 align=1 (i32.const 0))) - (set_local 0x0e2 (i64.load offset=0x0e2 align=1 (i32.const 0))) - (set_local 0x0e3 (i64.load offset=0x0e3 align=1 (i32.const 0))) - (set_local 0x0e4 (i64.load offset=0x0e4 align=1 (i32.const 0))) - (set_local 0x0e5 (i64.load offset=0x0e5 align=1 (i32.const 0))) - (set_local 0x0e6 (i64.load offset=0x0e6 align=1 (i32.const 0))) - (set_local 0x0e7 (i64.load offset=0x0e7 align=1 (i32.const 0))) - (set_local 0x0e8 (i64.load offset=0x0e8 align=1 (i32.const 0))) - (set_local 0x0e9 (i64.load offset=0x0e9 align=1 (i32.const 0))) - (set_local 0x0ea (i64.load offset=0x0ea align=1 (i32.const 0))) - (set_local 0x0eb (i64.load offset=0x0eb align=1 (i32.const 0))) - (set_local 0x0ec (i64.load offset=0x0ec align=1 (i32.const 0))) - (set_local 0x0ed (i64.load offset=0x0ed align=1 (i32.const 0))) - (set_local 0x0ee (i64.load offset=0x0ee align=1 (i32.const 0))) - (set_local 0x0ef (i64.load offset=0x0ef align=1 (i32.const 0))) - (set_local 0x0f0 (i64.load offset=0x0f0 align=1 (i32.const 0))) - (set_local 0x0f1 (i64.load offset=0x0f1 align=1 (i32.const 0))) - (set_local 0x0f2 (i64.load offset=0x0f2 align=1 (i32.const 0))) - (set_local 0x0f3 (i64.load offset=0x0f3 align=1 (i32.const 0))) - (set_local 0x0f4 (i64.load offset=0x0f4 align=1 (i32.const 0))) - (set_local 0x0f5 (i64.load offset=0x0f5 align=1 (i32.const 0))) - (set_local 0x0f6 (i64.load offset=0x0f6 align=1 (i32.const 0))) - (set_local 0x0f7 (i64.load offset=0x0f7 align=1 (i32.const 0))) - (set_local 0x0f8 (i64.load offset=0x0f8 align=1 (i32.const 0))) - (set_local 0x0f9 (i64.load offset=0x0f9 align=1 (i32.const 0))) - (set_local 0x0fa (i64.load offset=0x0fa align=1 (i32.const 0))) - (set_local 0x0fb (i64.load offset=0x0fb align=1 (i32.const 0))) - (set_local 0x0fc (i64.load offset=0x0fc align=1 (i32.const 0))) - (set_local 0x0fd (i64.load offset=0x0fd align=1 (i32.const 0))) - (set_local 0x0fe (i64.load offset=0x0fe align=1 (i32.const 0))) - (set_local 0x0ff (i64.load offset=0x0ff align=1 (i32.const 0))) - (set_local 0x100 (i64.load offset=0x100 align=1 (i32.const 0))) - (set_local 0x101 (i64.load offset=0x101 align=1 (i32.const 0))) - (set_local 0x102 (i64.load offset=0x102 align=1 (i32.const 0))) - (set_local 0x103 (i64.load offset=0x103 align=1 (i32.const 0))) - (set_local 0x104 (i64.load offset=0x104 align=1 (i32.const 0))) - (set_local 0x105 (i64.load offset=0x105 align=1 (i32.const 0))) - (set_local 0x106 (i64.load offset=0x106 align=1 (i32.const 0))) - (set_local 0x107 (i64.load offset=0x107 align=1 (i32.const 0))) - (set_local 0x108 (i64.load offset=0x108 align=1 (i32.const 0))) - (set_local 0x109 (i64.load offset=0x109 align=1 (i32.const 0))) - (set_local 0x10a (i64.load offset=0x10a align=1 (i32.const 0))) - (set_local 0x10b (i64.load offset=0x10b align=1 (i32.const 0))) - (set_local 0x10c (i64.load offset=0x10c align=1 (i32.const 0))) - (set_local 0x10d (i64.load offset=0x10d align=1 (i32.const 0))) - (set_local 0x10e (i64.load offset=0x10e align=1 (i32.const 0))) - (set_local 0x10f (i64.load offset=0x10f align=1 (i32.const 0))) - (set_local 0x110 (i64.load offset=0x110 align=1 (i32.const 0))) - (set_local 0x111 (i64.load offset=0x111 align=1 (i32.const 0))) - (set_local 0x112 (i64.load offset=0x112 align=1 (i32.const 0))) - (set_local 0x113 (i64.load offset=0x113 align=1 (i32.const 0))) - (set_local 0x114 (i64.load offset=0x114 align=1 (i32.const 0))) - (set_local 0x115 (i64.load offset=0x115 align=1 (i32.const 0))) - (set_local 0x116 (i64.load offset=0x116 align=1 (i32.const 0))) - (set_local 0x117 (i64.load offset=0x117 align=1 (i32.const 0))) - (set_local 0x118 (i64.load offset=0x118 align=1 (i32.const 0))) - (set_local 0x119 (i64.load offset=0x119 align=1 (i32.const 0))) - (set_local 0x11a (i64.load offset=0x11a align=1 (i32.const 0))) - (set_local 0x11b (i64.load offset=0x11b align=1 (i32.const 0))) - (set_local 0x11c (i64.load offset=0x11c align=1 (i32.const 0))) - (set_local 0x11d (i64.load offset=0x11d align=1 (i32.const 0))) - (set_local 0x11e (i64.load offset=0x11e align=1 (i32.const 0))) - (set_local 0x11f (i64.load offset=0x11f align=1 (i32.const 0))) - (set_local 0x120 (i64.load offset=0x120 align=1 (i32.const 0))) - (set_local 0x121 (i64.load offset=0x121 align=1 (i32.const 0))) - (set_local 0x122 (i64.load offset=0x122 align=1 (i32.const 0))) - (set_local 0x123 (i64.load offset=0x123 align=1 (i32.const 0))) - (set_local 0x124 (i64.load offset=0x124 align=1 (i32.const 0))) - (set_local 0x125 (i64.load offset=0x125 align=1 (i32.const 0))) - (set_local 0x126 (i64.load offset=0x126 align=1 (i32.const 0))) - (set_local 0x127 (i64.load offset=0x127 align=1 (i32.const 0))) - (set_local 0x128 (i64.load offset=0x128 align=1 (i32.const 0))) - (set_local 0x129 (i64.load offset=0x129 align=1 (i32.const 0))) - (set_local 0x12a (i64.load offset=0x12a align=1 (i32.const 0))) - (set_local 0x12b (i64.load offset=0x12b align=1 (i32.const 0))) - (set_local 0x12c (i64.load offset=0x12c align=1 (i32.const 0))) - (set_local 0x12d (i64.load offset=0x12d align=1 (i32.const 0))) - (set_local 0x12e (i64.load offset=0x12e align=1 (i32.const 0))) - (set_local 0x12f (i64.load offset=0x12f align=1 (i32.const 0))) - (set_local 0x130 (i64.load offset=0x130 align=1 (i32.const 0))) - (set_local 0x131 (i64.load offset=0x131 align=1 (i32.const 0))) - (set_local 0x132 (i64.load offset=0x132 align=1 (i32.const 0))) - (set_local 0x133 (i64.load offset=0x133 align=1 (i32.const 0))) - (set_local 0x134 (i64.load offset=0x134 align=1 (i32.const 0))) - (set_local 0x135 (i64.load offset=0x135 align=1 (i32.const 0))) - (set_local 0x136 (i64.load offset=0x136 align=1 (i32.const 0))) - (set_local 0x137 (i64.load offset=0x137 align=1 (i32.const 0))) - (set_local 0x138 (i64.load offset=0x138 align=1 (i32.const 0))) - (set_local 0x139 (i64.load offset=0x139 align=1 (i32.const 0))) - (set_local 0x13a (i64.load offset=0x13a align=1 (i32.const 0))) - (set_local 0x13b (i64.load offset=0x13b align=1 (i32.const 0))) - (set_local 0x13c (i64.load offset=0x13c align=1 (i32.const 0))) - (set_local 0x13d (i64.load offset=0x13d align=1 (i32.const 0))) - (set_local 0x13e (i64.load offset=0x13e align=1 (i32.const 0))) - (set_local 0x13f (i64.load offset=0x13f align=1 (i32.const 0))) - (set_local 0x140 (i64.load offset=0x140 align=1 (i32.const 0))) - (set_local 0x141 (i64.load offset=0x141 align=1 (i32.const 0))) - (set_local 0x142 (i64.load offset=0x142 align=1 (i32.const 0))) - (set_local 0x143 (i64.load offset=0x143 align=1 (i32.const 0))) - (set_local 0x144 (i64.load offset=0x144 align=1 (i32.const 0))) - (set_local 0x145 (i64.load offset=0x145 align=1 (i32.const 0))) - (set_local 0x146 (i64.load offset=0x146 align=1 (i32.const 0))) - (set_local 0x147 (i64.load offset=0x147 align=1 (i32.const 0))) - (set_local 0x148 (i64.load offset=0x148 align=1 (i32.const 0))) - (set_local 0x149 (i64.load offset=0x149 align=1 (i32.const 0))) - (set_local 0x14a (i64.load offset=0x14a align=1 (i32.const 0))) - (set_local 0x14b (i64.load offset=0x14b align=1 (i32.const 0))) - (set_local 0x14c (i64.load offset=0x14c align=1 (i32.const 0))) - (set_local 0x14d (i64.load offset=0x14d align=1 (i32.const 0))) - (set_local 0x14e (i64.load offset=0x14e align=1 (i32.const 0))) - (set_local 0x14f (i64.load offset=0x14f align=1 (i32.const 0))) - (set_local 0x150 (i64.load offset=0x150 align=1 (i32.const 0))) - (set_local 0x151 (i64.load offset=0x151 align=1 (i32.const 0))) - (set_local 0x152 (i64.load offset=0x152 align=1 (i32.const 0))) - (set_local 0x153 (i64.load offset=0x153 align=1 (i32.const 0))) - (set_local 0x154 (i64.load offset=0x154 align=1 (i32.const 0))) - (set_local 0x155 (i64.load offset=0x155 align=1 (i32.const 0))) - (set_local 0x156 (i64.load offset=0x156 align=1 (i32.const 0))) - (set_local 0x157 (i64.load offset=0x157 align=1 (i32.const 0))) - (set_local 0x158 (i64.load offset=0x158 align=1 (i32.const 0))) - (set_local 0x159 (i64.load offset=0x159 align=1 (i32.const 0))) - (set_local 0x15a (i64.load offset=0x15a align=1 (i32.const 0))) - (set_local 0x15b (i64.load offset=0x15b align=1 (i32.const 0))) - (set_local 0x15c (i64.load offset=0x15c align=1 (i32.const 0))) - (set_local 0x15d (i64.load offset=0x15d align=1 (i32.const 0))) - (set_local 0x15e (i64.load offset=0x15e align=1 (i32.const 0))) - (set_local 0x15f (i64.load offset=0x15f align=1 (i32.const 0))) - (set_local 0x160 (i64.load offset=0x160 align=1 (i32.const 0))) - (set_local 0x161 (i64.load offset=0x161 align=1 (i32.const 0))) - (set_local 0x162 (i64.load offset=0x162 align=1 (i32.const 0))) - (set_local 0x163 (i64.load offset=0x163 align=1 (i32.const 0))) - (set_local 0x164 (i64.load offset=0x164 align=1 (i32.const 0))) - (set_local 0x165 (i64.load offset=0x165 align=1 (i32.const 0))) - (set_local 0x166 (i64.load offset=0x166 align=1 (i32.const 0))) - (set_local 0x167 (i64.load offset=0x167 align=1 (i32.const 0))) - (set_local 0x168 (i64.load offset=0x168 align=1 (i32.const 0))) - (set_local 0x169 (i64.load offset=0x169 align=1 (i32.const 0))) - (set_local 0x16a (i64.load offset=0x16a align=1 (i32.const 0))) - (set_local 0x16b (i64.load offset=0x16b align=1 (i32.const 0))) - (set_local 0x16c (i64.load offset=0x16c align=1 (i32.const 0))) - (set_local 0x16d (i64.load offset=0x16d align=1 (i32.const 0))) - (set_local 0x16e (i64.load offset=0x16e align=1 (i32.const 0))) - (set_local 0x16f (i64.load offset=0x16f align=1 (i32.const 0))) - (set_local 0x170 (i64.load offset=0x170 align=1 (i32.const 0))) - (set_local 0x171 (i64.load offset=0x171 align=1 (i32.const 0))) - (set_local 0x172 (i64.load offset=0x172 align=1 (i32.const 0))) - (set_local 0x173 (i64.load offset=0x173 align=1 (i32.const 0))) - (set_local 0x174 (i64.load offset=0x174 align=1 (i32.const 0))) - (set_local 0x175 (i64.load offset=0x175 align=1 (i32.const 0))) - (set_local 0x176 (i64.load offset=0x176 align=1 (i32.const 0))) - (set_local 0x177 (i64.load offset=0x177 align=1 (i32.const 0))) - (set_local 0x178 (i64.load offset=0x178 align=1 (i32.const 0))) - (set_local 0x179 (i64.load offset=0x179 align=1 (i32.const 0))) - (set_local 0x17a (i64.load offset=0x17a align=1 (i32.const 0))) - (set_local 0x17b (i64.load offset=0x17b align=1 (i32.const 0))) - (set_local 0x17c (i64.load offset=0x17c align=1 (i32.const 0))) - (set_local 0x17d (i64.load offset=0x17d align=1 (i32.const 0))) - (set_local 0x17e (i64.load offset=0x17e align=1 (i32.const 0))) - (set_local 0x17f (i64.load offset=0x17f align=1 (i32.const 0))) - (set_local 0x180 (i64.load offset=0x180 align=1 (i32.const 0))) - (set_local 0x181 (i64.load offset=0x181 align=1 (i32.const 0))) - (set_local 0x182 (i64.load offset=0x182 align=1 (i32.const 0))) - (set_local 0x183 (i64.load offset=0x183 align=1 (i32.const 0))) - (set_local 0x184 (i64.load offset=0x184 align=1 (i32.const 0))) - (set_local 0x185 (i64.load offset=0x185 align=1 (i32.const 0))) - (set_local 0x186 (i64.load offset=0x186 align=1 (i32.const 0))) - (set_local 0x187 (i64.load offset=0x187 align=1 (i32.const 0))) - (set_local 0x188 (i64.load offset=0x188 align=1 (i32.const 0))) - (set_local 0x189 (i64.load offset=0x189 align=1 (i32.const 0))) - (set_local 0x18a (i64.load offset=0x18a align=1 (i32.const 0))) - (set_local 0x18b (i64.load offset=0x18b align=1 (i32.const 0))) - (set_local 0x18c (i64.load offset=0x18c align=1 (i32.const 0))) - (set_local 0x18d (i64.load offset=0x18d align=1 (i32.const 0))) - (set_local 0x18e (i64.load offset=0x18e align=1 (i32.const 0))) - (set_local 0x18f (i64.load offset=0x18f align=1 (i32.const 0))) - (set_local 0x190 (i64.load offset=0x190 align=1 (i32.const 0))) - (set_local 0x191 (i64.load offset=0x191 align=1 (i32.const 0))) - (set_local 0x192 (i64.load offset=0x192 align=1 (i32.const 0))) - (set_local 0x193 (i64.load offset=0x193 align=1 (i32.const 0))) - (set_local 0x194 (i64.load offset=0x194 align=1 (i32.const 0))) - (set_local 0x195 (i64.load offset=0x195 align=1 (i32.const 0))) - (set_local 0x196 (i64.load offset=0x196 align=1 (i32.const 0))) - (set_local 0x197 (i64.load offset=0x197 align=1 (i32.const 0))) - (set_local 0x198 (i64.load offset=0x198 align=1 (i32.const 0))) - (set_local 0x199 (i64.load offset=0x199 align=1 (i32.const 0))) - (set_local 0x19a (i64.load offset=0x19a align=1 (i32.const 0))) - (set_local 0x19b (i64.load offset=0x19b align=1 (i32.const 0))) - (set_local 0x19c (i64.load offset=0x19c align=1 (i32.const 0))) - (set_local 0x19d (i64.load offset=0x19d align=1 (i32.const 0))) - (set_local 0x19e (i64.load offset=0x19e align=1 (i32.const 0))) - (set_local 0x19f (i64.load offset=0x19f align=1 (i32.const 0))) - (set_local 0x1a0 (i64.load offset=0x1a0 align=1 (i32.const 0))) - (set_local 0x1a1 (i64.load offset=0x1a1 align=1 (i32.const 0))) - (set_local 0x1a2 (i64.load offset=0x1a2 align=1 (i32.const 0))) - (set_local 0x1a3 (i64.load offset=0x1a3 align=1 (i32.const 0))) - (set_local 0x1a4 (i64.load offset=0x1a4 align=1 (i32.const 0))) - (set_local 0x1a5 (i64.load offset=0x1a5 align=1 (i32.const 0))) - (set_local 0x1a6 (i64.load offset=0x1a6 align=1 (i32.const 0))) - (set_local 0x1a7 (i64.load offset=0x1a7 align=1 (i32.const 0))) - (set_local 0x1a8 (i64.load offset=0x1a8 align=1 (i32.const 0))) - (set_local 0x1a9 (i64.load offset=0x1a9 align=1 (i32.const 0))) - (set_local 0x1aa (i64.load offset=0x1aa align=1 (i32.const 0))) - (set_local 0x1ab (i64.load offset=0x1ab align=1 (i32.const 0))) - (set_local 0x1ac (i64.load offset=0x1ac align=1 (i32.const 0))) - (set_local 0x1ad (i64.load offset=0x1ad align=1 (i32.const 0))) - (set_local 0x1ae (i64.load offset=0x1ae align=1 (i32.const 0))) - (set_local 0x1af (i64.load offset=0x1af align=1 (i32.const 0))) - (set_local 0x1b0 (i64.load offset=0x1b0 align=1 (i32.const 0))) - (set_local 0x1b1 (i64.load offset=0x1b1 align=1 (i32.const 0))) - (set_local 0x1b2 (i64.load offset=0x1b2 align=1 (i32.const 0))) - (set_local 0x1b3 (i64.load offset=0x1b3 align=1 (i32.const 0))) - (set_local 0x1b4 (i64.load offset=0x1b4 align=1 (i32.const 0))) - (set_local 0x1b5 (i64.load offset=0x1b5 align=1 (i32.const 0))) - (set_local 0x1b6 (i64.load offset=0x1b6 align=1 (i32.const 0))) - (set_local 0x1b7 (i64.load offset=0x1b7 align=1 (i32.const 0))) - (set_local 0x1b8 (i64.load offset=0x1b8 align=1 (i32.const 0))) - (set_local 0x1b9 (i64.load offset=0x1b9 align=1 (i32.const 0))) - (set_local 0x1ba (i64.load offset=0x1ba align=1 (i32.const 0))) - (set_local 0x1bb (i64.load offset=0x1bb align=1 (i32.const 0))) - (set_local 0x1bc (i64.load offset=0x1bc align=1 (i32.const 0))) - (set_local 0x1bd (i64.load offset=0x1bd align=1 (i32.const 0))) - (set_local 0x1be (i64.load offset=0x1be align=1 (i32.const 0))) - (set_local 0x1bf (i64.load offset=0x1bf align=1 (i32.const 0))) - (set_local 0x1c0 (i64.load offset=0x1c0 align=1 (i32.const 0))) - (set_local 0x1c1 (i64.load offset=0x1c1 align=1 (i32.const 0))) - (set_local 0x1c2 (i64.load offset=0x1c2 align=1 (i32.const 0))) - (set_local 0x1c3 (i64.load offset=0x1c3 align=1 (i32.const 0))) - (set_local 0x1c4 (i64.load offset=0x1c4 align=1 (i32.const 0))) - (set_local 0x1c5 (i64.load offset=0x1c5 align=1 (i32.const 0))) - (set_local 0x1c6 (i64.load offset=0x1c6 align=1 (i32.const 0))) - (set_local 0x1c7 (i64.load offset=0x1c7 align=1 (i32.const 0))) - (set_local 0x1c8 (i64.load offset=0x1c8 align=1 (i32.const 0))) - (set_local 0x1c9 (i64.load offset=0x1c9 align=1 (i32.const 0))) - (set_local 0x1ca (i64.load offset=0x1ca align=1 (i32.const 0))) - (set_local 0x1cb (i64.load offset=0x1cb align=1 (i32.const 0))) - (set_local 0x1cc (i64.load offset=0x1cc align=1 (i32.const 0))) - (set_local 0x1cd (i64.load offset=0x1cd align=1 (i32.const 0))) - (set_local 0x1ce (i64.load offset=0x1ce align=1 (i32.const 0))) - (set_local 0x1cf (i64.load offset=0x1cf align=1 (i32.const 0))) - (set_local 0x1d0 (i64.load offset=0x1d0 align=1 (i32.const 0))) - (set_local 0x1d1 (i64.load offset=0x1d1 align=1 (i32.const 0))) - (set_local 0x1d2 (i64.load offset=0x1d2 align=1 (i32.const 0))) - (set_local 0x1d3 (i64.load offset=0x1d3 align=1 (i32.const 0))) - (set_local 0x1d4 (i64.load offset=0x1d4 align=1 (i32.const 0))) - (set_local 0x1d5 (i64.load offset=0x1d5 align=1 (i32.const 0))) - (set_local 0x1d6 (i64.load offset=0x1d6 align=1 (i32.const 0))) - (set_local 0x1d7 (i64.load offset=0x1d7 align=1 (i32.const 0))) - (set_local 0x1d8 (i64.load offset=0x1d8 align=1 (i32.const 0))) - (set_local 0x1d9 (i64.load offset=0x1d9 align=1 (i32.const 0))) - (set_local 0x1da (i64.load offset=0x1da align=1 (i32.const 0))) - (set_local 0x1db (i64.load offset=0x1db align=1 (i32.const 0))) - (set_local 0x1dc (i64.load offset=0x1dc align=1 (i32.const 0))) - (set_local 0x1dd (i64.load offset=0x1dd align=1 (i32.const 0))) - (set_local 0x1de (i64.load offset=0x1de align=1 (i32.const 0))) - (set_local 0x1df (i64.load offset=0x1df align=1 (i32.const 0))) - (set_local 0x1e0 (i64.load offset=0x1e0 align=1 (i32.const 0))) - (set_local 0x1e1 (i64.load offset=0x1e1 align=1 (i32.const 0))) - (set_local 0x1e2 (i64.load offset=0x1e2 align=1 (i32.const 0))) - (set_local 0x1e3 (i64.load offset=0x1e3 align=1 (i32.const 0))) - (set_local 0x1e4 (i64.load offset=0x1e4 align=1 (i32.const 0))) - (set_local 0x1e5 (i64.load offset=0x1e5 align=1 (i32.const 0))) - (set_local 0x1e6 (i64.load offset=0x1e6 align=1 (i32.const 0))) - (set_local 0x1e7 (i64.load offset=0x1e7 align=1 (i32.const 0))) - (set_local 0x1e8 (i64.load offset=0x1e8 align=1 (i32.const 0))) - (set_local 0x1e9 (i64.load offset=0x1e9 align=1 (i32.const 0))) - (set_local 0x1ea (i64.load offset=0x1ea align=1 (i32.const 0))) - (set_local 0x1eb (i64.load offset=0x1eb align=1 (i32.const 0))) - (set_local 0x1ec (i64.load offset=0x1ec align=1 (i32.const 0))) - (set_local 0x1ed (i64.load offset=0x1ed align=1 (i32.const 0))) - (set_local 0x1ee (i64.load offset=0x1ee align=1 (i32.const 0))) - (set_local 0x1ef (i64.load offset=0x1ef align=1 (i32.const 0))) - (set_local 0x1f0 (i64.load offset=0x1f0 align=1 (i32.const 0))) - (set_local 0x1f1 (i64.load offset=0x1f1 align=1 (i32.const 0))) - (set_local 0x1f2 (i64.load offset=0x1f2 align=1 (i32.const 0))) - (set_local 0x1f3 (i64.load offset=0x1f3 align=1 (i32.const 0))) - (set_local 0x1f4 (i64.load offset=0x1f4 align=1 (i32.const 0))) - (set_local 0x1f5 (i64.load offset=0x1f5 align=1 (i32.const 0))) - (set_local 0x1f6 (i64.load offset=0x1f6 align=1 (i32.const 0))) - (set_local 0x1f7 (i64.load offset=0x1f7 align=1 (i32.const 0))) - (set_local 0x1f8 (i64.load offset=0x1f8 align=1 (i32.const 0))) - (set_local 0x1f9 (i64.load offset=0x1f9 align=1 (i32.const 0))) - (set_local 0x1fa (i64.load offset=0x1fa align=1 (i32.const 0))) - (set_local 0x1fb (i64.load offset=0x1fb align=1 (i32.const 0))) - (set_local 0x1fc (i64.load offset=0x1fc align=1 (i32.const 0))) - (set_local 0x1fd (i64.load offset=0x1fd align=1 (i32.const 0))) - (set_local 0x1fe (i64.load offset=0x1fe align=1 (i32.const 0))) - (set_local 0x1ff (i64.load offset=0x1ff align=1 (i32.const 0))) - (set_local 0x200 (i64.load offset=0x200 align=1 (i32.const 0))) - (set_local 0x201 (i64.load offset=0x201 align=1 (i32.const 0))) - (set_local 0x202 (i64.load offset=0x202 align=1 (i32.const 0))) - (set_local 0x203 (i64.load offset=0x203 align=1 (i32.const 0))) - (set_local 0x204 (i64.load offset=0x204 align=1 (i32.const 0))) - (set_local 0x205 (i64.load offset=0x205 align=1 (i32.const 0))) - (set_local 0x206 (i64.load offset=0x206 align=1 (i32.const 0))) - (set_local 0x207 (i64.load offset=0x207 align=1 (i32.const 0))) - (set_local 0x208 (i64.load offset=0x208 align=1 (i32.const 0))) - (set_local 0x209 (i64.load offset=0x209 align=1 (i32.const 0))) - (set_local 0x20a (i64.load offset=0x20a align=1 (i32.const 0))) - (set_local 0x20b (i64.load offset=0x20b align=1 (i32.const 0))) - (set_local 0x20c (i64.load offset=0x20c align=1 (i32.const 0))) - (set_local 0x20d (i64.load offset=0x20d align=1 (i32.const 0))) - (set_local 0x20e (i64.load offset=0x20e align=1 (i32.const 0))) - (set_local 0x20f (i64.load offset=0x20f align=1 (i32.const 0))) - (set_local 0x210 (i64.load offset=0x210 align=1 (i32.const 0))) - (set_local 0x211 (i64.load offset=0x211 align=1 (i32.const 0))) - (set_local 0x212 (i64.load offset=0x212 align=1 (i32.const 0))) - (set_local 0x213 (i64.load offset=0x213 align=1 (i32.const 0))) - (set_local 0x214 (i64.load offset=0x214 align=1 (i32.const 0))) - (set_local 0x215 (i64.load offset=0x215 align=1 (i32.const 0))) - (set_local 0x216 (i64.load offset=0x216 align=1 (i32.const 0))) - (set_local 0x217 (i64.load offset=0x217 align=1 (i32.const 0))) - (set_local 0x218 (i64.load offset=0x218 align=1 (i32.const 0))) - (set_local 0x219 (i64.load offset=0x219 align=1 (i32.const 0))) - (set_local 0x21a (i64.load offset=0x21a align=1 (i32.const 0))) - (set_local 0x21b (i64.load offset=0x21b align=1 (i32.const 0))) - (set_local 0x21c (i64.load offset=0x21c align=1 (i32.const 0))) - (set_local 0x21d (i64.load offset=0x21d align=1 (i32.const 0))) - (set_local 0x21e (i64.load offset=0x21e align=1 (i32.const 0))) - (set_local 0x21f (i64.load offset=0x21f align=1 (i32.const 0))) - (set_local 0x220 (i64.load offset=0x220 align=1 (i32.const 0))) - (set_local 0x221 (i64.load offset=0x221 align=1 (i32.const 0))) - (set_local 0x222 (i64.load offset=0x222 align=1 (i32.const 0))) - (set_local 0x223 (i64.load offset=0x223 align=1 (i32.const 0))) - (set_local 0x224 (i64.load offset=0x224 align=1 (i32.const 0))) - (set_local 0x225 (i64.load offset=0x225 align=1 (i32.const 0))) - (set_local 0x226 (i64.load offset=0x226 align=1 (i32.const 0))) - (set_local 0x227 (i64.load offset=0x227 align=1 (i32.const 0))) - (set_local 0x228 (i64.load offset=0x228 align=1 (i32.const 0))) - (set_local 0x229 (i64.load offset=0x229 align=1 (i32.const 0))) - (set_local 0x22a (i64.load offset=0x22a align=1 (i32.const 0))) - (set_local 0x22b (i64.load offset=0x22b align=1 (i32.const 0))) - (set_local 0x22c (i64.load offset=0x22c align=1 (i32.const 0))) - (set_local 0x22d (i64.load offset=0x22d align=1 (i32.const 0))) - (set_local 0x22e (i64.load offset=0x22e align=1 (i32.const 0))) - (set_local 0x22f (i64.load offset=0x22f align=1 (i32.const 0))) - (set_local 0x230 (i64.load offset=0x230 align=1 (i32.const 0))) - (set_local 0x231 (i64.load offset=0x231 align=1 (i32.const 0))) - (set_local 0x232 (i64.load offset=0x232 align=1 (i32.const 0))) - (set_local 0x233 (i64.load offset=0x233 align=1 (i32.const 0))) - (set_local 0x234 (i64.load offset=0x234 align=1 (i32.const 0))) - (set_local 0x235 (i64.load offset=0x235 align=1 (i32.const 0))) - (set_local 0x236 (i64.load offset=0x236 align=1 (i32.const 0))) - (set_local 0x237 (i64.load offset=0x237 align=1 (i32.const 0))) - (set_local 0x238 (i64.load offset=0x238 align=1 (i32.const 0))) - (set_local 0x239 (i64.load offset=0x239 align=1 (i32.const 0))) - (set_local 0x23a (i64.load offset=0x23a align=1 (i32.const 0))) - (set_local 0x23b (i64.load offset=0x23b align=1 (i32.const 0))) - (set_local 0x23c (i64.load offset=0x23c align=1 (i32.const 0))) - (set_local 0x23d (i64.load offset=0x23d align=1 (i32.const 0))) - (set_local 0x23e (i64.load offset=0x23e align=1 (i32.const 0))) - (set_local 0x23f (i64.load offset=0x23f align=1 (i32.const 0))) - (set_local 0x240 (i64.load offset=0x240 align=1 (i32.const 0))) - (set_local 0x241 (i64.load offset=0x241 align=1 (i32.const 0))) - (set_local 0x242 (i64.load offset=0x242 align=1 (i32.const 0))) - (set_local 0x243 (i64.load offset=0x243 align=1 (i32.const 0))) - (set_local 0x244 (i64.load offset=0x244 align=1 (i32.const 0))) - (set_local 0x245 (i64.load offset=0x245 align=1 (i32.const 0))) - (set_local 0x246 (i64.load offset=0x246 align=1 (i32.const 0))) - (set_local 0x247 (i64.load offset=0x247 align=1 (i32.const 0))) - (set_local 0x248 (i64.load offset=0x248 align=1 (i32.const 0))) - (set_local 0x249 (i64.load offset=0x249 align=1 (i32.const 0))) - (set_local 0x24a (i64.load offset=0x24a align=1 (i32.const 0))) - (set_local 0x24b (i64.load offset=0x24b align=1 (i32.const 0))) - (set_local 0x24c (i64.load offset=0x24c align=1 (i32.const 0))) - (set_local 0x24d (i64.load offset=0x24d align=1 (i32.const 0))) - (set_local 0x24e (i64.load offset=0x24e align=1 (i32.const 0))) - (set_local 0x24f (i64.load offset=0x24f align=1 (i32.const 0))) - (set_local 0x250 (i64.load offset=0x250 align=1 (i32.const 0))) - (set_local 0x251 (i64.load offset=0x251 align=1 (i32.const 0))) - (set_local 0x252 (i64.load offset=0x252 align=1 (i32.const 0))) - (set_local 0x253 (i64.load offset=0x253 align=1 (i32.const 0))) - (set_local 0x254 (i64.load offset=0x254 align=1 (i32.const 0))) - (set_local 0x255 (i64.load offset=0x255 align=1 (i32.const 0))) - (set_local 0x256 (i64.load offset=0x256 align=1 (i32.const 0))) - (set_local 0x257 (i64.load offset=0x257 align=1 (i32.const 0))) - (set_local 0x258 (i64.load offset=0x258 align=1 (i32.const 0))) - (set_local 0x259 (i64.load offset=0x259 align=1 (i32.const 0))) - (set_local 0x25a (i64.load offset=0x25a align=1 (i32.const 0))) - (set_local 0x25b (i64.load offset=0x25b align=1 (i32.const 0))) - (set_local 0x25c (i64.load offset=0x25c align=1 (i32.const 0))) - (set_local 0x25d (i64.load offset=0x25d align=1 (i32.const 0))) - (set_local 0x25e (i64.load offset=0x25e align=1 (i32.const 0))) - (set_local 0x25f (i64.load offset=0x25f align=1 (i32.const 0))) - (set_local 0x260 (i64.load offset=0x260 align=1 (i32.const 0))) - (set_local 0x261 (i64.load offset=0x261 align=1 (i32.const 0))) - (set_local 0x262 (i64.load offset=0x262 align=1 (i32.const 0))) - (set_local 0x263 (i64.load offset=0x263 align=1 (i32.const 0))) - (set_local 0x264 (i64.load offset=0x264 align=1 (i32.const 0))) - (set_local 0x265 (i64.load offset=0x265 align=1 (i32.const 0))) - (set_local 0x266 (i64.load offset=0x266 align=1 (i32.const 0))) - (set_local 0x267 (i64.load offset=0x267 align=1 (i32.const 0))) - (set_local 0x268 (i64.load offset=0x268 align=1 (i32.const 0))) - (set_local 0x269 (i64.load offset=0x269 align=1 (i32.const 0))) - (set_local 0x26a (i64.load offset=0x26a align=1 (i32.const 0))) - (set_local 0x26b (i64.load offset=0x26b align=1 (i32.const 0))) - (set_local 0x26c (i64.load offset=0x26c align=1 (i32.const 0))) - (set_local 0x26d (i64.load offset=0x26d align=1 (i32.const 0))) - (set_local 0x26e (i64.load offset=0x26e align=1 (i32.const 0))) - (set_local 0x26f (i64.load offset=0x26f align=1 (i32.const 0))) - (set_local 0x270 (i64.load offset=0x270 align=1 (i32.const 0))) - (set_local 0x271 (i64.load offset=0x271 align=1 (i32.const 0))) - (set_local 0x272 (i64.load offset=0x272 align=1 (i32.const 0))) - (set_local 0x273 (i64.load offset=0x273 align=1 (i32.const 0))) - (set_local 0x274 (i64.load offset=0x274 align=1 (i32.const 0))) - (set_local 0x275 (i64.load offset=0x275 align=1 (i32.const 0))) - (set_local 0x276 (i64.load offset=0x276 align=1 (i32.const 0))) - (set_local 0x277 (i64.load offset=0x277 align=1 (i32.const 0))) - (set_local 0x278 (i64.load offset=0x278 align=1 (i32.const 0))) - (set_local 0x279 (i64.load offset=0x279 align=1 (i32.const 0))) - (set_local 0x27a (i64.load offset=0x27a align=1 (i32.const 0))) - (set_local 0x27b (i64.load offset=0x27b align=1 (i32.const 0))) - (set_local 0x27c (i64.load offset=0x27c align=1 (i32.const 0))) - (set_local 0x27d (i64.load offset=0x27d align=1 (i32.const 0))) - (set_local 0x27e (i64.load offset=0x27e align=1 (i32.const 0))) - (set_local 0x27f (i64.load offset=0x27f align=1 (i32.const 0))) - (set_local 0x280 (i64.load offset=0x280 align=1 (i32.const 0))) - (set_local 0x281 (i64.load offset=0x281 align=1 (i32.const 0))) - (set_local 0x282 (i64.load offset=0x282 align=1 (i32.const 0))) - (set_local 0x283 (i64.load offset=0x283 align=1 (i32.const 0))) - (set_local 0x284 (i64.load offset=0x284 align=1 (i32.const 0))) - (set_local 0x285 (i64.load offset=0x285 align=1 (i32.const 0))) - (set_local 0x286 (i64.load offset=0x286 align=1 (i32.const 0))) - (set_local 0x287 (i64.load offset=0x287 align=1 (i32.const 0))) - (set_local 0x288 (i64.load offset=0x288 align=1 (i32.const 0))) - (set_local 0x289 (i64.load offset=0x289 align=1 (i32.const 0))) - (set_local 0x28a (i64.load offset=0x28a align=1 (i32.const 0))) - (set_local 0x28b (i64.load offset=0x28b align=1 (i32.const 0))) - (set_local 0x28c (i64.load offset=0x28c align=1 (i32.const 0))) - (set_local 0x28d (i64.load offset=0x28d align=1 (i32.const 0))) - (set_local 0x28e (i64.load offset=0x28e align=1 (i32.const 0))) - (set_local 0x28f (i64.load offset=0x28f align=1 (i32.const 0))) - (set_local 0x290 (i64.load offset=0x290 align=1 (i32.const 0))) - (set_local 0x291 (i64.load offset=0x291 align=1 (i32.const 0))) - (set_local 0x292 (i64.load offset=0x292 align=1 (i32.const 0))) - (set_local 0x293 (i64.load offset=0x293 align=1 (i32.const 0))) - (set_local 0x294 (i64.load offset=0x294 align=1 (i32.const 0))) - (set_local 0x295 (i64.load offset=0x295 align=1 (i32.const 0))) - (set_local 0x296 (i64.load offset=0x296 align=1 (i32.const 0))) - (set_local 0x297 (i64.load offset=0x297 align=1 (i32.const 0))) - (set_local 0x298 (i64.load offset=0x298 align=1 (i32.const 0))) - (set_local 0x299 (i64.load offset=0x299 align=1 (i32.const 0))) - (set_local 0x29a (i64.load offset=0x29a align=1 (i32.const 0))) - (set_local 0x29b (i64.load offset=0x29b align=1 (i32.const 0))) - (set_local 0x29c (i64.load offset=0x29c align=1 (i32.const 0))) - (set_local 0x29d (i64.load offset=0x29d align=1 (i32.const 0))) - (set_local 0x29e (i64.load offset=0x29e align=1 (i32.const 0))) - (set_local 0x29f (i64.load offset=0x29f align=1 (i32.const 0))) - (set_local 0x2a0 (i64.load offset=0x2a0 align=1 (i32.const 0))) - (set_local 0x2a1 (i64.load offset=0x2a1 align=1 (i32.const 0))) - (set_local 0x2a2 (i64.load offset=0x2a2 align=1 (i32.const 0))) - (set_local 0x2a3 (i64.load offset=0x2a3 align=1 (i32.const 0))) - (set_local 0x2a4 (i64.load offset=0x2a4 align=1 (i32.const 0))) - (set_local 0x2a5 (i64.load offset=0x2a5 align=1 (i32.const 0))) - (set_local 0x2a6 (i64.load offset=0x2a6 align=1 (i32.const 0))) - (set_local 0x2a7 (i64.load offset=0x2a7 align=1 (i32.const 0))) - (set_local 0x2a8 (i64.load offset=0x2a8 align=1 (i32.const 0))) - (set_local 0x2a9 (i64.load offset=0x2a9 align=1 (i32.const 0))) - (set_local 0x2aa (i64.load offset=0x2aa align=1 (i32.const 0))) - (set_local 0x2ab (i64.load offset=0x2ab align=1 (i32.const 0))) - (set_local 0x2ac (i64.load offset=0x2ac align=1 (i32.const 0))) - (set_local 0x2ad (i64.load offset=0x2ad align=1 (i32.const 0))) - (set_local 0x2ae (i64.load offset=0x2ae align=1 (i32.const 0))) - (set_local 0x2af (i64.load offset=0x2af align=1 (i32.const 0))) - (set_local 0x2b0 (i64.load offset=0x2b0 align=1 (i32.const 0))) - (set_local 0x2b1 (i64.load offset=0x2b1 align=1 (i32.const 0))) - (set_local 0x2b2 (i64.load offset=0x2b2 align=1 (i32.const 0))) - (set_local 0x2b3 (i64.load offset=0x2b3 align=1 (i32.const 0))) - (set_local 0x2b4 (i64.load offset=0x2b4 align=1 (i32.const 0))) - (set_local 0x2b5 (i64.load offset=0x2b5 align=1 (i32.const 0))) - (set_local 0x2b6 (i64.load offset=0x2b6 align=1 (i32.const 0))) - (set_local 0x2b7 (i64.load offset=0x2b7 align=1 (i32.const 0))) - (set_local 0x2b8 (i64.load offset=0x2b8 align=1 (i32.const 0))) - (set_local 0x2b9 (i64.load offset=0x2b9 align=1 (i32.const 0))) - (set_local 0x2ba (i64.load offset=0x2ba align=1 (i32.const 0))) - (set_local 0x2bb (i64.load offset=0x2bb align=1 (i32.const 0))) - (set_local 0x2bc (i64.load offset=0x2bc align=1 (i32.const 0))) - (set_local 0x2bd (i64.load offset=0x2bd align=1 (i32.const 0))) - (set_local 0x2be (i64.load offset=0x2be align=1 (i32.const 0))) - (set_local 0x2bf (i64.load offset=0x2bf align=1 (i32.const 0))) - (set_local 0x2c0 (i64.load offset=0x2c0 align=1 (i32.const 0))) - (set_local 0x2c1 (i64.load offset=0x2c1 align=1 (i32.const 0))) - (set_local 0x2c2 (i64.load offset=0x2c2 align=1 (i32.const 0))) - (set_local 0x2c3 (i64.load offset=0x2c3 align=1 (i32.const 0))) - (set_local 0x2c4 (i64.load offset=0x2c4 align=1 (i32.const 0))) - (set_local 0x2c5 (i64.load offset=0x2c5 align=1 (i32.const 0))) - (set_local 0x2c6 (i64.load offset=0x2c6 align=1 (i32.const 0))) - (set_local 0x2c7 (i64.load offset=0x2c7 align=1 (i32.const 0))) - (set_local 0x2c8 (i64.load offset=0x2c8 align=1 (i32.const 0))) - (set_local 0x2c9 (i64.load offset=0x2c9 align=1 (i32.const 0))) - (set_local 0x2ca (i64.load offset=0x2ca align=1 (i32.const 0))) - (set_local 0x2cb (i64.load offset=0x2cb align=1 (i32.const 0))) - (set_local 0x2cc (i64.load offset=0x2cc align=1 (i32.const 0))) - (set_local 0x2cd (i64.load offset=0x2cd align=1 (i32.const 0))) - (set_local 0x2ce (i64.load offset=0x2ce align=1 (i32.const 0))) - (set_local 0x2cf (i64.load offset=0x2cf align=1 (i32.const 0))) - (set_local 0x2d0 (i64.load offset=0x2d0 align=1 (i32.const 0))) - (set_local 0x2d1 (i64.load offset=0x2d1 align=1 (i32.const 0))) - (set_local 0x2d2 (i64.load offset=0x2d2 align=1 (i32.const 0))) - (set_local 0x2d3 (i64.load offset=0x2d3 align=1 (i32.const 0))) - (set_local 0x2d4 (i64.load offset=0x2d4 align=1 (i32.const 0))) - (set_local 0x2d5 (i64.load offset=0x2d5 align=1 (i32.const 0))) - (set_local 0x2d6 (i64.load offset=0x2d6 align=1 (i32.const 0))) - (set_local 0x2d7 (i64.load offset=0x2d7 align=1 (i32.const 0))) - (set_local 0x2d8 (i64.load offset=0x2d8 align=1 (i32.const 0))) - (set_local 0x2d9 (i64.load offset=0x2d9 align=1 (i32.const 0))) - (set_local 0x2da (i64.load offset=0x2da align=1 (i32.const 0))) - (set_local 0x2db (i64.load offset=0x2db align=1 (i32.const 0))) - (set_local 0x2dc (i64.load offset=0x2dc align=1 (i32.const 0))) - (set_local 0x2dd (i64.load offset=0x2dd align=1 (i32.const 0))) - (set_local 0x2de (i64.load offset=0x2de align=1 (i32.const 0))) - (set_local 0x2df (i64.load offset=0x2df align=1 (i32.const 0))) - (set_local 0x2e0 (i64.load offset=0x2e0 align=1 (i32.const 0))) - (set_local 0x2e1 (i64.load offset=0x2e1 align=1 (i32.const 0))) - (set_local 0x2e2 (i64.load offset=0x2e2 align=1 (i32.const 0))) - (set_local 0x2e3 (i64.load offset=0x2e3 align=1 (i32.const 0))) - (set_local 0x2e4 (i64.load offset=0x2e4 align=1 (i32.const 0))) - (set_local 0x2e5 (i64.load offset=0x2e5 align=1 (i32.const 0))) - (set_local 0x2e6 (i64.load offset=0x2e6 align=1 (i32.const 0))) - (set_local 0x2e7 (i64.load offset=0x2e7 align=1 (i32.const 0))) - (set_local 0x2e8 (i64.load offset=0x2e8 align=1 (i32.const 0))) - (set_local 0x2e9 (i64.load offset=0x2e9 align=1 (i32.const 0))) - (set_local 0x2ea (i64.load offset=0x2ea align=1 (i32.const 0))) - (set_local 0x2eb (i64.load offset=0x2eb align=1 (i32.const 0))) - (set_local 0x2ec (i64.load offset=0x2ec align=1 (i32.const 0))) - (set_local 0x2ed (i64.load offset=0x2ed align=1 (i32.const 0))) - (set_local 0x2ee (i64.load offset=0x2ee align=1 (i32.const 0))) - (set_local 0x2ef (i64.load offset=0x2ef align=1 (i32.const 0))) - (set_local 0x2f0 (i64.load offset=0x2f0 align=1 (i32.const 0))) - (set_local 0x2f1 (i64.load offset=0x2f1 align=1 (i32.const 0))) - (set_local 0x2f2 (i64.load offset=0x2f2 align=1 (i32.const 0))) - (set_local 0x2f3 (i64.load offset=0x2f3 align=1 (i32.const 0))) - (set_local 0x2f4 (i64.load offset=0x2f4 align=1 (i32.const 0))) - (set_local 0x2f5 (i64.load offset=0x2f5 align=1 (i32.const 0))) - (set_local 0x2f6 (i64.load offset=0x2f6 align=1 (i32.const 0))) - (set_local 0x2f7 (i64.load offset=0x2f7 align=1 (i32.const 0))) - (set_local 0x2f8 (i64.load offset=0x2f8 align=1 (i32.const 0))) - (set_local 0x2f9 (i64.load offset=0x2f9 align=1 (i32.const 0))) - (set_local 0x2fa (i64.load offset=0x2fa align=1 (i32.const 0))) - (set_local 0x2fb (i64.load offset=0x2fb align=1 (i32.const 0))) - (set_local 0x2fc (i64.load offset=0x2fc align=1 (i32.const 0))) - (set_local 0x2fd (i64.load offset=0x2fd align=1 (i32.const 0))) - (set_local 0x2fe (i64.load offset=0x2fe align=1 (i32.const 0))) - (set_local 0x2ff (i64.load offset=0x2ff align=1 (i32.const 0))) - (set_local 0x300 (i64.load offset=0x300 align=1 (i32.const 0))) - (set_local 0x301 (i64.load offset=0x301 align=1 (i32.const 0))) - (set_local 0x302 (i64.load offset=0x302 align=1 (i32.const 0))) - (set_local 0x303 (i64.load offset=0x303 align=1 (i32.const 0))) - (set_local 0x304 (i64.load offset=0x304 align=1 (i32.const 0))) - (set_local 0x305 (i64.load offset=0x305 align=1 (i32.const 0))) - (set_local 0x306 (i64.load offset=0x306 align=1 (i32.const 0))) - (set_local 0x307 (i64.load offset=0x307 align=1 (i32.const 0))) - (set_local 0x308 (i64.load offset=0x308 align=1 (i32.const 0))) - (set_local 0x309 (i64.load offset=0x309 align=1 (i32.const 0))) - (set_local 0x30a (i64.load offset=0x30a align=1 (i32.const 0))) - (set_local 0x30b (i64.load offset=0x30b align=1 (i32.const 0))) - (set_local 0x30c (i64.load offset=0x30c align=1 (i32.const 0))) - (set_local 0x30d (i64.load offset=0x30d align=1 (i32.const 0))) - (set_local 0x30e (i64.load offset=0x30e align=1 (i32.const 0))) - (set_local 0x30f (i64.load offset=0x30f align=1 (i32.const 0))) - (set_local 0x310 (i64.load offset=0x310 align=1 (i32.const 0))) - (set_local 0x311 (i64.load offset=0x311 align=1 (i32.const 0))) - (set_local 0x312 (i64.load offset=0x312 align=1 (i32.const 0))) - (set_local 0x313 (i64.load offset=0x313 align=1 (i32.const 0))) - (set_local 0x314 (i64.load offset=0x314 align=1 (i32.const 0))) - (set_local 0x315 (i64.load offset=0x315 align=1 (i32.const 0))) - (set_local 0x316 (i64.load offset=0x316 align=1 (i32.const 0))) - (set_local 0x317 (i64.load offset=0x317 align=1 (i32.const 0))) - (set_local 0x318 (i64.load offset=0x318 align=1 (i32.const 0))) - (set_local 0x319 (i64.load offset=0x319 align=1 (i32.const 0))) - (set_local 0x31a (i64.load offset=0x31a align=1 (i32.const 0))) - (set_local 0x31b (i64.load offset=0x31b align=1 (i32.const 0))) - (set_local 0x31c (i64.load offset=0x31c align=1 (i32.const 0))) - (set_local 0x31d (i64.load offset=0x31d align=1 (i32.const 0))) - (set_local 0x31e (i64.load offset=0x31e align=1 (i32.const 0))) - (set_local 0x31f (i64.load offset=0x31f align=1 (i32.const 0))) - (set_local 0x320 (i64.load offset=0x320 align=1 (i32.const 0))) - (set_local 0x321 (i64.load offset=0x321 align=1 (i32.const 0))) - (set_local 0x322 (i64.load offset=0x322 align=1 (i32.const 0))) - (set_local 0x323 (i64.load offset=0x323 align=1 (i32.const 0))) - (set_local 0x324 (i64.load offset=0x324 align=1 (i32.const 0))) - (set_local 0x325 (i64.load offset=0x325 align=1 (i32.const 0))) - (set_local 0x326 (i64.load offset=0x326 align=1 (i32.const 0))) - (set_local 0x327 (i64.load offset=0x327 align=1 (i32.const 0))) - (set_local 0x328 (i64.load offset=0x328 align=1 (i32.const 0))) - (set_local 0x329 (i64.load offset=0x329 align=1 (i32.const 0))) - (set_local 0x32a (i64.load offset=0x32a align=1 (i32.const 0))) - (set_local 0x32b (i64.load offset=0x32b align=1 (i32.const 0))) - (set_local 0x32c (i64.load offset=0x32c align=1 (i32.const 0))) - (set_local 0x32d (i64.load offset=0x32d align=1 (i32.const 0))) - (set_local 0x32e (i64.load offset=0x32e align=1 (i32.const 0))) - (set_local 0x32f (i64.load offset=0x32f align=1 (i32.const 0))) - (set_local 0x330 (i64.load offset=0x330 align=1 (i32.const 0))) - (set_local 0x331 (i64.load offset=0x331 align=1 (i32.const 0))) - (set_local 0x332 (i64.load offset=0x332 align=1 (i32.const 0))) - (set_local 0x333 (i64.load offset=0x333 align=1 (i32.const 0))) - (set_local 0x334 (i64.load offset=0x334 align=1 (i32.const 0))) - (set_local 0x335 (i64.load offset=0x335 align=1 (i32.const 0))) - (set_local 0x336 (i64.load offset=0x336 align=1 (i32.const 0))) - (set_local 0x337 (i64.load offset=0x337 align=1 (i32.const 0))) - (set_local 0x338 (i64.load offset=0x338 align=1 (i32.const 0))) - (set_local 0x339 (i64.load offset=0x339 align=1 (i32.const 0))) - (set_local 0x33a (i64.load offset=0x33a align=1 (i32.const 0))) - (set_local 0x33b (i64.load offset=0x33b align=1 (i32.const 0))) - (set_local 0x33c (i64.load offset=0x33c align=1 (i32.const 0))) - (set_local 0x33d (i64.load offset=0x33d align=1 (i32.const 0))) - (set_local 0x33e (i64.load offset=0x33e align=1 (i32.const 0))) - (set_local 0x33f (i64.load offset=0x33f align=1 (i32.const 0))) - (set_local 0x340 (i64.load offset=0x340 align=1 (i32.const 0))) - (set_local 0x341 (i64.load offset=0x341 align=1 (i32.const 0))) - (set_local 0x342 (i64.load offset=0x342 align=1 (i32.const 0))) - (set_local 0x343 (i64.load offset=0x343 align=1 (i32.const 0))) - (set_local 0x344 (i64.load offset=0x344 align=1 (i32.const 0))) - (set_local 0x345 (i64.load offset=0x345 align=1 (i32.const 0))) - (set_local 0x346 (i64.load offset=0x346 align=1 (i32.const 0))) - (set_local 0x347 (i64.load offset=0x347 align=1 (i32.const 0))) - (set_local 0x348 (i64.load offset=0x348 align=1 (i32.const 0))) - (set_local 0x349 (i64.load offset=0x349 align=1 (i32.const 0))) - (set_local 0x34a (i64.load offset=0x34a align=1 (i32.const 0))) - (set_local 0x34b (i64.load offset=0x34b align=1 (i32.const 0))) - (set_local 0x34c (i64.load offset=0x34c align=1 (i32.const 0))) - (set_local 0x34d (i64.load offset=0x34d align=1 (i32.const 0))) - (set_local 0x34e (i64.load offset=0x34e align=1 (i32.const 0))) - (set_local 0x34f (i64.load offset=0x34f align=1 (i32.const 0))) - (set_local 0x350 (i64.load offset=0x350 align=1 (i32.const 0))) - (set_local 0x351 (i64.load offset=0x351 align=1 (i32.const 0))) - (set_local 0x352 (i64.load offset=0x352 align=1 (i32.const 0))) - (set_local 0x353 (i64.load offset=0x353 align=1 (i32.const 0))) - (set_local 0x354 (i64.load offset=0x354 align=1 (i32.const 0))) - (set_local 0x355 (i64.load offset=0x355 align=1 (i32.const 0))) - (set_local 0x356 (i64.load offset=0x356 align=1 (i32.const 0))) - (set_local 0x357 (i64.load offset=0x357 align=1 (i32.const 0))) - (set_local 0x358 (i64.load offset=0x358 align=1 (i32.const 0))) - (set_local 0x359 (i64.load offset=0x359 align=1 (i32.const 0))) - (set_local 0x35a (i64.load offset=0x35a align=1 (i32.const 0))) - (set_local 0x35b (i64.load offset=0x35b align=1 (i32.const 0))) - (set_local 0x35c (i64.load offset=0x35c align=1 (i32.const 0))) - (set_local 0x35d (i64.load offset=0x35d align=1 (i32.const 0))) - (set_local 0x35e (i64.load offset=0x35e align=1 (i32.const 0))) - (set_local 0x35f (i64.load offset=0x35f align=1 (i32.const 0))) - (set_local 0x360 (i64.load offset=0x360 align=1 (i32.const 0))) - (set_local 0x361 (i64.load offset=0x361 align=1 (i32.const 0))) - (set_local 0x362 (i64.load offset=0x362 align=1 (i32.const 0))) - (set_local 0x363 (i64.load offset=0x363 align=1 (i32.const 0))) - (set_local 0x364 (i64.load offset=0x364 align=1 (i32.const 0))) - (set_local 0x365 (i64.load offset=0x365 align=1 (i32.const 0))) - (set_local 0x366 (i64.load offset=0x366 align=1 (i32.const 0))) - (set_local 0x367 (i64.load offset=0x367 align=1 (i32.const 0))) - (set_local 0x368 (i64.load offset=0x368 align=1 (i32.const 0))) - (set_local 0x369 (i64.load offset=0x369 align=1 (i32.const 0))) - (set_local 0x36a (i64.load offset=0x36a align=1 (i32.const 0))) - (set_local 0x36b (i64.load offset=0x36b align=1 (i32.const 0))) - (set_local 0x36c (i64.load offset=0x36c align=1 (i32.const 0))) - (set_local 0x36d (i64.load offset=0x36d align=1 (i32.const 0))) - (set_local 0x36e (i64.load offset=0x36e align=1 (i32.const 0))) - (set_local 0x36f (i64.load offset=0x36f align=1 (i32.const 0))) - (set_local 0x370 (i64.load offset=0x370 align=1 (i32.const 0))) - (set_local 0x371 (i64.load offset=0x371 align=1 (i32.const 0))) - (set_local 0x372 (i64.load offset=0x372 align=1 (i32.const 0))) - (set_local 0x373 (i64.load offset=0x373 align=1 (i32.const 0))) - (set_local 0x374 (i64.load offset=0x374 align=1 (i32.const 0))) - (set_local 0x375 (i64.load offset=0x375 align=1 (i32.const 0))) - (set_local 0x376 (i64.load offset=0x376 align=1 (i32.const 0))) - (set_local 0x377 (i64.load offset=0x377 align=1 (i32.const 0))) - (set_local 0x378 (i64.load offset=0x378 align=1 (i32.const 0))) - (set_local 0x379 (i64.load offset=0x379 align=1 (i32.const 0))) - (set_local 0x37a (i64.load offset=0x37a align=1 (i32.const 0))) - (set_local 0x37b (i64.load offset=0x37b align=1 (i32.const 0))) - (set_local 0x37c (i64.load offset=0x37c align=1 (i32.const 0))) - (set_local 0x37d (i64.load offset=0x37d align=1 (i32.const 0))) - (set_local 0x37e (i64.load offset=0x37e align=1 (i32.const 0))) - (set_local 0x37f (i64.load offset=0x37f align=1 (i32.const 0))) - (set_local 0x380 (i64.load offset=0x380 align=1 (i32.const 0))) - (set_local 0x381 (i64.load offset=0x381 align=1 (i32.const 0))) - (set_local 0x382 (i64.load offset=0x382 align=1 (i32.const 0))) - (set_local 0x383 (i64.load offset=0x383 align=1 (i32.const 0))) - (set_local 0x384 (i64.load offset=0x384 align=1 (i32.const 0))) - (set_local 0x385 (i64.load offset=0x385 align=1 (i32.const 0))) - (set_local 0x386 (i64.load offset=0x386 align=1 (i32.const 0))) - (set_local 0x387 (i64.load offset=0x387 align=1 (i32.const 0))) - (set_local 0x388 (i64.load offset=0x388 align=1 (i32.const 0))) - (set_local 0x389 (i64.load offset=0x389 align=1 (i32.const 0))) - (set_local 0x38a (i64.load offset=0x38a align=1 (i32.const 0))) - (set_local 0x38b (i64.load offset=0x38b align=1 (i32.const 0))) - (set_local 0x38c (i64.load offset=0x38c align=1 (i32.const 0))) - (set_local 0x38d (i64.load offset=0x38d align=1 (i32.const 0))) - (set_local 0x38e (i64.load offset=0x38e align=1 (i32.const 0))) - (set_local 0x38f (i64.load offset=0x38f align=1 (i32.const 0))) - (set_local 0x390 (i64.load offset=0x390 align=1 (i32.const 0))) - (set_local 0x391 (i64.load offset=0x391 align=1 (i32.const 0))) - (set_local 0x392 (i64.load offset=0x392 align=1 (i32.const 0))) - (set_local 0x393 (i64.load offset=0x393 align=1 (i32.const 0))) - (set_local 0x394 (i64.load offset=0x394 align=1 (i32.const 0))) - (set_local 0x395 (i64.load offset=0x395 align=1 (i32.const 0))) - (set_local 0x396 (i64.load offset=0x396 align=1 (i32.const 0))) - (set_local 0x397 (i64.load offset=0x397 align=1 (i32.const 0))) - (set_local 0x398 (i64.load offset=0x398 align=1 (i32.const 0))) - (set_local 0x399 (i64.load offset=0x399 align=1 (i32.const 0))) - (set_local 0x39a (i64.load offset=0x39a align=1 (i32.const 0))) - (set_local 0x39b (i64.load offset=0x39b align=1 (i32.const 0))) - (set_local 0x39c (i64.load offset=0x39c align=1 (i32.const 0))) - (set_local 0x39d (i64.load offset=0x39d align=1 (i32.const 0))) - (set_local 0x39e (i64.load offset=0x39e align=1 (i32.const 0))) - (set_local 0x39f (i64.load offset=0x39f align=1 (i32.const 0))) - (set_local 0x3a0 (i64.load offset=0x3a0 align=1 (i32.const 0))) - (set_local 0x3a1 (i64.load offset=0x3a1 align=1 (i32.const 0))) - (set_local 0x3a2 (i64.load offset=0x3a2 align=1 (i32.const 0))) - (set_local 0x3a3 (i64.load offset=0x3a3 align=1 (i32.const 0))) - (set_local 0x3a4 (i64.load offset=0x3a4 align=1 (i32.const 0))) - (set_local 0x3a5 (i64.load offset=0x3a5 align=1 (i32.const 0))) - (set_local 0x3a6 (i64.load offset=0x3a6 align=1 (i32.const 0))) - (set_local 0x3a7 (i64.load offset=0x3a7 align=1 (i32.const 0))) - (set_local 0x3a8 (i64.load offset=0x3a8 align=1 (i32.const 0))) - (set_local 0x3a9 (i64.load offset=0x3a9 align=1 (i32.const 0))) - (set_local 0x3aa (i64.load offset=0x3aa align=1 (i32.const 0))) - (set_local 0x3ab (i64.load offset=0x3ab align=1 (i32.const 0))) - (set_local 0x3ac (i64.load offset=0x3ac align=1 (i32.const 0))) - (set_local 0x3ad (i64.load offset=0x3ad align=1 (i32.const 0))) - (set_local 0x3ae (i64.load offset=0x3ae align=1 (i32.const 0))) - (set_local 0x3af (i64.load offset=0x3af align=1 (i32.const 0))) - (set_local 0x3b0 (i64.load offset=0x3b0 align=1 (i32.const 0))) - (set_local 0x3b1 (i64.load offset=0x3b1 align=1 (i32.const 0))) - (set_local 0x3b2 (i64.load offset=0x3b2 align=1 (i32.const 0))) - (set_local 0x3b3 (i64.load offset=0x3b3 align=1 (i32.const 0))) - (set_local 0x3b4 (i64.load offset=0x3b4 align=1 (i32.const 0))) - (set_local 0x3b5 (i64.load offset=0x3b5 align=1 (i32.const 0))) - (set_local 0x3b6 (i64.load offset=0x3b6 align=1 (i32.const 0))) - (set_local 0x3b7 (i64.load offset=0x3b7 align=1 (i32.const 0))) - (set_local 0x3b8 (i64.load offset=0x3b8 align=1 (i32.const 0))) - (set_local 0x3b9 (i64.load offset=0x3b9 align=1 (i32.const 0))) - (set_local 0x3ba (i64.load offset=0x3ba align=1 (i32.const 0))) - (set_local 0x3bb (i64.load offset=0x3bb align=1 (i32.const 0))) - (set_local 0x3bc (i64.load offset=0x3bc align=1 (i32.const 0))) - (set_local 0x3bd (i64.load offset=0x3bd align=1 (i32.const 0))) - (set_local 0x3be (i64.load offset=0x3be align=1 (i32.const 0))) - (set_local 0x3bf (i64.load offset=0x3bf align=1 (i32.const 0))) - (set_local 0x3c0 (i64.load offset=0x3c0 align=1 (i32.const 0))) - (set_local 0x3c1 (i64.load offset=0x3c1 align=1 (i32.const 0))) - (set_local 0x3c2 (i64.load offset=0x3c2 align=1 (i32.const 0))) - (set_local 0x3c3 (i64.load offset=0x3c3 align=1 (i32.const 0))) - (set_local 0x3c4 (i64.load offset=0x3c4 align=1 (i32.const 0))) - (set_local 0x3c5 (i64.load offset=0x3c5 align=1 (i32.const 0))) - (set_local 0x3c6 (i64.load offset=0x3c6 align=1 (i32.const 0))) - (set_local 0x3c7 (i64.load offset=0x3c7 align=1 (i32.const 0))) - (set_local 0x3c8 (i64.load offset=0x3c8 align=1 (i32.const 0))) - (set_local 0x3c9 (i64.load offset=0x3c9 align=1 (i32.const 0))) - (set_local 0x3ca (i64.load offset=0x3ca align=1 (i32.const 0))) - (set_local 0x3cb (i64.load offset=0x3cb align=1 (i32.const 0))) - (set_local 0x3cc (i64.load offset=0x3cc align=1 (i32.const 0))) - (set_local 0x3cd (i64.load offset=0x3cd align=1 (i32.const 0))) - (set_local 0x3ce (i64.load offset=0x3ce align=1 (i32.const 0))) - (set_local 0x3cf (i64.load offset=0x3cf align=1 (i32.const 0))) - (set_local 0x3d0 (i64.load offset=0x3d0 align=1 (i32.const 0))) - (set_local 0x3d1 (i64.load offset=0x3d1 align=1 (i32.const 0))) - (set_local 0x3d2 (i64.load offset=0x3d2 align=1 (i32.const 0))) - (set_local 0x3d3 (i64.load offset=0x3d3 align=1 (i32.const 0))) - (set_local 0x3d4 (i64.load offset=0x3d4 align=1 (i32.const 0))) - (set_local 0x3d5 (i64.load offset=0x3d5 align=1 (i32.const 0))) - (set_local 0x3d6 (i64.load offset=0x3d6 align=1 (i32.const 0))) - (set_local 0x3d7 (i64.load offset=0x3d7 align=1 (i32.const 0))) - (set_local 0x3d8 (i64.load offset=0x3d8 align=1 (i32.const 0))) - (set_local 0x3d9 (i64.load offset=0x3d9 align=1 (i32.const 0))) - (set_local 0x3da (i64.load offset=0x3da align=1 (i32.const 0))) - (set_local 0x3db (i64.load offset=0x3db align=1 (i32.const 0))) - (set_local 0x3dc (i64.load offset=0x3dc align=1 (i32.const 0))) - (set_local 0x3dd (i64.load offset=0x3dd align=1 (i32.const 0))) - (set_local 0x3de (i64.load offset=0x3de align=1 (i32.const 0))) - (set_local 0x3df (i64.load offset=0x3df align=1 (i32.const 0))) - (set_local 0x3e0 (i64.load offset=0x3e0 align=1 (i32.const 0))) - (set_local 0x3e1 (i64.load offset=0x3e1 align=1 (i32.const 0))) - (set_local 0x3e2 (i64.load offset=0x3e2 align=1 (i32.const 0))) - (set_local 0x3e3 (i64.load offset=0x3e3 align=1 (i32.const 0))) - (set_local 0x3e4 (i64.load offset=0x3e4 align=1 (i32.const 0))) - (set_local 0x3e5 (i64.load offset=0x3e5 align=1 (i32.const 0))) - (set_local 0x3e6 (i64.load offset=0x3e6 align=1 (i32.const 0))) - (set_local 0x3e7 (i64.load offset=0x3e7 align=1 (i32.const 0))) - (set_local 0x3e8 (i64.load offset=0x3e8 align=1 (i32.const 0))) - (set_local 0x3e9 (i64.load offset=0x3e9 align=1 (i32.const 0))) - (set_local 0x3ea (i64.load offset=0x3ea align=1 (i32.const 0))) - (set_local 0x3eb (i64.load offset=0x3eb align=1 (i32.const 0))) - (set_local 0x3ec (i64.load offset=0x3ec align=1 (i32.const 0))) - (set_local 0x3ed (i64.load offset=0x3ed align=1 (i32.const 0))) - (set_local 0x3ee (i64.load offset=0x3ee align=1 (i32.const 0))) - (set_local 0x3ef (i64.load offset=0x3ef align=1 (i32.const 0))) - (set_local 0x3f0 (i64.load offset=0x3f0 align=1 (i32.const 0))) - (set_local 0x3f1 (i64.load offset=0x3f1 align=1 (i32.const 0))) - (set_local 0x3f2 (i64.load offset=0x3f2 align=1 (i32.const 0))) - (set_local 0x3f3 (i64.load offset=0x3f3 align=1 (i32.const 0))) - (set_local 0x3f4 (i64.load offset=0x3f4 align=1 (i32.const 0))) - (set_local 0x3f5 (i64.load offset=0x3f5 align=1 (i32.const 0))) - (set_local 0x3f6 (i64.load offset=0x3f6 align=1 (i32.const 0))) - (set_local 0x3f7 (i64.load offset=0x3f7 align=1 (i32.const 0))) - (set_local 0x3f8 (i64.load offset=0x3f8 align=1 (i32.const 0))) - (set_local 0x3f9 (i64.load offset=0x3f9 align=1 (i32.const 0))) - (set_local 0x3fa (i64.load offset=0x3fa align=1 (i32.const 0))) - (set_local 0x3fb (i64.load offset=0x3fb align=1 (i32.const 0))) - (set_local 0x3fc (i64.load offset=0x3fc align=1 (i32.const 0))) - (set_local 0x3fd (i64.load offset=0x3fd align=1 (i32.const 0))) - (set_local 0x3fe (i64.load offset=0x3fe align=1 (i32.const 0))) - (set_local 0x3ff (i64.load offset=0x3ff align=1 (i32.const 0))) - (set_local 0x400 (i64.load offset=0x400 align=1 (i32.const 0))) - (set_local 0x401 (i64.load offset=0x401 align=1 (i32.const 0))) - (set_local 0x402 (i64.load offset=0x402 align=1 (i32.const 0))) - (set_local 0x403 (i64.load offset=0x403 align=1 (i32.const 0))) - (set_local 0x404 (i64.load offset=0x404 align=1 (i32.const 0))) - (set_local 0x405 (i64.load offset=0x405 align=1 (i32.const 0))) - (set_local 0x406 (i64.load offset=0x406 align=1 (i32.const 0))) - (set_local 0x407 (i64.load offset=0x407 align=1 (i32.const 0))) - (set_local 0x408 (i64.load offset=0x408 align=1 (i32.const 0))) - (set_local 0x409 (i64.load offset=0x409 align=1 (i32.const 0))) - (set_local 0x40a (i64.load offset=0x40a align=1 (i32.const 0))) - (set_local 0x40b (i64.load offset=0x40b align=1 (i32.const 0))) - (set_local 0x40c (i64.load offset=0x40c align=1 (i32.const 0))) - (set_local 0x40d (i64.load offset=0x40d align=1 (i32.const 0))) - (set_local 0x40e (i64.load offset=0x40e align=1 (i32.const 0))) - (set_local 0x40f (i64.load offset=0x40f align=1 (i32.const 0))) - (set_local 0x410 (i64.load offset=0x410 align=1 (i32.const 0))) - (set_local 0x411 (i64.load offset=0x411 align=1 (i32.const 0))) - (set_local 0x412 (i64.load offset=0x412 align=1 (i32.const 0))) - (set_local 0x413 (i64.load offset=0x413 align=1 (i32.const 0))) - (set_local 0x414 (i64.load offset=0x414 align=1 (i32.const 0))) - (set_local 0x415 (i64.load offset=0x415 align=1 (i32.const 0))) - (set_local 0x416 (i64.load offset=0x416 align=1 (i32.const 0))) - (set_local 0x417 (i64.load offset=0x417 align=1 (i32.const 0))) - (set_local 0x418 (i64.load offset=0x418 align=1 (i32.const 0))) - (set_local 0x419 (i64.load offset=0x419 align=1 (i32.const 0))) - (set_local 0x41a (i64.load offset=0x41a align=1 (i32.const 0))) - (set_local 0x41b (i64.load offset=0x41b align=1 (i32.const 0))) - (set_local 0x41c (i64.load offset=0x41c align=1 (i32.const 0))) - (set_local 0x41d (i64.load offset=0x41d align=1 (i32.const 0))) - (set_local 0x41e (i64.load offset=0x41e align=1 (i32.const 0))) - (set_local 0x41f (i64.load offset=0x41f align=1 (i32.const 0))) - - ;; store the locals back to memory - (i64.store offset=0x000 align=1 (i32.const 0) (get_local 0x000)) - (i64.store offset=0x001 align=1 (i32.const 0) (get_local 0x001)) - (i64.store offset=0x002 align=1 (i32.const 0) (get_local 0x002)) - (i64.store offset=0x003 align=1 (i32.const 0) (get_local 0x003)) - (i64.store offset=0x004 align=1 (i32.const 0) (get_local 0x004)) - (i64.store offset=0x005 align=1 (i32.const 0) (get_local 0x005)) - (i64.store offset=0x006 align=1 (i32.const 0) (get_local 0x006)) - (i64.store offset=0x007 align=1 (i32.const 0) (get_local 0x007)) - (i64.store offset=0x008 align=1 (i32.const 0) (get_local 0x008)) - (i64.store offset=0x009 align=1 (i32.const 0) (get_local 0x009)) - (i64.store offset=0x00a align=1 (i32.const 0) (get_local 0x00a)) - (i64.store offset=0x00b align=1 (i32.const 0) (get_local 0x00b)) - (i64.store offset=0x00c align=1 (i32.const 0) (get_local 0x00c)) - (i64.store offset=0x00d align=1 (i32.const 0) (get_local 0x00d)) - (i64.store offset=0x00e align=1 (i32.const 0) (get_local 0x00e)) - (i64.store offset=0x00f align=1 (i32.const 0) (get_local 0x00f)) - (i64.store offset=0x010 align=1 (i32.const 0) (get_local 0x010)) - (i64.store offset=0x011 align=1 (i32.const 0) (get_local 0x011)) - (i64.store offset=0x012 align=1 (i32.const 0) (get_local 0x012)) - (i64.store offset=0x013 align=1 (i32.const 0) (get_local 0x013)) - (i64.store offset=0x014 align=1 (i32.const 0) (get_local 0x014)) - (i64.store offset=0x015 align=1 (i32.const 0) (get_local 0x015)) - (i64.store offset=0x016 align=1 (i32.const 0) (get_local 0x016)) - (i64.store offset=0x017 align=1 (i32.const 0) (get_local 0x017)) - (i64.store offset=0x018 align=1 (i32.const 0) (get_local 0x018)) - (i64.store offset=0x019 align=1 (i32.const 0) (get_local 0x019)) - (i64.store offset=0x01a align=1 (i32.const 0) (get_local 0x01a)) - (i64.store offset=0x01b align=1 (i32.const 0) (get_local 0x01b)) - (i64.store offset=0x01c align=1 (i32.const 0) (get_local 0x01c)) - (i64.store offset=0x01d align=1 (i32.const 0) (get_local 0x01d)) - (i64.store offset=0x01e align=1 (i32.const 0) (get_local 0x01e)) - (i64.store offset=0x01f align=1 (i32.const 0) (get_local 0x01f)) - (i64.store offset=0x020 align=1 (i32.const 0) (get_local 0x020)) - (i64.store offset=0x021 align=1 (i32.const 0) (get_local 0x021)) - (i64.store offset=0x022 align=1 (i32.const 0) (get_local 0x022)) - (i64.store offset=0x023 align=1 (i32.const 0) (get_local 0x023)) - (i64.store offset=0x024 align=1 (i32.const 0) (get_local 0x024)) - (i64.store offset=0x025 align=1 (i32.const 0) (get_local 0x025)) - (i64.store offset=0x026 align=1 (i32.const 0) (get_local 0x026)) - (i64.store offset=0x027 align=1 (i32.const 0) (get_local 0x027)) - (i64.store offset=0x028 align=1 (i32.const 0) (get_local 0x028)) - (i64.store offset=0x029 align=1 (i32.const 0) (get_local 0x029)) - (i64.store offset=0x02a align=1 (i32.const 0) (get_local 0x02a)) - (i64.store offset=0x02b align=1 (i32.const 0) (get_local 0x02b)) - (i64.store offset=0x02c align=1 (i32.const 0) (get_local 0x02c)) - (i64.store offset=0x02d align=1 (i32.const 0) (get_local 0x02d)) - (i64.store offset=0x02e align=1 (i32.const 0) (get_local 0x02e)) - (i64.store offset=0x02f align=1 (i32.const 0) (get_local 0x02f)) - (i64.store offset=0x030 align=1 (i32.const 0) (get_local 0x030)) - (i64.store offset=0x031 align=1 (i32.const 0) (get_local 0x031)) - (i64.store offset=0x032 align=1 (i32.const 0) (get_local 0x032)) - (i64.store offset=0x033 align=1 (i32.const 0) (get_local 0x033)) - (i64.store offset=0x034 align=1 (i32.const 0) (get_local 0x034)) - (i64.store offset=0x035 align=1 (i32.const 0) (get_local 0x035)) - (i64.store offset=0x036 align=1 (i32.const 0) (get_local 0x036)) - (i64.store offset=0x037 align=1 (i32.const 0) (get_local 0x037)) - (i64.store offset=0x038 align=1 (i32.const 0) (get_local 0x038)) - (i64.store offset=0x039 align=1 (i32.const 0) (get_local 0x039)) - (i64.store offset=0x03a align=1 (i32.const 0) (get_local 0x03a)) - (i64.store offset=0x03b align=1 (i32.const 0) (get_local 0x03b)) - (i64.store offset=0x03c align=1 (i32.const 0) (get_local 0x03c)) - (i64.store offset=0x03d align=1 (i32.const 0) (get_local 0x03d)) - (i64.store offset=0x03e align=1 (i32.const 0) (get_local 0x03e)) - (i64.store offset=0x03f align=1 (i32.const 0) (get_local 0x03f)) - (i64.store offset=0x040 align=1 (i32.const 0) (get_local 0x040)) - (i64.store offset=0x041 align=1 (i32.const 0) (get_local 0x041)) - (i64.store offset=0x042 align=1 (i32.const 0) (get_local 0x042)) - (i64.store offset=0x043 align=1 (i32.const 0) (get_local 0x043)) - (i64.store offset=0x044 align=1 (i32.const 0) (get_local 0x044)) - (i64.store offset=0x045 align=1 (i32.const 0) (get_local 0x045)) - (i64.store offset=0x046 align=1 (i32.const 0) (get_local 0x046)) - (i64.store offset=0x047 align=1 (i32.const 0) (get_local 0x047)) - (i64.store offset=0x048 align=1 (i32.const 0) (get_local 0x048)) - (i64.store offset=0x049 align=1 (i32.const 0) (get_local 0x049)) - (i64.store offset=0x04a align=1 (i32.const 0) (get_local 0x04a)) - (i64.store offset=0x04b align=1 (i32.const 0) (get_local 0x04b)) - (i64.store offset=0x04c align=1 (i32.const 0) (get_local 0x04c)) - (i64.store offset=0x04d align=1 (i32.const 0) (get_local 0x04d)) - (i64.store offset=0x04e align=1 (i32.const 0) (get_local 0x04e)) - (i64.store offset=0x04f align=1 (i32.const 0) (get_local 0x04f)) - (i64.store offset=0x050 align=1 (i32.const 0) (get_local 0x050)) - (i64.store offset=0x051 align=1 (i32.const 0) (get_local 0x051)) - (i64.store offset=0x052 align=1 (i32.const 0) (get_local 0x052)) - (i64.store offset=0x053 align=1 (i32.const 0) (get_local 0x053)) - (i64.store offset=0x054 align=1 (i32.const 0) (get_local 0x054)) - (i64.store offset=0x055 align=1 (i32.const 0) (get_local 0x055)) - (i64.store offset=0x056 align=1 (i32.const 0) (get_local 0x056)) - (i64.store offset=0x057 align=1 (i32.const 0) (get_local 0x057)) - (i64.store offset=0x058 align=1 (i32.const 0) (get_local 0x058)) - (i64.store offset=0x059 align=1 (i32.const 0) (get_local 0x059)) - (i64.store offset=0x05a align=1 (i32.const 0) (get_local 0x05a)) - (i64.store offset=0x05b align=1 (i32.const 0) (get_local 0x05b)) - (i64.store offset=0x05c align=1 (i32.const 0) (get_local 0x05c)) - (i64.store offset=0x05d align=1 (i32.const 0) (get_local 0x05d)) - (i64.store offset=0x05e align=1 (i32.const 0) (get_local 0x05e)) - (i64.store offset=0x05f align=1 (i32.const 0) (get_local 0x05f)) - (i64.store offset=0x060 align=1 (i32.const 0) (get_local 0x060)) - (i64.store offset=0x061 align=1 (i32.const 0) (get_local 0x061)) - (i64.store offset=0x062 align=1 (i32.const 0) (get_local 0x062)) - (i64.store offset=0x063 align=1 (i32.const 0) (get_local 0x063)) - (i64.store offset=0x064 align=1 (i32.const 0) (get_local 0x064)) - (i64.store offset=0x065 align=1 (i32.const 0) (get_local 0x065)) - (i64.store offset=0x066 align=1 (i32.const 0) (get_local 0x066)) - (i64.store offset=0x067 align=1 (i32.const 0) (get_local 0x067)) - (i64.store offset=0x068 align=1 (i32.const 0) (get_local 0x068)) - (i64.store offset=0x069 align=1 (i32.const 0) (get_local 0x069)) - (i64.store offset=0x06a align=1 (i32.const 0) (get_local 0x06a)) - (i64.store offset=0x06b align=1 (i32.const 0) (get_local 0x06b)) - (i64.store offset=0x06c align=1 (i32.const 0) (get_local 0x06c)) - (i64.store offset=0x06d align=1 (i32.const 0) (get_local 0x06d)) - (i64.store offset=0x06e align=1 (i32.const 0) (get_local 0x06e)) - (i64.store offset=0x06f align=1 (i32.const 0) (get_local 0x06f)) - (i64.store offset=0x070 align=1 (i32.const 0) (get_local 0x070)) - (i64.store offset=0x071 align=1 (i32.const 0) (get_local 0x071)) - (i64.store offset=0x072 align=1 (i32.const 0) (get_local 0x072)) - (i64.store offset=0x073 align=1 (i32.const 0) (get_local 0x073)) - (i64.store offset=0x074 align=1 (i32.const 0) (get_local 0x074)) - (i64.store offset=0x075 align=1 (i32.const 0) (get_local 0x075)) - (i64.store offset=0x076 align=1 (i32.const 0) (get_local 0x076)) - (i64.store offset=0x077 align=1 (i32.const 0) (get_local 0x077)) - (i64.store offset=0x078 align=1 (i32.const 0) (get_local 0x078)) - (i64.store offset=0x079 align=1 (i32.const 0) (get_local 0x079)) - (i64.store offset=0x07a align=1 (i32.const 0) (get_local 0x07a)) - (i64.store offset=0x07b align=1 (i32.const 0) (get_local 0x07b)) - (i64.store offset=0x07c align=1 (i32.const 0) (get_local 0x07c)) - (i64.store offset=0x07d align=1 (i32.const 0) (get_local 0x07d)) - (i64.store offset=0x07e align=1 (i32.const 0) (get_local 0x07e)) - (i64.store offset=0x07f align=1 (i32.const 0) (get_local 0x07f)) - (i64.store offset=0x080 align=1 (i32.const 0) (get_local 0x080)) - (i64.store offset=0x081 align=1 (i32.const 0) (get_local 0x081)) - (i64.store offset=0x082 align=1 (i32.const 0) (get_local 0x082)) - (i64.store offset=0x083 align=1 (i32.const 0) (get_local 0x083)) - (i64.store offset=0x084 align=1 (i32.const 0) (get_local 0x084)) - (i64.store offset=0x085 align=1 (i32.const 0) (get_local 0x085)) - (i64.store offset=0x086 align=1 (i32.const 0) (get_local 0x086)) - (i64.store offset=0x087 align=1 (i32.const 0) (get_local 0x087)) - (i64.store offset=0x088 align=1 (i32.const 0) (get_local 0x088)) - (i64.store offset=0x089 align=1 (i32.const 0) (get_local 0x089)) - (i64.store offset=0x08a align=1 (i32.const 0) (get_local 0x08a)) - (i64.store offset=0x08b align=1 (i32.const 0) (get_local 0x08b)) - (i64.store offset=0x08c align=1 (i32.const 0) (get_local 0x08c)) - (i64.store offset=0x08d align=1 (i32.const 0) (get_local 0x08d)) - (i64.store offset=0x08e align=1 (i32.const 0) (get_local 0x08e)) - (i64.store offset=0x08f align=1 (i32.const 0) (get_local 0x08f)) - (i64.store offset=0x090 align=1 (i32.const 0) (get_local 0x090)) - (i64.store offset=0x091 align=1 (i32.const 0) (get_local 0x091)) - (i64.store offset=0x092 align=1 (i32.const 0) (get_local 0x092)) - (i64.store offset=0x093 align=1 (i32.const 0) (get_local 0x093)) - (i64.store offset=0x094 align=1 (i32.const 0) (get_local 0x094)) - (i64.store offset=0x095 align=1 (i32.const 0) (get_local 0x095)) - (i64.store offset=0x096 align=1 (i32.const 0) (get_local 0x096)) - (i64.store offset=0x097 align=1 (i32.const 0) (get_local 0x097)) - (i64.store offset=0x098 align=1 (i32.const 0) (get_local 0x098)) - (i64.store offset=0x099 align=1 (i32.const 0) (get_local 0x099)) - (i64.store offset=0x09a align=1 (i32.const 0) (get_local 0x09a)) - (i64.store offset=0x09b align=1 (i32.const 0) (get_local 0x09b)) - (i64.store offset=0x09c align=1 (i32.const 0) (get_local 0x09c)) - (i64.store offset=0x09d align=1 (i32.const 0) (get_local 0x09d)) - (i64.store offset=0x09e align=1 (i32.const 0) (get_local 0x09e)) - (i64.store offset=0x09f align=1 (i32.const 0) (get_local 0x09f)) - (i64.store offset=0x0a0 align=1 (i32.const 0) (get_local 0x0a0)) - (i64.store offset=0x0a1 align=1 (i32.const 0) (get_local 0x0a1)) - (i64.store offset=0x0a2 align=1 (i32.const 0) (get_local 0x0a2)) - (i64.store offset=0x0a3 align=1 (i32.const 0) (get_local 0x0a3)) - (i64.store offset=0x0a4 align=1 (i32.const 0) (get_local 0x0a4)) - (i64.store offset=0x0a5 align=1 (i32.const 0) (get_local 0x0a5)) - (i64.store offset=0x0a6 align=1 (i32.const 0) (get_local 0x0a6)) - (i64.store offset=0x0a7 align=1 (i32.const 0) (get_local 0x0a7)) - (i64.store offset=0x0a8 align=1 (i32.const 0) (get_local 0x0a8)) - (i64.store offset=0x0a9 align=1 (i32.const 0) (get_local 0x0a9)) - (i64.store offset=0x0aa align=1 (i32.const 0) (get_local 0x0aa)) - (i64.store offset=0x0ab align=1 (i32.const 0) (get_local 0x0ab)) - (i64.store offset=0x0ac align=1 (i32.const 0) (get_local 0x0ac)) - (i64.store offset=0x0ad align=1 (i32.const 0) (get_local 0x0ad)) - (i64.store offset=0x0ae align=1 (i32.const 0) (get_local 0x0ae)) - (i64.store offset=0x0af align=1 (i32.const 0) (get_local 0x0af)) - (i64.store offset=0x0b0 align=1 (i32.const 0) (get_local 0x0b0)) - (i64.store offset=0x0b1 align=1 (i32.const 0) (get_local 0x0b1)) - (i64.store offset=0x0b2 align=1 (i32.const 0) (get_local 0x0b2)) - (i64.store offset=0x0b3 align=1 (i32.const 0) (get_local 0x0b3)) - (i64.store offset=0x0b4 align=1 (i32.const 0) (get_local 0x0b4)) - (i64.store offset=0x0b5 align=1 (i32.const 0) (get_local 0x0b5)) - (i64.store offset=0x0b6 align=1 (i32.const 0) (get_local 0x0b6)) - (i64.store offset=0x0b7 align=1 (i32.const 0) (get_local 0x0b7)) - (i64.store offset=0x0b8 align=1 (i32.const 0) (get_local 0x0b8)) - (i64.store offset=0x0b9 align=1 (i32.const 0) (get_local 0x0b9)) - (i64.store offset=0x0ba align=1 (i32.const 0) (get_local 0x0ba)) - (i64.store offset=0x0bb align=1 (i32.const 0) (get_local 0x0bb)) - (i64.store offset=0x0bc align=1 (i32.const 0) (get_local 0x0bc)) - (i64.store offset=0x0bd align=1 (i32.const 0) (get_local 0x0bd)) - (i64.store offset=0x0be align=1 (i32.const 0) (get_local 0x0be)) - (i64.store offset=0x0bf align=1 (i32.const 0) (get_local 0x0bf)) - (i64.store offset=0x0c0 align=1 (i32.const 0) (get_local 0x0c0)) - (i64.store offset=0x0c1 align=1 (i32.const 0) (get_local 0x0c1)) - (i64.store offset=0x0c2 align=1 (i32.const 0) (get_local 0x0c2)) - (i64.store offset=0x0c3 align=1 (i32.const 0) (get_local 0x0c3)) - (i64.store offset=0x0c4 align=1 (i32.const 0) (get_local 0x0c4)) - (i64.store offset=0x0c5 align=1 (i32.const 0) (get_local 0x0c5)) - (i64.store offset=0x0c6 align=1 (i32.const 0) (get_local 0x0c6)) - (i64.store offset=0x0c7 align=1 (i32.const 0) (get_local 0x0c7)) - (i64.store offset=0x0c8 align=1 (i32.const 0) (get_local 0x0c8)) - (i64.store offset=0x0c9 align=1 (i32.const 0) (get_local 0x0c9)) - (i64.store offset=0x0ca align=1 (i32.const 0) (get_local 0x0ca)) - (i64.store offset=0x0cb align=1 (i32.const 0) (get_local 0x0cb)) - (i64.store offset=0x0cc align=1 (i32.const 0) (get_local 0x0cc)) - (i64.store offset=0x0cd align=1 (i32.const 0) (get_local 0x0cd)) - (i64.store offset=0x0ce align=1 (i32.const 0) (get_local 0x0ce)) - (i64.store offset=0x0cf align=1 (i32.const 0) (get_local 0x0cf)) - (i64.store offset=0x0d0 align=1 (i32.const 0) (get_local 0x0d0)) - (i64.store offset=0x0d1 align=1 (i32.const 0) (get_local 0x0d1)) - (i64.store offset=0x0d2 align=1 (i32.const 0) (get_local 0x0d2)) - (i64.store offset=0x0d3 align=1 (i32.const 0) (get_local 0x0d3)) - (i64.store offset=0x0d4 align=1 (i32.const 0) (get_local 0x0d4)) - (i64.store offset=0x0d5 align=1 (i32.const 0) (get_local 0x0d5)) - (i64.store offset=0x0d6 align=1 (i32.const 0) (get_local 0x0d6)) - (i64.store offset=0x0d7 align=1 (i32.const 0) (get_local 0x0d7)) - (i64.store offset=0x0d8 align=1 (i32.const 0) (get_local 0x0d8)) - (i64.store offset=0x0d9 align=1 (i32.const 0) (get_local 0x0d9)) - (i64.store offset=0x0da align=1 (i32.const 0) (get_local 0x0da)) - (i64.store offset=0x0db align=1 (i32.const 0) (get_local 0x0db)) - (i64.store offset=0x0dc align=1 (i32.const 0) (get_local 0x0dc)) - (i64.store offset=0x0dd align=1 (i32.const 0) (get_local 0x0dd)) - (i64.store offset=0x0de align=1 (i32.const 0) (get_local 0x0de)) - (i64.store offset=0x0df align=1 (i32.const 0) (get_local 0x0df)) - (i64.store offset=0x0e0 align=1 (i32.const 0) (get_local 0x0e0)) - (i64.store offset=0x0e1 align=1 (i32.const 0) (get_local 0x0e1)) - (i64.store offset=0x0e2 align=1 (i32.const 0) (get_local 0x0e2)) - (i64.store offset=0x0e3 align=1 (i32.const 0) (get_local 0x0e3)) - (i64.store offset=0x0e4 align=1 (i32.const 0) (get_local 0x0e4)) - (i64.store offset=0x0e5 align=1 (i32.const 0) (get_local 0x0e5)) - (i64.store offset=0x0e6 align=1 (i32.const 0) (get_local 0x0e6)) - (i64.store offset=0x0e7 align=1 (i32.const 0) (get_local 0x0e7)) - (i64.store offset=0x0e8 align=1 (i32.const 0) (get_local 0x0e8)) - (i64.store offset=0x0e9 align=1 (i32.const 0) (get_local 0x0e9)) - (i64.store offset=0x0ea align=1 (i32.const 0) (get_local 0x0ea)) - (i64.store offset=0x0eb align=1 (i32.const 0) (get_local 0x0eb)) - (i64.store offset=0x0ec align=1 (i32.const 0) (get_local 0x0ec)) - (i64.store offset=0x0ed align=1 (i32.const 0) (get_local 0x0ed)) - (i64.store offset=0x0ee align=1 (i32.const 0) (get_local 0x0ee)) - (i64.store offset=0x0ef align=1 (i32.const 0) (get_local 0x0ef)) - (i64.store offset=0x0f0 align=1 (i32.const 0) (get_local 0x0f0)) - (i64.store offset=0x0f1 align=1 (i32.const 0) (get_local 0x0f1)) - (i64.store offset=0x0f2 align=1 (i32.const 0) (get_local 0x0f2)) - (i64.store offset=0x0f3 align=1 (i32.const 0) (get_local 0x0f3)) - (i64.store offset=0x0f4 align=1 (i32.const 0) (get_local 0x0f4)) - (i64.store offset=0x0f5 align=1 (i32.const 0) (get_local 0x0f5)) - (i64.store offset=0x0f6 align=1 (i32.const 0) (get_local 0x0f6)) - (i64.store offset=0x0f7 align=1 (i32.const 0) (get_local 0x0f7)) - (i64.store offset=0x0f8 align=1 (i32.const 0) (get_local 0x0f8)) - (i64.store offset=0x0f9 align=1 (i32.const 0) (get_local 0x0f9)) - (i64.store offset=0x0fa align=1 (i32.const 0) (get_local 0x0fa)) - (i64.store offset=0x0fb align=1 (i32.const 0) (get_local 0x0fb)) - (i64.store offset=0x0fc align=1 (i32.const 0) (get_local 0x0fc)) - (i64.store offset=0x0fd align=1 (i32.const 0) (get_local 0x0fd)) - (i64.store offset=0x0fe align=1 (i32.const 0) (get_local 0x0fe)) - (i64.store offset=0x0ff align=1 (i32.const 0) (get_local 0x0ff)) - (i64.store offset=0x100 align=1 (i32.const 0) (get_local 0x100)) - (i64.store offset=0x101 align=1 (i32.const 0) (get_local 0x101)) - (i64.store offset=0x102 align=1 (i32.const 0) (get_local 0x102)) - (i64.store offset=0x103 align=1 (i32.const 0) (get_local 0x103)) - (i64.store offset=0x104 align=1 (i32.const 0) (get_local 0x104)) - (i64.store offset=0x105 align=1 (i32.const 0) (get_local 0x105)) - (i64.store offset=0x106 align=1 (i32.const 0) (get_local 0x106)) - (i64.store offset=0x107 align=1 (i32.const 0) (get_local 0x107)) - (i64.store offset=0x108 align=1 (i32.const 0) (get_local 0x108)) - (i64.store offset=0x109 align=1 (i32.const 0) (get_local 0x109)) - (i64.store offset=0x10a align=1 (i32.const 0) (get_local 0x10a)) - (i64.store offset=0x10b align=1 (i32.const 0) (get_local 0x10b)) - (i64.store offset=0x10c align=1 (i32.const 0) (get_local 0x10c)) - (i64.store offset=0x10d align=1 (i32.const 0) (get_local 0x10d)) - (i64.store offset=0x10e align=1 (i32.const 0) (get_local 0x10e)) - (i64.store offset=0x10f align=1 (i32.const 0) (get_local 0x10f)) - (i64.store offset=0x110 align=1 (i32.const 0) (get_local 0x110)) - (i64.store offset=0x111 align=1 (i32.const 0) (get_local 0x111)) - (i64.store offset=0x112 align=1 (i32.const 0) (get_local 0x112)) - (i64.store offset=0x113 align=1 (i32.const 0) (get_local 0x113)) - (i64.store offset=0x114 align=1 (i32.const 0) (get_local 0x114)) - (i64.store offset=0x115 align=1 (i32.const 0) (get_local 0x115)) - (i64.store offset=0x116 align=1 (i32.const 0) (get_local 0x116)) - (i64.store offset=0x117 align=1 (i32.const 0) (get_local 0x117)) - (i64.store offset=0x118 align=1 (i32.const 0) (get_local 0x118)) - (i64.store offset=0x119 align=1 (i32.const 0) (get_local 0x119)) - (i64.store offset=0x11a align=1 (i32.const 0) (get_local 0x11a)) - (i64.store offset=0x11b align=1 (i32.const 0) (get_local 0x11b)) - (i64.store offset=0x11c align=1 (i32.const 0) (get_local 0x11c)) - (i64.store offset=0x11d align=1 (i32.const 0) (get_local 0x11d)) - (i64.store offset=0x11e align=1 (i32.const 0) (get_local 0x11e)) - (i64.store offset=0x11f align=1 (i32.const 0) (get_local 0x11f)) - (i64.store offset=0x120 align=1 (i32.const 0) (get_local 0x120)) - (i64.store offset=0x121 align=1 (i32.const 0) (get_local 0x121)) - (i64.store offset=0x122 align=1 (i32.const 0) (get_local 0x122)) - (i64.store offset=0x123 align=1 (i32.const 0) (get_local 0x123)) - (i64.store offset=0x124 align=1 (i32.const 0) (get_local 0x124)) - (i64.store offset=0x125 align=1 (i32.const 0) (get_local 0x125)) - (i64.store offset=0x126 align=1 (i32.const 0) (get_local 0x126)) - (i64.store offset=0x127 align=1 (i32.const 0) (get_local 0x127)) - (i64.store offset=0x128 align=1 (i32.const 0) (get_local 0x128)) - (i64.store offset=0x129 align=1 (i32.const 0) (get_local 0x129)) - (i64.store offset=0x12a align=1 (i32.const 0) (get_local 0x12a)) - (i64.store offset=0x12b align=1 (i32.const 0) (get_local 0x12b)) - (i64.store offset=0x12c align=1 (i32.const 0) (get_local 0x12c)) - (i64.store offset=0x12d align=1 (i32.const 0) (get_local 0x12d)) - (i64.store offset=0x12e align=1 (i32.const 0) (get_local 0x12e)) - (i64.store offset=0x12f align=1 (i32.const 0) (get_local 0x12f)) - (i64.store offset=0x130 align=1 (i32.const 0) (get_local 0x130)) - (i64.store offset=0x131 align=1 (i32.const 0) (get_local 0x131)) - (i64.store offset=0x132 align=1 (i32.const 0) (get_local 0x132)) - (i64.store offset=0x133 align=1 (i32.const 0) (get_local 0x133)) - (i64.store offset=0x134 align=1 (i32.const 0) (get_local 0x134)) - (i64.store offset=0x135 align=1 (i32.const 0) (get_local 0x135)) - (i64.store offset=0x136 align=1 (i32.const 0) (get_local 0x136)) - (i64.store offset=0x137 align=1 (i32.const 0) (get_local 0x137)) - (i64.store offset=0x138 align=1 (i32.const 0) (get_local 0x138)) - (i64.store offset=0x139 align=1 (i32.const 0) (get_local 0x139)) - (i64.store offset=0x13a align=1 (i32.const 0) (get_local 0x13a)) - (i64.store offset=0x13b align=1 (i32.const 0) (get_local 0x13b)) - (i64.store offset=0x13c align=1 (i32.const 0) (get_local 0x13c)) - (i64.store offset=0x13d align=1 (i32.const 0) (get_local 0x13d)) - (i64.store offset=0x13e align=1 (i32.const 0) (get_local 0x13e)) - (i64.store offset=0x13f align=1 (i32.const 0) (get_local 0x13f)) - (i64.store offset=0x140 align=1 (i32.const 0) (get_local 0x140)) - (i64.store offset=0x141 align=1 (i32.const 0) (get_local 0x141)) - (i64.store offset=0x142 align=1 (i32.const 0) (get_local 0x142)) - (i64.store offset=0x143 align=1 (i32.const 0) (get_local 0x143)) - (i64.store offset=0x144 align=1 (i32.const 0) (get_local 0x144)) - (i64.store offset=0x145 align=1 (i32.const 0) (get_local 0x145)) - (i64.store offset=0x146 align=1 (i32.const 0) (get_local 0x146)) - (i64.store offset=0x147 align=1 (i32.const 0) (get_local 0x147)) - (i64.store offset=0x148 align=1 (i32.const 0) (get_local 0x148)) - (i64.store offset=0x149 align=1 (i32.const 0) (get_local 0x149)) - (i64.store offset=0x14a align=1 (i32.const 0) (get_local 0x14a)) - (i64.store offset=0x14b align=1 (i32.const 0) (get_local 0x14b)) - (i64.store offset=0x14c align=1 (i32.const 0) (get_local 0x14c)) - (i64.store offset=0x14d align=1 (i32.const 0) (get_local 0x14d)) - (i64.store offset=0x14e align=1 (i32.const 0) (get_local 0x14e)) - (i64.store offset=0x14f align=1 (i32.const 0) (get_local 0x14f)) - (i64.store offset=0x150 align=1 (i32.const 0) (get_local 0x150)) - (i64.store offset=0x151 align=1 (i32.const 0) (get_local 0x151)) - (i64.store offset=0x152 align=1 (i32.const 0) (get_local 0x152)) - (i64.store offset=0x153 align=1 (i32.const 0) (get_local 0x153)) - (i64.store offset=0x154 align=1 (i32.const 0) (get_local 0x154)) - (i64.store offset=0x155 align=1 (i32.const 0) (get_local 0x155)) - (i64.store offset=0x156 align=1 (i32.const 0) (get_local 0x156)) - (i64.store offset=0x157 align=1 (i32.const 0) (get_local 0x157)) - (i64.store offset=0x158 align=1 (i32.const 0) (get_local 0x158)) - (i64.store offset=0x159 align=1 (i32.const 0) (get_local 0x159)) - (i64.store offset=0x15a align=1 (i32.const 0) (get_local 0x15a)) - (i64.store offset=0x15b align=1 (i32.const 0) (get_local 0x15b)) - (i64.store offset=0x15c align=1 (i32.const 0) (get_local 0x15c)) - (i64.store offset=0x15d align=1 (i32.const 0) (get_local 0x15d)) - (i64.store offset=0x15e align=1 (i32.const 0) (get_local 0x15e)) - (i64.store offset=0x15f align=1 (i32.const 0) (get_local 0x15f)) - (i64.store offset=0x160 align=1 (i32.const 0) (get_local 0x160)) - (i64.store offset=0x161 align=1 (i32.const 0) (get_local 0x161)) - (i64.store offset=0x162 align=1 (i32.const 0) (get_local 0x162)) - (i64.store offset=0x163 align=1 (i32.const 0) (get_local 0x163)) - (i64.store offset=0x164 align=1 (i32.const 0) (get_local 0x164)) - (i64.store offset=0x165 align=1 (i32.const 0) (get_local 0x165)) - (i64.store offset=0x166 align=1 (i32.const 0) (get_local 0x166)) - (i64.store offset=0x167 align=1 (i32.const 0) (get_local 0x167)) - (i64.store offset=0x168 align=1 (i32.const 0) (get_local 0x168)) - (i64.store offset=0x169 align=1 (i32.const 0) (get_local 0x169)) - (i64.store offset=0x16a align=1 (i32.const 0) (get_local 0x16a)) - (i64.store offset=0x16b align=1 (i32.const 0) (get_local 0x16b)) - (i64.store offset=0x16c align=1 (i32.const 0) (get_local 0x16c)) - (i64.store offset=0x16d align=1 (i32.const 0) (get_local 0x16d)) - (i64.store offset=0x16e align=1 (i32.const 0) (get_local 0x16e)) - (i64.store offset=0x16f align=1 (i32.const 0) (get_local 0x16f)) - (i64.store offset=0x170 align=1 (i32.const 0) (get_local 0x170)) - (i64.store offset=0x171 align=1 (i32.const 0) (get_local 0x171)) - (i64.store offset=0x172 align=1 (i32.const 0) (get_local 0x172)) - (i64.store offset=0x173 align=1 (i32.const 0) (get_local 0x173)) - (i64.store offset=0x174 align=1 (i32.const 0) (get_local 0x174)) - (i64.store offset=0x175 align=1 (i32.const 0) (get_local 0x175)) - (i64.store offset=0x176 align=1 (i32.const 0) (get_local 0x176)) - (i64.store offset=0x177 align=1 (i32.const 0) (get_local 0x177)) - (i64.store offset=0x178 align=1 (i32.const 0) (get_local 0x178)) - (i64.store offset=0x179 align=1 (i32.const 0) (get_local 0x179)) - (i64.store offset=0x17a align=1 (i32.const 0) (get_local 0x17a)) - (i64.store offset=0x17b align=1 (i32.const 0) (get_local 0x17b)) - (i64.store offset=0x17c align=1 (i32.const 0) (get_local 0x17c)) - (i64.store offset=0x17d align=1 (i32.const 0) (get_local 0x17d)) - (i64.store offset=0x17e align=1 (i32.const 0) (get_local 0x17e)) - (i64.store offset=0x17f align=1 (i32.const 0) (get_local 0x17f)) - (i64.store offset=0x180 align=1 (i32.const 0) (get_local 0x180)) - (i64.store offset=0x181 align=1 (i32.const 0) (get_local 0x181)) - (i64.store offset=0x182 align=1 (i32.const 0) (get_local 0x182)) - (i64.store offset=0x183 align=1 (i32.const 0) (get_local 0x183)) - (i64.store offset=0x184 align=1 (i32.const 0) (get_local 0x184)) - (i64.store offset=0x185 align=1 (i32.const 0) (get_local 0x185)) - (i64.store offset=0x186 align=1 (i32.const 0) (get_local 0x186)) - (i64.store offset=0x187 align=1 (i32.const 0) (get_local 0x187)) - (i64.store offset=0x188 align=1 (i32.const 0) (get_local 0x188)) - (i64.store offset=0x189 align=1 (i32.const 0) (get_local 0x189)) - (i64.store offset=0x18a align=1 (i32.const 0) (get_local 0x18a)) - (i64.store offset=0x18b align=1 (i32.const 0) (get_local 0x18b)) - (i64.store offset=0x18c align=1 (i32.const 0) (get_local 0x18c)) - (i64.store offset=0x18d align=1 (i32.const 0) (get_local 0x18d)) - (i64.store offset=0x18e align=1 (i32.const 0) (get_local 0x18e)) - (i64.store offset=0x18f align=1 (i32.const 0) (get_local 0x18f)) - (i64.store offset=0x190 align=1 (i32.const 0) (get_local 0x190)) - (i64.store offset=0x191 align=1 (i32.const 0) (get_local 0x191)) - (i64.store offset=0x192 align=1 (i32.const 0) (get_local 0x192)) - (i64.store offset=0x193 align=1 (i32.const 0) (get_local 0x193)) - (i64.store offset=0x194 align=1 (i32.const 0) (get_local 0x194)) - (i64.store offset=0x195 align=1 (i32.const 0) (get_local 0x195)) - (i64.store offset=0x196 align=1 (i32.const 0) (get_local 0x196)) - (i64.store offset=0x197 align=1 (i32.const 0) (get_local 0x197)) - (i64.store offset=0x198 align=1 (i32.const 0) (get_local 0x198)) - (i64.store offset=0x199 align=1 (i32.const 0) (get_local 0x199)) - (i64.store offset=0x19a align=1 (i32.const 0) (get_local 0x19a)) - (i64.store offset=0x19b align=1 (i32.const 0) (get_local 0x19b)) - (i64.store offset=0x19c align=1 (i32.const 0) (get_local 0x19c)) - (i64.store offset=0x19d align=1 (i32.const 0) (get_local 0x19d)) - (i64.store offset=0x19e align=1 (i32.const 0) (get_local 0x19e)) - (i64.store offset=0x19f align=1 (i32.const 0) (get_local 0x19f)) - (i64.store offset=0x1a0 align=1 (i32.const 0) (get_local 0x1a0)) - (i64.store offset=0x1a1 align=1 (i32.const 0) (get_local 0x1a1)) - (i64.store offset=0x1a2 align=1 (i32.const 0) (get_local 0x1a2)) - (i64.store offset=0x1a3 align=1 (i32.const 0) (get_local 0x1a3)) - (i64.store offset=0x1a4 align=1 (i32.const 0) (get_local 0x1a4)) - (i64.store offset=0x1a5 align=1 (i32.const 0) (get_local 0x1a5)) - (i64.store offset=0x1a6 align=1 (i32.const 0) (get_local 0x1a6)) - (i64.store offset=0x1a7 align=1 (i32.const 0) (get_local 0x1a7)) - (i64.store offset=0x1a8 align=1 (i32.const 0) (get_local 0x1a8)) - (i64.store offset=0x1a9 align=1 (i32.const 0) (get_local 0x1a9)) - (i64.store offset=0x1aa align=1 (i32.const 0) (get_local 0x1aa)) - (i64.store offset=0x1ab align=1 (i32.const 0) (get_local 0x1ab)) - (i64.store offset=0x1ac align=1 (i32.const 0) (get_local 0x1ac)) - (i64.store offset=0x1ad align=1 (i32.const 0) (get_local 0x1ad)) - (i64.store offset=0x1ae align=1 (i32.const 0) (get_local 0x1ae)) - (i64.store offset=0x1af align=1 (i32.const 0) (get_local 0x1af)) - (i64.store offset=0x1b0 align=1 (i32.const 0) (get_local 0x1b0)) - (i64.store offset=0x1b1 align=1 (i32.const 0) (get_local 0x1b1)) - (i64.store offset=0x1b2 align=1 (i32.const 0) (get_local 0x1b2)) - (i64.store offset=0x1b3 align=1 (i32.const 0) (get_local 0x1b3)) - (i64.store offset=0x1b4 align=1 (i32.const 0) (get_local 0x1b4)) - (i64.store offset=0x1b5 align=1 (i32.const 0) (get_local 0x1b5)) - (i64.store offset=0x1b6 align=1 (i32.const 0) (get_local 0x1b6)) - (i64.store offset=0x1b7 align=1 (i32.const 0) (get_local 0x1b7)) - (i64.store offset=0x1b8 align=1 (i32.const 0) (get_local 0x1b8)) - (i64.store offset=0x1b9 align=1 (i32.const 0) (get_local 0x1b9)) - (i64.store offset=0x1ba align=1 (i32.const 0) (get_local 0x1ba)) - (i64.store offset=0x1bb align=1 (i32.const 0) (get_local 0x1bb)) - (i64.store offset=0x1bc align=1 (i32.const 0) (get_local 0x1bc)) - (i64.store offset=0x1bd align=1 (i32.const 0) (get_local 0x1bd)) - (i64.store offset=0x1be align=1 (i32.const 0) (get_local 0x1be)) - (i64.store offset=0x1bf align=1 (i32.const 0) (get_local 0x1bf)) - (i64.store offset=0x1c0 align=1 (i32.const 0) (get_local 0x1c0)) - (i64.store offset=0x1c1 align=1 (i32.const 0) (get_local 0x1c1)) - (i64.store offset=0x1c2 align=1 (i32.const 0) (get_local 0x1c2)) - (i64.store offset=0x1c3 align=1 (i32.const 0) (get_local 0x1c3)) - (i64.store offset=0x1c4 align=1 (i32.const 0) (get_local 0x1c4)) - (i64.store offset=0x1c5 align=1 (i32.const 0) (get_local 0x1c5)) - (i64.store offset=0x1c6 align=1 (i32.const 0) (get_local 0x1c6)) - (i64.store offset=0x1c7 align=1 (i32.const 0) (get_local 0x1c7)) - (i64.store offset=0x1c8 align=1 (i32.const 0) (get_local 0x1c8)) - (i64.store offset=0x1c9 align=1 (i32.const 0) (get_local 0x1c9)) - (i64.store offset=0x1ca align=1 (i32.const 0) (get_local 0x1ca)) - (i64.store offset=0x1cb align=1 (i32.const 0) (get_local 0x1cb)) - (i64.store offset=0x1cc align=1 (i32.const 0) (get_local 0x1cc)) - (i64.store offset=0x1cd align=1 (i32.const 0) (get_local 0x1cd)) - (i64.store offset=0x1ce align=1 (i32.const 0) (get_local 0x1ce)) - (i64.store offset=0x1cf align=1 (i32.const 0) (get_local 0x1cf)) - (i64.store offset=0x1d0 align=1 (i32.const 0) (get_local 0x1d0)) - (i64.store offset=0x1d1 align=1 (i32.const 0) (get_local 0x1d1)) - (i64.store offset=0x1d2 align=1 (i32.const 0) (get_local 0x1d2)) - (i64.store offset=0x1d3 align=1 (i32.const 0) (get_local 0x1d3)) - (i64.store offset=0x1d4 align=1 (i32.const 0) (get_local 0x1d4)) - (i64.store offset=0x1d5 align=1 (i32.const 0) (get_local 0x1d5)) - (i64.store offset=0x1d6 align=1 (i32.const 0) (get_local 0x1d6)) - (i64.store offset=0x1d7 align=1 (i32.const 0) (get_local 0x1d7)) - (i64.store offset=0x1d8 align=1 (i32.const 0) (get_local 0x1d8)) - (i64.store offset=0x1d9 align=1 (i32.const 0) (get_local 0x1d9)) - (i64.store offset=0x1da align=1 (i32.const 0) (get_local 0x1da)) - (i64.store offset=0x1db align=1 (i32.const 0) (get_local 0x1db)) - (i64.store offset=0x1dc align=1 (i32.const 0) (get_local 0x1dc)) - (i64.store offset=0x1dd align=1 (i32.const 0) (get_local 0x1dd)) - (i64.store offset=0x1de align=1 (i32.const 0) (get_local 0x1de)) - (i64.store offset=0x1df align=1 (i32.const 0) (get_local 0x1df)) - (i64.store offset=0x1e0 align=1 (i32.const 0) (get_local 0x1e0)) - (i64.store offset=0x1e1 align=1 (i32.const 0) (get_local 0x1e1)) - (i64.store offset=0x1e2 align=1 (i32.const 0) (get_local 0x1e2)) - (i64.store offset=0x1e3 align=1 (i32.const 0) (get_local 0x1e3)) - (i64.store offset=0x1e4 align=1 (i32.const 0) (get_local 0x1e4)) - (i64.store offset=0x1e5 align=1 (i32.const 0) (get_local 0x1e5)) - (i64.store offset=0x1e6 align=1 (i32.const 0) (get_local 0x1e6)) - (i64.store offset=0x1e7 align=1 (i32.const 0) (get_local 0x1e7)) - (i64.store offset=0x1e8 align=1 (i32.const 0) (get_local 0x1e8)) - (i64.store offset=0x1e9 align=1 (i32.const 0) (get_local 0x1e9)) - (i64.store offset=0x1ea align=1 (i32.const 0) (get_local 0x1ea)) - (i64.store offset=0x1eb align=1 (i32.const 0) (get_local 0x1eb)) - (i64.store offset=0x1ec align=1 (i32.const 0) (get_local 0x1ec)) - (i64.store offset=0x1ed align=1 (i32.const 0) (get_local 0x1ed)) - (i64.store offset=0x1ee align=1 (i32.const 0) (get_local 0x1ee)) - (i64.store offset=0x1ef align=1 (i32.const 0) (get_local 0x1ef)) - (i64.store offset=0x1f0 align=1 (i32.const 0) (get_local 0x1f0)) - (i64.store offset=0x1f1 align=1 (i32.const 0) (get_local 0x1f1)) - (i64.store offset=0x1f2 align=1 (i32.const 0) (get_local 0x1f2)) - (i64.store offset=0x1f3 align=1 (i32.const 0) (get_local 0x1f3)) - (i64.store offset=0x1f4 align=1 (i32.const 0) (get_local 0x1f4)) - (i64.store offset=0x1f5 align=1 (i32.const 0) (get_local 0x1f5)) - (i64.store offset=0x1f6 align=1 (i32.const 0) (get_local 0x1f6)) - (i64.store offset=0x1f7 align=1 (i32.const 0) (get_local 0x1f7)) - (i64.store offset=0x1f8 align=1 (i32.const 0) (get_local 0x1f8)) - (i64.store offset=0x1f9 align=1 (i32.const 0) (get_local 0x1f9)) - (i64.store offset=0x1fa align=1 (i32.const 0) (get_local 0x1fa)) - (i64.store offset=0x1fb align=1 (i32.const 0) (get_local 0x1fb)) - (i64.store offset=0x1fc align=1 (i32.const 0) (get_local 0x1fc)) - (i64.store offset=0x1fd align=1 (i32.const 0) (get_local 0x1fd)) - (i64.store offset=0x1fe align=1 (i32.const 0) (get_local 0x1fe)) - (i64.store offset=0x1ff align=1 (i32.const 0) (get_local 0x1ff)) - (i64.store offset=0x200 align=1 (i32.const 0) (get_local 0x200)) - (i64.store offset=0x201 align=1 (i32.const 0) (get_local 0x201)) - (i64.store offset=0x202 align=1 (i32.const 0) (get_local 0x202)) - (i64.store offset=0x203 align=1 (i32.const 0) (get_local 0x203)) - (i64.store offset=0x204 align=1 (i32.const 0) (get_local 0x204)) - (i64.store offset=0x205 align=1 (i32.const 0) (get_local 0x205)) - (i64.store offset=0x206 align=1 (i32.const 0) (get_local 0x206)) - (i64.store offset=0x207 align=1 (i32.const 0) (get_local 0x207)) - (i64.store offset=0x208 align=1 (i32.const 0) (get_local 0x208)) - (i64.store offset=0x209 align=1 (i32.const 0) (get_local 0x209)) - (i64.store offset=0x20a align=1 (i32.const 0) (get_local 0x20a)) - (i64.store offset=0x20b align=1 (i32.const 0) (get_local 0x20b)) - (i64.store offset=0x20c align=1 (i32.const 0) (get_local 0x20c)) - (i64.store offset=0x20d align=1 (i32.const 0) (get_local 0x20d)) - (i64.store offset=0x20e align=1 (i32.const 0) (get_local 0x20e)) - (i64.store offset=0x20f align=1 (i32.const 0) (get_local 0x20f)) - (i64.store offset=0x210 align=1 (i32.const 0) (get_local 0x210)) - (i64.store offset=0x211 align=1 (i32.const 0) (get_local 0x211)) - (i64.store offset=0x212 align=1 (i32.const 0) (get_local 0x212)) - (i64.store offset=0x213 align=1 (i32.const 0) (get_local 0x213)) - (i64.store offset=0x214 align=1 (i32.const 0) (get_local 0x214)) - (i64.store offset=0x215 align=1 (i32.const 0) (get_local 0x215)) - (i64.store offset=0x216 align=1 (i32.const 0) (get_local 0x216)) - (i64.store offset=0x217 align=1 (i32.const 0) (get_local 0x217)) - (i64.store offset=0x218 align=1 (i32.const 0) (get_local 0x218)) - (i64.store offset=0x219 align=1 (i32.const 0) (get_local 0x219)) - (i64.store offset=0x21a align=1 (i32.const 0) (get_local 0x21a)) - (i64.store offset=0x21b align=1 (i32.const 0) (get_local 0x21b)) - (i64.store offset=0x21c align=1 (i32.const 0) (get_local 0x21c)) - (i64.store offset=0x21d align=1 (i32.const 0) (get_local 0x21d)) - (i64.store offset=0x21e align=1 (i32.const 0) (get_local 0x21e)) - (i64.store offset=0x21f align=1 (i32.const 0) (get_local 0x21f)) - (i64.store offset=0x220 align=1 (i32.const 0) (get_local 0x220)) - (i64.store offset=0x221 align=1 (i32.const 0) (get_local 0x221)) - (i64.store offset=0x222 align=1 (i32.const 0) (get_local 0x222)) - (i64.store offset=0x223 align=1 (i32.const 0) (get_local 0x223)) - (i64.store offset=0x224 align=1 (i32.const 0) (get_local 0x224)) - (i64.store offset=0x225 align=1 (i32.const 0) (get_local 0x225)) - (i64.store offset=0x226 align=1 (i32.const 0) (get_local 0x226)) - (i64.store offset=0x227 align=1 (i32.const 0) (get_local 0x227)) - (i64.store offset=0x228 align=1 (i32.const 0) (get_local 0x228)) - (i64.store offset=0x229 align=1 (i32.const 0) (get_local 0x229)) - (i64.store offset=0x22a align=1 (i32.const 0) (get_local 0x22a)) - (i64.store offset=0x22b align=1 (i32.const 0) (get_local 0x22b)) - (i64.store offset=0x22c align=1 (i32.const 0) (get_local 0x22c)) - (i64.store offset=0x22d align=1 (i32.const 0) (get_local 0x22d)) - (i64.store offset=0x22e align=1 (i32.const 0) (get_local 0x22e)) - (i64.store offset=0x22f align=1 (i32.const 0) (get_local 0x22f)) - (i64.store offset=0x230 align=1 (i32.const 0) (get_local 0x230)) - (i64.store offset=0x231 align=1 (i32.const 0) (get_local 0x231)) - (i64.store offset=0x232 align=1 (i32.const 0) (get_local 0x232)) - (i64.store offset=0x233 align=1 (i32.const 0) (get_local 0x233)) - (i64.store offset=0x234 align=1 (i32.const 0) (get_local 0x234)) - (i64.store offset=0x235 align=1 (i32.const 0) (get_local 0x235)) - (i64.store offset=0x236 align=1 (i32.const 0) (get_local 0x236)) - (i64.store offset=0x237 align=1 (i32.const 0) (get_local 0x237)) - (i64.store offset=0x238 align=1 (i32.const 0) (get_local 0x238)) - (i64.store offset=0x239 align=1 (i32.const 0) (get_local 0x239)) - (i64.store offset=0x23a align=1 (i32.const 0) (get_local 0x23a)) - (i64.store offset=0x23b align=1 (i32.const 0) (get_local 0x23b)) - (i64.store offset=0x23c align=1 (i32.const 0) (get_local 0x23c)) - (i64.store offset=0x23d align=1 (i32.const 0) (get_local 0x23d)) - (i64.store offset=0x23e align=1 (i32.const 0) (get_local 0x23e)) - (i64.store offset=0x23f align=1 (i32.const 0) (get_local 0x23f)) - (i64.store offset=0x240 align=1 (i32.const 0) (get_local 0x240)) - (i64.store offset=0x241 align=1 (i32.const 0) (get_local 0x241)) - (i64.store offset=0x242 align=1 (i32.const 0) (get_local 0x242)) - (i64.store offset=0x243 align=1 (i32.const 0) (get_local 0x243)) - (i64.store offset=0x244 align=1 (i32.const 0) (get_local 0x244)) - (i64.store offset=0x245 align=1 (i32.const 0) (get_local 0x245)) - (i64.store offset=0x246 align=1 (i32.const 0) (get_local 0x246)) - (i64.store offset=0x247 align=1 (i32.const 0) (get_local 0x247)) - (i64.store offset=0x248 align=1 (i32.const 0) (get_local 0x248)) - (i64.store offset=0x249 align=1 (i32.const 0) (get_local 0x249)) - (i64.store offset=0x24a align=1 (i32.const 0) (get_local 0x24a)) - (i64.store offset=0x24b align=1 (i32.const 0) (get_local 0x24b)) - (i64.store offset=0x24c align=1 (i32.const 0) (get_local 0x24c)) - (i64.store offset=0x24d align=1 (i32.const 0) (get_local 0x24d)) - (i64.store offset=0x24e align=1 (i32.const 0) (get_local 0x24e)) - (i64.store offset=0x24f align=1 (i32.const 0) (get_local 0x24f)) - (i64.store offset=0x250 align=1 (i32.const 0) (get_local 0x250)) - (i64.store offset=0x251 align=1 (i32.const 0) (get_local 0x251)) - (i64.store offset=0x252 align=1 (i32.const 0) (get_local 0x252)) - (i64.store offset=0x253 align=1 (i32.const 0) (get_local 0x253)) - (i64.store offset=0x254 align=1 (i32.const 0) (get_local 0x254)) - (i64.store offset=0x255 align=1 (i32.const 0) (get_local 0x255)) - (i64.store offset=0x256 align=1 (i32.const 0) (get_local 0x256)) - (i64.store offset=0x257 align=1 (i32.const 0) (get_local 0x257)) - (i64.store offset=0x258 align=1 (i32.const 0) (get_local 0x258)) - (i64.store offset=0x259 align=1 (i32.const 0) (get_local 0x259)) - (i64.store offset=0x25a align=1 (i32.const 0) (get_local 0x25a)) - (i64.store offset=0x25b align=1 (i32.const 0) (get_local 0x25b)) - (i64.store offset=0x25c align=1 (i32.const 0) (get_local 0x25c)) - (i64.store offset=0x25d align=1 (i32.const 0) (get_local 0x25d)) - (i64.store offset=0x25e align=1 (i32.const 0) (get_local 0x25e)) - (i64.store offset=0x25f align=1 (i32.const 0) (get_local 0x25f)) - (i64.store offset=0x260 align=1 (i32.const 0) (get_local 0x260)) - (i64.store offset=0x261 align=1 (i32.const 0) (get_local 0x261)) - (i64.store offset=0x262 align=1 (i32.const 0) (get_local 0x262)) - (i64.store offset=0x263 align=1 (i32.const 0) (get_local 0x263)) - (i64.store offset=0x264 align=1 (i32.const 0) (get_local 0x264)) - (i64.store offset=0x265 align=1 (i32.const 0) (get_local 0x265)) - (i64.store offset=0x266 align=1 (i32.const 0) (get_local 0x266)) - (i64.store offset=0x267 align=1 (i32.const 0) (get_local 0x267)) - (i64.store offset=0x268 align=1 (i32.const 0) (get_local 0x268)) - (i64.store offset=0x269 align=1 (i32.const 0) (get_local 0x269)) - (i64.store offset=0x26a align=1 (i32.const 0) (get_local 0x26a)) - (i64.store offset=0x26b align=1 (i32.const 0) (get_local 0x26b)) - (i64.store offset=0x26c align=1 (i32.const 0) (get_local 0x26c)) - (i64.store offset=0x26d align=1 (i32.const 0) (get_local 0x26d)) - (i64.store offset=0x26e align=1 (i32.const 0) (get_local 0x26e)) - (i64.store offset=0x26f align=1 (i32.const 0) (get_local 0x26f)) - (i64.store offset=0x270 align=1 (i32.const 0) (get_local 0x270)) - (i64.store offset=0x271 align=1 (i32.const 0) (get_local 0x271)) - (i64.store offset=0x272 align=1 (i32.const 0) (get_local 0x272)) - (i64.store offset=0x273 align=1 (i32.const 0) (get_local 0x273)) - (i64.store offset=0x274 align=1 (i32.const 0) (get_local 0x274)) - (i64.store offset=0x275 align=1 (i32.const 0) (get_local 0x275)) - (i64.store offset=0x276 align=1 (i32.const 0) (get_local 0x276)) - (i64.store offset=0x277 align=1 (i32.const 0) (get_local 0x277)) - (i64.store offset=0x278 align=1 (i32.const 0) (get_local 0x278)) - (i64.store offset=0x279 align=1 (i32.const 0) (get_local 0x279)) - (i64.store offset=0x27a align=1 (i32.const 0) (get_local 0x27a)) - (i64.store offset=0x27b align=1 (i32.const 0) (get_local 0x27b)) - (i64.store offset=0x27c align=1 (i32.const 0) (get_local 0x27c)) - (i64.store offset=0x27d align=1 (i32.const 0) (get_local 0x27d)) - (i64.store offset=0x27e align=1 (i32.const 0) (get_local 0x27e)) - (i64.store offset=0x27f align=1 (i32.const 0) (get_local 0x27f)) - (i64.store offset=0x280 align=1 (i32.const 0) (get_local 0x280)) - (i64.store offset=0x281 align=1 (i32.const 0) (get_local 0x281)) - (i64.store offset=0x282 align=1 (i32.const 0) (get_local 0x282)) - (i64.store offset=0x283 align=1 (i32.const 0) (get_local 0x283)) - (i64.store offset=0x284 align=1 (i32.const 0) (get_local 0x284)) - (i64.store offset=0x285 align=1 (i32.const 0) (get_local 0x285)) - (i64.store offset=0x286 align=1 (i32.const 0) (get_local 0x286)) - (i64.store offset=0x287 align=1 (i32.const 0) (get_local 0x287)) - (i64.store offset=0x288 align=1 (i32.const 0) (get_local 0x288)) - (i64.store offset=0x289 align=1 (i32.const 0) (get_local 0x289)) - (i64.store offset=0x28a align=1 (i32.const 0) (get_local 0x28a)) - (i64.store offset=0x28b align=1 (i32.const 0) (get_local 0x28b)) - (i64.store offset=0x28c align=1 (i32.const 0) (get_local 0x28c)) - (i64.store offset=0x28d align=1 (i32.const 0) (get_local 0x28d)) - (i64.store offset=0x28e align=1 (i32.const 0) (get_local 0x28e)) - (i64.store offset=0x28f align=1 (i32.const 0) (get_local 0x28f)) - (i64.store offset=0x290 align=1 (i32.const 0) (get_local 0x290)) - (i64.store offset=0x291 align=1 (i32.const 0) (get_local 0x291)) - (i64.store offset=0x292 align=1 (i32.const 0) (get_local 0x292)) - (i64.store offset=0x293 align=1 (i32.const 0) (get_local 0x293)) - (i64.store offset=0x294 align=1 (i32.const 0) (get_local 0x294)) - (i64.store offset=0x295 align=1 (i32.const 0) (get_local 0x295)) - (i64.store offset=0x296 align=1 (i32.const 0) (get_local 0x296)) - (i64.store offset=0x297 align=1 (i32.const 0) (get_local 0x297)) - (i64.store offset=0x298 align=1 (i32.const 0) (get_local 0x298)) - (i64.store offset=0x299 align=1 (i32.const 0) (get_local 0x299)) - (i64.store offset=0x29a align=1 (i32.const 0) (get_local 0x29a)) - (i64.store offset=0x29b align=1 (i32.const 0) (get_local 0x29b)) - (i64.store offset=0x29c align=1 (i32.const 0) (get_local 0x29c)) - (i64.store offset=0x29d align=1 (i32.const 0) (get_local 0x29d)) - (i64.store offset=0x29e align=1 (i32.const 0) (get_local 0x29e)) - (i64.store offset=0x29f align=1 (i32.const 0) (get_local 0x29f)) - (i64.store offset=0x2a0 align=1 (i32.const 0) (get_local 0x2a0)) - (i64.store offset=0x2a1 align=1 (i32.const 0) (get_local 0x2a1)) - (i64.store offset=0x2a2 align=1 (i32.const 0) (get_local 0x2a2)) - (i64.store offset=0x2a3 align=1 (i32.const 0) (get_local 0x2a3)) - (i64.store offset=0x2a4 align=1 (i32.const 0) (get_local 0x2a4)) - (i64.store offset=0x2a5 align=1 (i32.const 0) (get_local 0x2a5)) - (i64.store offset=0x2a6 align=1 (i32.const 0) (get_local 0x2a6)) - (i64.store offset=0x2a7 align=1 (i32.const 0) (get_local 0x2a7)) - (i64.store offset=0x2a8 align=1 (i32.const 0) (get_local 0x2a8)) - (i64.store offset=0x2a9 align=1 (i32.const 0) (get_local 0x2a9)) - (i64.store offset=0x2aa align=1 (i32.const 0) (get_local 0x2aa)) - (i64.store offset=0x2ab align=1 (i32.const 0) (get_local 0x2ab)) - (i64.store offset=0x2ac align=1 (i32.const 0) (get_local 0x2ac)) - (i64.store offset=0x2ad align=1 (i32.const 0) (get_local 0x2ad)) - (i64.store offset=0x2ae align=1 (i32.const 0) (get_local 0x2ae)) - (i64.store offset=0x2af align=1 (i32.const 0) (get_local 0x2af)) - (i64.store offset=0x2b0 align=1 (i32.const 0) (get_local 0x2b0)) - (i64.store offset=0x2b1 align=1 (i32.const 0) (get_local 0x2b1)) - (i64.store offset=0x2b2 align=1 (i32.const 0) (get_local 0x2b2)) - (i64.store offset=0x2b3 align=1 (i32.const 0) (get_local 0x2b3)) - (i64.store offset=0x2b4 align=1 (i32.const 0) (get_local 0x2b4)) - (i64.store offset=0x2b5 align=1 (i32.const 0) (get_local 0x2b5)) - (i64.store offset=0x2b6 align=1 (i32.const 0) (get_local 0x2b6)) - (i64.store offset=0x2b7 align=1 (i32.const 0) (get_local 0x2b7)) - (i64.store offset=0x2b8 align=1 (i32.const 0) (get_local 0x2b8)) - (i64.store offset=0x2b9 align=1 (i32.const 0) (get_local 0x2b9)) - (i64.store offset=0x2ba align=1 (i32.const 0) (get_local 0x2ba)) - (i64.store offset=0x2bb align=1 (i32.const 0) (get_local 0x2bb)) - (i64.store offset=0x2bc align=1 (i32.const 0) (get_local 0x2bc)) - (i64.store offset=0x2bd align=1 (i32.const 0) (get_local 0x2bd)) - (i64.store offset=0x2be align=1 (i32.const 0) (get_local 0x2be)) - (i64.store offset=0x2bf align=1 (i32.const 0) (get_local 0x2bf)) - (i64.store offset=0x2c0 align=1 (i32.const 0) (get_local 0x2c0)) - (i64.store offset=0x2c1 align=1 (i32.const 0) (get_local 0x2c1)) - (i64.store offset=0x2c2 align=1 (i32.const 0) (get_local 0x2c2)) - (i64.store offset=0x2c3 align=1 (i32.const 0) (get_local 0x2c3)) - (i64.store offset=0x2c4 align=1 (i32.const 0) (get_local 0x2c4)) - (i64.store offset=0x2c5 align=1 (i32.const 0) (get_local 0x2c5)) - (i64.store offset=0x2c6 align=1 (i32.const 0) (get_local 0x2c6)) - (i64.store offset=0x2c7 align=1 (i32.const 0) (get_local 0x2c7)) - (i64.store offset=0x2c8 align=1 (i32.const 0) (get_local 0x2c8)) - (i64.store offset=0x2c9 align=1 (i32.const 0) (get_local 0x2c9)) - (i64.store offset=0x2ca align=1 (i32.const 0) (get_local 0x2ca)) - (i64.store offset=0x2cb align=1 (i32.const 0) (get_local 0x2cb)) - (i64.store offset=0x2cc align=1 (i32.const 0) (get_local 0x2cc)) - (i64.store offset=0x2cd align=1 (i32.const 0) (get_local 0x2cd)) - (i64.store offset=0x2ce align=1 (i32.const 0) (get_local 0x2ce)) - (i64.store offset=0x2cf align=1 (i32.const 0) (get_local 0x2cf)) - (i64.store offset=0x2d0 align=1 (i32.const 0) (get_local 0x2d0)) - (i64.store offset=0x2d1 align=1 (i32.const 0) (get_local 0x2d1)) - (i64.store offset=0x2d2 align=1 (i32.const 0) (get_local 0x2d2)) - (i64.store offset=0x2d3 align=1 (i32.const 0) (get_local 0x2d3)) - (i64.store offset=0x2d4 align=1 (i32.const 0) (get_local 0x2d4)) - (i64.store offset=0x2d5 align=1 (i32.const 0) (get_local 0x2d5)) - (i64.store offset=0x2d6 align=1 (i32.const 0) (get_local 0x2d6)) - (i64.store offset=0x2d7 align=1 (i32.const 0) (get_local 0x2d7)) - (i64.store offset=0x2d8 align=1 (i32.const 0) (get_local 0x2d8)) - (i64.store offset=0x2d9 align=1 (i32.const 0) (get_local 0x2d9)) - (i64.store offset=0x2da align=1 (i32.const 0) (get_local 0x2da)) - (i64.store offset=0x2db align=1 (i32.const 0) (get_local 0x2db)) - (i64.store offset=0x2dc align=1 (i32.const 0) (get_local 0x2dc)) - (i64.store offset=0x2dd align=1 (i32.const 0) (get_local 0x2dd)) - (i64.store offset=0x2de align=1 (i32.const 0) (get_local 0x2de)) - (i64.store offset=0x2df align=1 (i32.const 0) (get_local 0x2df)) - (i64.store offset=0x2e0 align=1 (i32.const 0) (get_local 0x2e0)) - (i64.store offset=0x2e1 align=1 (i32.const 0) (get_local 0x2e1)) - (i64.store offset=0x2e2 align=1 (i32.const 0) (get_local 0x2e2)) - (i64.store offset=0x2e3 align=1 (i32.const 0) (get_local 0x2e3)) - (i64.store offset=0x2e4 align=1 (i32.const 0) (get_local 0x2e4)) - (i64.store offset=0x2e5 align=1 (i32.const 0) (get_local 0x2e5)) - (i64.store offset=0x2e6 align=1 (i32.const 0) (get_local 0x2e6)) - (i64.store offset=0x2e7 align=1 (i32.const 0) (get_local 0x2e7)) - (i64.store offset=0x2e8 align=1 (i32.const 0) (get_local 0x2e8)) - (i64.store offset=0x2e9 align=1 (i32.const 0) (get_local 0x2e9)) - (i64.store offset=0x2ea align=1 (i32.const 0) (get_local 0x2ea)) - (i64.store offset=0x2eb align=1 (i32.const 0) (get_local 0x2eb)) - (i64.store offset=0x2ec align=1 (i32.const 0) (get_local 0x2ec)) - (i64.store offset=0x2ed align=1 (i32.const 0) (get_local 0x2ed)) - (i64.store offset=0x2ee align=1 (i32.const 0) (get_local 0x2ee)) - (i64.store offset=0x2ef align=1 (i32.const 0) (get_local 0x2ef)) - (i64.store offset=0x2f0 align=1 (i32.const 0) (get_local 0x2f0)) - (i64.store offset=0x2f1 align=1 (i32.const 0) (get_local 0x2f1)) - (i64.store offset=0x2f2 align=1 (i32.const 0) (get_local 0x2f2)) - (i64.store offset=0x2f3 align=1 (i32.const 0) (get_local 0x2f3)) - (i64.store offset=0x2f4 align=1 (i32.const 0) (get_local 0x2f4)) - (i64.store offset=0x2f5 align=1 (i32.const 0) (get_local 0x2f5)) - (i64.store offset=0x2f6 align=1 (i32.const 0) (get_local 0x2f6)) - (i64.store offset=0x2f7 align=1 (i32.const 0) (get_local 0x2f7)) - (i64.store offset=0x2f8 align=1 (i32.const 0) (get_local 0x2f8)) - (i64.store offset=0x2f9 align=1 (i32.const 0) (get_local 0x2f9)) - (i64.store offset=0x2fa align=1 (i32.const 0) (get_local 0x2fa)) - (i64.store offset=0x2fb align=1 (i32.const 0) (get_local 0x2fb)) - (i64.store offset=0x2fc align=1 (i32.const 0) (get_local 0x2fc)) - (i64.store offset=0x2fd align=1 (i32.const 0) (get_local 0x2fd)) - (i64.store offset=0x2fe align=1 (i32.const 0) (get_local 0x2fe)) - (i64.store offset=0x2ff align=1 (i32.const 0) (get_local 0x2ff)) - (i64.store offset=0x300 align=1 (i32.const 0) (get_local 0x300)) - (i64.store offset=0x301 align=1 (i32.const 0) (get_local 0x301)) - (i64.store offset=0x302 align=1 (i32.const 0) (get_local 0x302)) - (i64.store offset=0x303 align=1 (i32.const 0) (get_local 0x303)) - (i64.store offset=0x304 align=1 (i32.const 0) (get_local 0x304)) - (i64.store offset=0x305 align=1 (i32.const 0) (get_local 0x305)) - (i64.store offset=0x306 align=1 (i32.const 0) (get_local 0x306)) - (i64.store offset=0x307 align=1 (i32.const 0) (get_local 0x307)) - (i64.store offset=0x308 align=1 (i32.const 0) (get_local 0x308)) - (i64.store offset=0x309 align=1 (i32.const 0) (get_local 0x309)) - (i64.store offset=0x30a align=1 (i32.const 0) (get_local 0x30a)) - (i64.store offset=0x30b align=1 (i32.const 0) (get_local 0x30b)) - (i64.store offset=0x30c align=1 (i32.const 0) (get_local 0x30c)) - (i64.store offset=0x30d align=1 (i32.const 0) (get_local 0x30d)) - (i64.store offset=0x30e align=1 (i32.const 0) (get_local 0x30e)) - (i64.store offset=0x30f align=1 (i32.const 0) (get_local 0x30f)) - (i64.store offset=0x310 align=1 (i32.const 0) (get_local 0x310)) - (i64.store offset=0x311 align=1 (i32.const 0) (get_local 0x311)) - (i64.store offset=0x312 align=1 (i32.const 0) (get_local 0x312)) - (i64.store offset=0x313 align=1 (i32.const 0) (get_local 0x313)) - (i64.store offset=0x314 align=1 (i32.const 0) (get_local 0x314)) - (i64.store offset=0x315 align=1 (i32.const 0) (get_local 0x315)) - (i64.store offset=0x316 align=1 (i32.const 0) (get_local 0x316)) - (i64.store offset=0x317 align=1 (i32.const 0) (get_local 0x317)) - (i64.store offset=0x318 align=1 (i32.const 0) (get_local 0x318)) - (i64.store offset=0x319 align=1 (i32.const 0) (get_local 0x319)) - (i64.store offset=0x31a align=1 (i32.const 0) (get_local 0x31a)) - (i64.store offset=0x31b align=1 (i32.const 0) (get_local 0x31b)) - (i64.store offset=0x31c align=1 (i32.const 0) (get_local 0x31c)) - (i64.store offset=0x31d align=1 (i32.const 0) (get_local 0x31d)) - (i64.store offset=0x31e align=1 (i32.const 0) (get_local 0x31e)) - (i64.store offset=0x31f align=1 (i32.const 0) (get_local 0x31f)) - (i64.store offset=0x320 align=1 (i32.const 0) (get_local 0x320)) - (i64.store offset=0x321 align=1 (i32.const 0) (get_local 0x321)) - (i64.store offset=0x322 align=1 (i32.const 0) (get_local 0x322)) - (i64.store offset=0x323 align=1 (i32.const 0) (get_local 0x323)) - (i64.store offset=0x324 align=1 (i32.const 0) (get_local 0x324)) - (i64.store offset=0x325 align=1 (i32.const 0) (get_local 0x325)) - (i64.store offset=0x326 align=1 (i32.const 0) (get_local 0x326)) - (i64.store offset=0x327 align=1 (i32.const 0) (get_local 0x327)) - (i64.store offset=0x328 align=1 (i32.const 0) (get_local 0x328)) - (i64.store offset=0x329 align=1 (i32.const 0) (get_local 0x329)) - (i64.store offset=0x32a align=1 (i32.const 0) (get_local 0x32a)) - (i64.store offset=0x32b align=1 (i32.const 0) (get_local 0x32b)) - (i64.store offset=0x32c align=1 (i32.const 0) (get_local 0x32c)) - (i64.store offset=0x32d align=1 (i32.const 0) (get_local 0x32d)) - (i64.store offset=0x32e align=1 (i32.const 0) (get_local 0x32e)) - (i64.store offset=0x32f align=1 (i32.const 0) (get_local 0x32f)) - (i64.store offset=0x330 align=1 (i32.const 0) (get_local 0x330)) - (i64.store offset=0x331 align=1 (i32.const 0) (get_local 0x331)) - (i64.store offset=0x332 align=1 (i32.const 0) (get_local 0x332)) - (i64.store offset=0x333 align=1 (i32.const 0) (get_local 0x333)) - (i64.store offset=0x334 align=1 (i32.const 0) (get_local 0x334)) - (i64.store offset=0x335 align=1 (i32.const 0) (get_local 0x335)) - (i64.store offset=0x336 align=1 (i32.const 0) (get_local 0x336)) - (i64.store offset=0x337 align=1 (i32.const 0) (get_local 0x337)) - (i64.store offset=0x338 align=1 (i32.const 0) (get_local 0x338)) - (i64.store offset=0x339 align=1 (i32.const 0) (get_local 0x339)) - (i64.store offset=0x33a align=1 (i32.const 0) (get_local 0x33a)) - (i64.store offset=0x33b align=1 (i32.const 0) (get_local 0x33b)) - (i64.store offset=0x33c align=1 (i32.const 0) (get_local 0x33c)) - (i64.store offset=0x33d align=1 (i32.const 0) (get_local 0x33d)) - (i64.store offset=0x33e align=1 (i32.const 0) (get_local 0x33e)) - (i64.store offset=0x33f align=1 (i32.const 0) (get_local 0x33f)) - (i64.store offset=0x340 align=1 (i32.const 0) (get_local 0x340)) - (i64.store offset=0x341 align=1 (i32.const 0) (get_local 0x341)) - (i64.store offset=0x342 align=1 (i32.const 0) (get_local 0x342)) - (i64.store offset=0x343 align=1 (i32.const 0) (get_local 0x343)) - (i64.store offset=0x344 align=1 (i32.const 0) (get_local 0x344)) - (i64.store offset=0x345 align=1 (i32.const 0) (get_local 0x345)) - (i64.store offset=0x346 align=1 (i32.const 0) (get_local 0x346)) - (i64.store offset=0x347 align=1 (i32.const 0) (get_local 0x347)) - (i64.store offset=0x348 align=1 (i32.const 0) (get_local 0x348)) - (i64.store offset=0x349 align=1 (i32.const 0) (get_local 0x349)) - (i64.store offset=0x34a align=1 (i32.const 0) (get_local 0x34a)) - (i64.store offset=0x34b align=1 (i32.const 0) (get_local 0x34b)) - (i64.store offset=0x34c align=1 (i32.const 0) (get_local 0x34c)) - (i64.store offset=0x34d align=1 (i32.const 0) (get_local 0x34d)) - (i64.store offset=0x34e align=1 (i32.const 0) (get_local 0x34e)) - (i64.store offset=0x34f align=1 (i32.const 0) (get_local 0x34f)) - (i64.store offset=0x350 align=1 (i32.const 0) (get_local 0x350)) - (i64.store offset=0x351 align=1 (i32.const 0) (get_local 0x351)) - (i64.store offset=0x352 align=1 (i32.const 0) (get_local 0x352)) - (i64.store offset=0x353 align=1 (i32.const 0) (get_local 0x353)) - (i64.store offset=0x354 align=1 (i32.const 0) (get_local 0x354)) - (i64.store offset=0x355 align=1 (i32.const 0) (get_local 0x355)) - (i64.store offset=0x356 align=1 (i32.const 0) (get_local 0x356)) - (i64.store offset=0x357 align=1 (i32.const 0) (get_local 0x357)) - (i64.store offset=0x358 align=1 (i32.const 0) (get_local 0x358)) - (i64.store offset=0x359 align=1 (i32.const 0) (get_local 0x359)) - (i64.store offset=0x35a align=1 (i32.const 0) (get_local 0x35a)) - (i64.store offset=0x35b align=1 (i32.const 0) (get_local 0x35b)) - (i64.store offset=0x35c align=1 (i32.const 0) (get_local 0x35c)) - (i64.store offset=0x35d align=1 (i32.const 0) (get_local 0x35d)) - (i64.store offset=0x35e align=1 (i32.const 0) (get_local 0x35e)) - (i64.store offset=0x35f align=1 (i32.const 0) (get_local 0x35f)) - (i64.store offset=0x360 align=1 (i32.const 0) (get_local 0x360)) - (i64.store offset=0x361 align=1 (i32.const 0) (get_local 0x361)) - (i64.store offset=0x362 align=1 (i32.const 0) (get_local 0x362)) - (i64.store offset=0x363 align=1 (i32.const 0) (get_local 0x363)) - (i64.store offset=0x364 align=1 (i32.const 0) (get_local 0x364)) - (i64.store offset=0x365 align=1 (i32.const 0) (get_local 0x365)) - (i64.store offset=0x366 align=1 (i32.const 0) (get_local 0x366)) - (i64.store offset=0x367 align=1 (i32.const 0) (get_local 0x367)) - (i64.store offset=0x368 align=1 (i32.const 0) (get_local 0x368)) - (i64.store offset=0x369 align=1 (i32.const 0) (get_local 0x369)) - (i64.store offset=0x36a align=1 (i32.const 0) (get_local 0x36a)) - (i64.store offset=0x36b align=1 (i32.const 0) (get_local 0x36b)) - (i64.store offset=0x36c align=1 (i32.const 0) (get_local 0x36c)) - (i64.store offset=0x36d align=1 (i32.const 0) (get_local 0x36d)) - (i64.store offset=0x36e align=1 (i32.const 0) (get_local 0x36e)) - (i64.store offset=0x36f align=1 (i32.const 0) (get_local 0x36f)) - (i64.store offset=0x370 align=1 (i32.const 0) (get_local 0x370)) - (i64.store offset=0x371 align=1 (i32.const 0) (get_local 0x371)) - (i64.store offset=0x372 align=1 (i32.const 0) (get_local 0x372)) - (i64.store offset=0x373 align=1 (i32.const 0) (get_local 0x373)) - (i64.store offset=0x374 align=1 (i32.const 0) (get_local 0x374)) - (i64.store offset=0x375 align=1 (i32.const 0) (get_local 0x375)) - (i64.store offset=0x376 align=1 (i32.const 0) (get_local 0x376)) - (i64.store offset=0x377 align=1 (i32.const 0) (get_local 0x377)) - (i64.store offset=0x378 align=1 (i32.const 0) (get_local 0x378)) - (i64.store offset=0x379 align=1 (i32.const 0) (get_local 0x379)) - (i64.store offset=0x37a align=1 (i32.const 0) (get_local 0x37a)) - (i64.store offset=0x37b align=1 (i32.const 0) (get_local 0x37b)) - (i64.store offset=0x37c align=1 (i32.const 0) (get_local 0x37c)) - (i64.store offset=0x37d align=1 (i32.const 0) (get_local 0x37d)) - (i64.store offset=0x37e align=1 (i32.const 0) (get_local 0x37e)) - (i64.store offset=0x37f align=1 (i32.const 0) (get_local 0x37f)) - (i64.store offset=0x380 align=1 (i32.const 0) (get_local 0x380)) - (i64.store offset=0x381 align=1 (i32.const 0) (get_local 0x381)) - (i64.store offset=0x382 align=1 (i32.const 0) (get_local 0x382)) - (i64.store offset=0x383 align=1 (i32.const 0) (get_local 0x383)) - (i64.store offset=0x384 align=1 (i32.const 0) (get_local 0x384)) - (i64.store offset=0x385 align=1 (i32.const 0) (get_local 0x385)) - (i64.store offset=0x386 align=1 (i32.const 0) (get_local 0x386)) - (i64.store offset=0x387 align=1 (i32.const 0) (get_local 0x387)) - (i64.store offset=0x388 align=1 (i32.const 0) (get_local 0x388)) - (i64.store offset=0x389 align=1 (i32.const 0) (get_local 0x389)) - (i64.store offset=0x38a align=1 (i32.const 0) (get_local 0x38a)) - (i64.store offset=0x38b align=1 (i32.const 0) (get_local 0x38b)) - (i64.store offset=0x38c align=1 (i32.const 0) (get_local 0x38c)) - (i64.store offset=0x38d align=1 (i32.const 0) (get_local 0x38d)) - (i64.store offset=0x38e align=1 (i32.const 0) (get_local 0x38e)) - (i64.store offset=0x38f align=1 (i32.const 0) (get_local 0x38f)) - (i64.store offset=0x390 align=1 (i32.const 0) (get_local 0x390)) - (i64.store offset=0x391 align=1 (i32.const 0) (get_local 0x391)) - (i64.store offset=0x392 align=1 (i32.const 0) (get_local 0x392)) - (i64.store offset=0x393 align=1 (i32.const 0) (get_local 0x393)) - (i64.store offset=0x394 align=1 (i32.const 0) (get_local 0x394)) - (i64.store offset=0x395 align=1 (i32.const 0) (get_local 0x395)) - (i64.store offset=0x396 align=1 (i32.const 0) (get_local 0x396)) - (i64.store offset=0x397 align=1 (i32.const 0) (get_local 0x397)) - (i64.store offset=0x398 align=1 (i32.const 0) (get_local 0x398)) - (i64.store offset=0x399 align=1 (i32.const 0) (get_local 0x399)) - (i64.store offset=0x39a align=1 (i32.const 0) (get_local 0x39a)) - (i64.store offset=0x39b align=1 (i32.const 0) (get_local 0x39b)) - (i64.store offset=0x39c align=1 (i32.const 0) (get_local 0x39c)) - (i64.store offset=0x39d align=1 (i32.const 0) (get_local 0x39d)) - (i64.store offset=0x39e align=1 (i32.const 0) (get_local 0x39e)) - (i64.store offset=0x39f align=1 (i32.const 0) (get_local 0x39f)) - (i64.store offset=0x3a0 align=1 (i32.const 0) (get_local 0x3a0)) - (i64.store offset=0x3a1 align=1 (i32.const 0) (get_local 0x3a1)) - (i64.store offset=0x3a2 align=1 (i32.const 0) (get_local 0x3a2)) - (i64.store offset=0x3a3 align=1 (i32.const 0) (get_local 0x3a3)) - (i64.store offset=0x3a4 align=1 (i32.const 0) (get_local 0x3a4)) - (i64.store offset=0x3a5 align=1 (i32.const 0) (get_local 0x3a5)) - (i64.store offset=0x3a6 align=1 (i32.const 0) (get_local 0x3a6)) - (i64.store offset=0x3a7 align=1 (i32.const 0) (get_local 0x3a7)) - (i64.store offset=0x3a8 align=1 (i32.const 0) (get_local 0x3a8)) - (i64.store offset=0x3a9 align=1 (i32.const 0) (get_local 0x3a9)) - (i64.store offset=0x3aa align=1 (i32.const 0) (get_local 0x3aa)) - (i64.store offset=0x3ab align=1 (i32.const 0) (get_local 0x3ab)) - (i64.store offset=0x3ac align=1 (i32.const 0) (get_local 0x3ac)) - (i64.store offset=0x3ad align=1 (i32.const 0) (get_local 0x3ad)) - (i64.store offset=0x3ae align=1 (i32.const 0) (get_local 0x3ae)) - (i64.store offset=0x3af align=1 (i32.const 0) (get_local 0x3af)) - (i64.store offset=0x3b0 align=1 (i32.const 0) (get_local 0x3b0)) - (i64.store offset=0x3b1 align=1 (i32.const 0) (get_local 0x3b1)) - (i64.store offset=0x3b2 align=1 (i32.const 0) (get_local 0x3b2)) - (i64.store offset=0x3b3 align=1 (i32.const 0) (get_local 0x3b3)) - (i64.store offset=0x3b4 align=1 (i32.const 0) (get_local 0x3b4)) - (i64.store offset=0x3b5 align=1 (i32.const 0) (get_local 0x3b5)) - (i64.store offset=0x3b6 align=1 (i32.const 0) (get_local 0x3b6)) - (i64.store offset=0x3b7 align=1 (i32.const 0) (get_local 0x3b7)) - (i64.store offset=0x3b8 align=1 (i32.const 0) (get_local 0x3b8)) - (i64.store offset=0x3b9 align=1 (i32.const 0) (get_local 0x3b9)) - (i64.store offset=0x3ba align=1 (i32.const 0) (get_local 0x3ba)) - (i64.store offset=0x3bb align=1 (i32.const 0) (get_local 0x3bb)) - (i64.store offset=0x3bc align=1 (i32.const 0) (get_local 0x3bc)) - (i64.store offset=0x3bd align=1 (i32.const 0) (get_local 0x3bd)) - (i64.store offset=0x3be align=1 (i32.const 0) (get_local 0x3be)) - (i64.store offset=0x3bf align=1 (i32.const 0) (get_local 0x3bf)) - (i64.store offset=0x3c0 align=1 (i32.const 0) (get_local 0x3c0)) - (i64.store offset=0x3c1 align=1 (i32.const 0) (get_local 0x3c1)) - (i64.store offset=0x3c2 align=1 (i32.const 0) (get_local 0x3c2)) - (i64.store offset=0x3c3 align=1 (i32.const 0) (get_local 0x3c3)) - (i64.store offset=0x3c4 align=1 (i32.const 0) (get_local 0x3c4)) - (i64.store offset=0x3c5 align=1 (i32.const 0) (get_local 0x3c5)) - (i64.store offset=0x3c6 align=1 (i32.const 0) (get_local 0x3c6)) - (i64.store offset=0x3c7 align=1 (i32.const 0) (get_local 0x3c7)) - (i64.store offset=0x3c8 align=1 (i32.const 0) (get_local 0x3c8)) - (i64.store offset=0x3c9 align=1 (i32.const 0) (get_local 0x3c9)) - (i64.store offset=0x3ca align=1 (i32.const 0) (get_local 0x3ca)) - (i64.store offset=0x3cb align=1 (i32.const 0) (get_local 0x3cb)) - (i64.store offset=0x3cc align=1 (i32.const 0) (get_local 0x3cc)) - (i64.store offset=0x3cd align=1 (i32.const 0) (get_local 0x3cd)) - (i64.store offset=0x3ce align=1 (i32.const 0) (get_local 0x3ce)) - (i64.store offset=0x3cf align=1 (i32.const 0) (get_local 0x3cf)) - (i64.store offset=0x3d0 align=1 (i32.const 0) (get_local 0x3d0)) - (i64.store offset=0x3d1 align=1 (i32.const 0) (get_local 0x3d1)) - (i64.store offset=0x3d2 align=1 (i32.const 0) (get_local 0x3d2)) - (i64.store offset=0x3d3 align=1 (i32.const 0) (get_local 0x3d3)) - (i64.store offset=0x3d4 align=1 (i32.const 0) (get_local 0x3d4)) - (i64.store offset=0x3d5 align=1 (i32.const 0) (get_local 0x3d5)) - (i64.store offset=0x3d6 align=1 (i32.const 0) (get_local 0x3d6)) - (i64.store offset=0x3d7 align=1 (i32.const 0) (get_local 0x3d7)) - (i64.store offset=0x3d8 align=1 (i32.const 0) (get_local 0x3d8)) - (i64.store offset=0x3d9 align=1 (i32.const 0) (get_local 0x3d9)) - (i64.store offset=0x3da align=1 (i32.const 0) (get_local 0x3da)) - (i64.store offset=0x3db align=1 (i32.const 0) (get_local 0x3db)) - (i64.store offset=0x3dc align=1 (i32.const 0) (get_local 0x3dc)) - (i64.store offset=0x3dd align=1 (i32.const 0) (get_local 0x3dd)) - (i64.store offset=0x3de align=1 (i32.const 0) (get_local 0x3de)) - (i64.store offset=0x3df align=1 (i32.const 0) (get_local 0x3df)) - (i64.store offset=0x3e0 align=1 (i32.const 0) (get_local 0x3e0)) - (i64.store offset=0x3e1 align=1 (i32.const 0) (get_local 0x3e1)) - (i64.store offset=0x3e2 align=1 (i32.const 0) (get_local 0x3e2)) - (i64.store offset=0x3e3 align=1 (i32.const 0) (get_local 0x3e3)) - (i64.store offset=0x3e4 align=1 (i32.const 0) (get_local 0x3e4)) - (i64.store offset=0x3e5 align=1 (i32.const 0) (get_local 0x3e5)) - (i64.store offset=0x3e6 align=1 (i32.const 0) (get_local 0x3e6)) - (i64.store offset=0x3e7 align=1 (i32.const 0) (get_local 0x3e7)) - (i64.store offset=0x3e8 align=1 (i32.const 0) (get_local 0x3e8)) - (i64.store offset=0x3e9 align=1 (i32.const 0) (get_local 0x3e9)) - (i64.store offset=0x3ea align=1 (i32.const 0) (get_local 0x3ea)) - (i64.store offset=0x3eb align=1 (i32.const 0) (get_local 0x3eb)) - (i64.store offset=0x3ec align=1 (i32.const 0) (get_local 0x3ec)) - (i64.store offset=0x3ed align=1 (i32.const 0) (get_local 0x3ed)) - (i64.store offset=0x3ee align=1 (i32.const 0) (get_local 0x3ee)) - (i64.store offset=0x3ef align=1 (i32.const 0) (get_local 0x3ef)) - (i64.store offset=0x3f0 align=1 (i32.const 0) (get_local 0x3f0)) - (i64.store offset=0x3f1 align=1 (i32.const 0) (get_local 0x3f1)) - (i64.store offset=0x3f2 align=1 (i32.const 0) (get_local 0x3f2)) - (i64.store offset=0x3f3 align=1 (i32.const 0) (get_local 0x3f3)) - (i64.store offset=0x3f4 align=1 (i32.const 0) (get_local 0x3f4)) - (i64.store offset=0x3f5 align=1 (i32.const 0) (get_local 0x3f5)) - (i64.store offset=0x3f6 align=1 (i32.const 0) (get_local 0x3f6)) - (i64.store offset=0x3f7 align=1 (i32.const 0) (get_local 0x3f7)) - (i64.store offset=0x3f8 align=1 (i32.const 0) (get_local 0x3f8)) - (i64.store offset=0x3f9 align=1 (i32.const 0) (get_local 0x3f9)) - (i64.store offset=0x3fa align=1 (i32.const 0) (get_local 0x3fa)) - (i64.store offset=0x3fb align=1 (i32.const 0) (get_local 0x3fb)) - (i64.store offset=0x3fc align=1 (i32.const 0) (get_local 0x3fc)) - (i64.store offset=0x3fd align=1 (i32.const 0) (get_local 0x3fd)) - (i64.store offset=0x3fe align=1 (i32.const 0) (get_local 0x3fe)) - (i64.store offset=0x3ff align=1 (i32.const 0) (get_local 0x3ff)) - (i64.store offset=0x400 align=1 (i32.const 0) (get_local 0x400)) - (i64.store offset=0x401 align=1 (i32.const 0) (get_local 0x401)) - (i64.store offset=0x402 align=1 (i32.const 0) (get_local 0x402)) - (i64.store offset=0x403 align=1 (i32.const 0) (get_local 0x403)) - (i64.store offset=0x404 align=1 (i32.const 0) (get_local 0x404)) - (i64.store offset=0x405 align=1 (i32.const 0) (get_local 0x405)) - (i64.store offset=0x406 align=1 (i32.const 0) (get_local 0x406)) - (i64.store offset=0x407 align=1 (i32.const 0) (get_local 0x407)) - (i64.store offset=0x408 align=1 (i32.const 0) (get_local 0x408)) - (i64.store offset=0x409 align=1 (i32.const 0) (get_local 0x409)) - (i64.store offset=0x40a align=1 (i32.const 0) (get_local 0x40a)) - (i64.store offset=0x40b align=1 (i32.const 0) (get_local 0x40b)) - (i64.store offset=0x40c align=1 (i32.const 0) (get_local 0x40c)) - (i64.store offset=0x40d align=1 (i32.const 0) (get_local 0x40d)) - (i64.store offset=0x40e align=1 (i32.const 0) (get_local 0x40e)) - (i64.store offset=0x40f align=1 (i32.const 0) (get_local 0x40f)) - (i64.store offset=0x410 align=1 (i32.const 0) (get_local 0x410)) - (i64.store offset=0x411 align=1 (i32.const 0) (get_local 0x411)) - (i64.store offset=0x412 align=1 (i32.const 0) (get_local 0x412)) - (i64.store offset=0x413 align=1 (i32.const 0) (get_local 0x413)) - (i64.store offset=0x414 align=1 (i32.const 0) (get_local 0x414)) - (i64.store offset=0x415 align=1 (i32.const 0) (get_local 0x415)) - (i64.store offset=0x416 align=1 (i32.const 0) (get_local 0x416)) - (i64.store offset=0x417 align=1 (i32.const 0) (get_local 0x417)) - (i64.store offset=0x418 align=1 (i32.const 0) (get_local 0x418)) - (i64.store offset=0x419 align=1 (i32.const 0) (get_local 0x419)) - (i64.store offset=0x41a align=1 (i32.const 0) (get_local 0x41a)) - (i64.store offset=0x41b align=1 (i32.const 0) (get_local 0x41b)) - (i64.store offset=0x41c align=1 (i32.const 0) (get_local 0x41c)) - (i64.store offset=0x41d align=1 (i32.const 0) (get_local 0x41d)) - (i64.store offset=0x41e align=1 (i32.const 0) (get_local 0x41e)) - (i64.store offset=0x41f align=1 (i32.const 0) (get_local 0x41f)) - ) -) - -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 0)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 100)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 200)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 300)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 400)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 500)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 600)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 700)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 800)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 900)) "call stack exhausted") \ No newline at end of file diff --git a/tests/samples/stack.wast b/tests/samples/stack.wast deleted file mode 100644 index 88147fa..0000000 --- a/tests/samples/stack.wast +++ /dev/null @@ -1,220 +0,0 @@ -(module - (func (export "fac-expr") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (if - (i64.eq (get_local $i) (i64.const 0)) - (then (br $done)) - (else - (set_local $res (i64.mul (get_local $i) (get_local $res))) - (set_local $i (i64.sub (get_local $i) (i64.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - (func (export "fac-stack") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (get_local $n) - (set_local $i) - (i64.const 1) - (set_local $res) - (block $done - (loop $loop - (get_local $i) - (i64.const 0) - (i64.eq) - (if - (then (br $done)) - (else - (get_local $i) - (get_local $res) - (i64.mul) - (set_local $res) - (get_local $i) - (i64.const 1) - (i64.sub) - (set_local $i) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - (func (export "fac-stack-raw") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - get_local $n - set_local $i - i64.const 1 - set_local $res - block $done - loop $loop - get_local $i - i64.const 0 - i64.eq - if $body - br $done - else $body - get_local $i - get_local $res - i64.mul - set_local $res - get_local $i - i64.const 1 - i64.sub - set_local $i - end $body - br $loop - end $loop - end $done - get_local $res - ) - - (func (export "fac-mixed") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (i64.eq (get_local $i) (i64.const 0)) - (if - (then (br $done)) - (else - (i64.mul (get_local $i) (get_local $res)) - (set_local $res) - (i64.sub (get_local $i) (i64.const 1)) - (set_local $i) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - (func (export "fac-mixed-raw") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - block $done - loop $loop - (i64.eq (get_local $i) (i64.const 0)) - if - br $done - else - (i64.mul (get_local $i) (get_local $res)) - set_local $res - (i64.sub (get_local $i) (i64.const 1)) - set_local $i - end - br $loop - end - end - get_local $res - ) -) - -(assert_return (invoke "fac-expr" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-stack" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-mixed" (i64.const 25)) (i64.const 7034535277573963776)) - - -;; Syntax of flat call_indirect - -(module - (type $proc (func)) - (table 1 anyfunc) - - (func - (block i32.const 0 call_indirect) - (loop i32.const 0 call_indirect) - (if (i32.const 0) (then i32.const 0 call_indirect)) - (if (i32.const 0) - (then i32.const 0 call_indirect) - (else i32.const 0 call_indirect) - ) - (block i32.const 0 call_indirect (type $proc)) - (loop i32.const 0 call_indirect (type $proc)) - (if (i32.const 0) (then i32.const 0 call_indirect (type $proc))) - (if (i32.const 0) - (then i32.const 0 call_indirect (type $proc)) - (else i32.const 0 call_indirect (type $proc)) - ) - (block i32.const 0 i32.const 0 call_indirect (param i32)) - (loop i32.const 0 i32.const 0 call_indirect (param i32)) - (if (i32.const 0) (then i32.const 0 i32.const 0 call_indirect (param i32))) - (if (i32.const 0) - (then i32.const 0 i32.const 0 call_indirect (param i32)) - (else i32.const 0 i32.const 0 call_indirect (param i32)) - ) - (block (result i32) i32.const 0 call_indirect (result i32)) (drop) - (loop (result i32) i32.const 0 call_indirect (result i32)) (drop) - (if (result i32) (i32.const 0) - (then i32.const 0 call_indirect (result i32)) - (else i32.const 0 call_indirect (result i32)) - ) (drop) - (block i32.const 0 call_indirect (type $proc) (param) (result)) - (loop i32.const 0 call_indirect (type $proc) (param) (result)) - (if (i32.const 0) - (then i32.const 0 call_indirect (type $proc) (param) (result)) - ) - (if (i32.const 0) - (then i32.const 0 call_indirect (type $proc) (param) (param) (result)) - (else i32.const 0 call_indirect (type $proc) (param) (result) (result)) - ) - - block i32.const 0 call_indirect end - loop i32.const 0 call_indirect end - i32.const 0 if i32.const 0 call_indirect end - i32.const 0 if i32.const 0 call_indirect else i32.const 0 call_indirect end - block i32.const 0 call_indirect (type $proc) end - loop i32.const 0 call_indirect (type $proc) end - i32.const 0 if i32.const 0 call_indirect (type $proc) end - i32.const 0 - if - i32.const 0 call_indirect (type $proc) - else - i32.const 0 call_indirect (type $proc) - end - block i32.const 0 i32.const 0 call_indirect (param i32) end - loop i32.const 0 i32.const 0 call_indirect (param i32) end - i32.const 0 if i32.const 0 i32.const 0 call_indirect (param i32) end - i32.const 0 - if - i32.const 0 i32.const 0 call_indirect (param i32) - else - i32.const 0 i32.const 0 call_indirect (param i32) - end - block (result i32) i32.const 0 call_indirect (result i32) end drop - loop (result i32) i32.const 0 call_indirect (result i32) end drop - i32.const 0 - if (result i32) - i32.const 0 call_indirect (result i32) - else - i32.const 0 call_indirect (result i32) - end drop - block i32.const 0 call_indirect (type $proc) (param) (result) end - loop i32.const 0 call_indirect (type $proc) (param) (result) end - i32.const 0 if i32.const 0 call_indirect (type $proc) (param) (result) end - i32.const 0 - if - i32.const 0 call_indirect (type $proc) (param) (result) - else - i32.const 0 call_indirect (type $proc) (param) (param) (result) (result) - end - i32.const 0 call_indirect - ) -) diff --git a/tests/samples/start.wast b/tests/samples/start.wast deleted file mode 100644 index 6719edb..0000000 --- a/tests/samples/start.wast +++ /dev/null @@ -1,100 +0,0 @@ -(assert_invalid - (module (func) (start 1)) - "unknown function" -) - -(assert_invalid - (module - (func $main (result i32) (return (i32.const 0))) - (start $main) - ) - "start function" -) -(assert_invalid - (module - (func $main (param $a i32)) - (start $main) - ) - "start function" -) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - - (start $main) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - (start 2) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 1))) - (start 1) -) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 2))) - (start $main) -) - -(module - (func $print (import "spectest" "print")) - (start $print) -) - -(assert_trap - (module (func $main (unreachable)) (start $main)) - "unreachable" -) diff --git a/tests/samples/store_retval.wast b/tests/samples/store_retval.wast deleted file mode 100644 index a4d0358..0000000 --- a/tests/samples/store_retval.wast +++ /dev/null @@ -1,55 +0,0 @@ -(assert_invalid - (module (func (param i32) (result i32) (set_local 0 (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (func (param i64) (result i64) (set_local 0 (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (func (param f32) (result f32) (set_local 0 (f32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (func (param f64) (result f64) (set_local 0 (f64.const 1)))) - "type mismatch" -) - -(assert_invalid - (module (memory 1) (func (param i32) (result i32) (i32.store (i32.const 0) (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store (i32.const 0) (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param f32) (result f32) (f32.store (i32.const 0) (f32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param f64) (result f64) (f64.store (i32.const 0) (f64.const 1)))) - "type mismatch" -) - -(assert_invalid - (module (memory 1) (func (param i32) (result i32) (i32.store8 (i32.const 0) (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i32) (result i32) (i32.store16 (i32.const 0) (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store8 (i32.const 0) (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store16 (i32.const 0) (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store32 (i32.const 0) (i64.const 1)))) - "type mismatch" -) - diff --git a/tests/samples/switch.wast b/tests/samples/switch.wast deleted file mode 100644 index 829acc0..0000000 --- a/tests/samples/switch.wast +++ /dev/null @@ -1,150 +0,0 @@ -(module - ;; Statement switch - (func (export "stmt") (param $i i32) (result i32) - (local $j i32) - (set_local $j (i32.const 100)) - (block $switch - (block $7 - (block $default - (block $6 - (block $5 - (block $4 - (block $3 - (block $2 - (block $1 - (block $0 - (br_table $0 $1 $2 $3 $4 $5 $6 $7 $default - (get_local $i) - ) - ) ;; 0 - (return (get_local $i)) - ) ;; 1 - (nop) - ;; fallthrough - ) ;; 2 - ;; fallthrough - ) ;; 3 - (set_local $j (i32.sub (i32.const 0) (get_local $i))) - (br $switch) - ) ;; 4 - (br $switch) - ) ;; 5 - (set_local $j (i32.const 101)) - (br $switch) - ) ;; 6 - (set_local $j (i32.const 101)) - ;; fallthrough - ) ;; default - (set_local $j (i32.const 102)) - ) ;; 7 - ;; fallthrough - ) - (return (get_local $j)) - ) - - ;; Expression switch - (func (export "expr") (param $i i64) (result i64) - (local $j i64) - (set_local $j (i64.const 100)) - (return - (block $switch (result i64) - (block $7 - (block $default - (block $4 - (block $5 - (block $6 - (block $3 - (block $2 - (block $1 - (block $0 - (br_table $0 $1 $2 $3 $4 $5 $6 $7 $default - (i32.wrap/i64 (get_local $i)) - ) - ) ;; 0 - (return (get_local $i)) - ) ;; 1 - (nop) - ;; fallthrough - ) ;; 2 - ;; fallthrough - ) ;; 3 - (br $switch (i64.sub (i64.const 0) (get_local $i))) - ) ;; 6 - (set_local $j (i64.const 101)) - ;; fallthrough - ) ;; 4 - ;; fallthrough - ) ;; 5 - ;; fallthrough - ) ;; default - (br $switch (get_local $j)) - ) ;; 7 - (i64.const -5) - ) - ) - ) - - ;; Argument switch - (func (export "arg") (param $i i32) (result i32) - (return - (block $2 (result i32) - (i32.add (i32.const 10) - (block $1 (result i32) - (i32.add (i32.const 100) - (block $0 (result i32) - (i32.add (i32.const 1000) - (block $default (result i32) - (br_table $0 $1 $2 $default - (i32.mul (i32.const 2) (get_local $i)) - (i32.and (i32.const 3) (get_local $i)) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - - ;; Corner cases - (func (export "corner") (result i32) - (block - (br_table 0 (i32.const 0)) - ) - (i32.const 1) - ) -) - -(assert_return (invoke "stmt" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "stmt" (i32.const 1)) (i32.const -1)) -(assert_return (invoke "stmt" (i32.const 2)) (i32.const -2)) -(assert_return (invoke "stmt" (i32.const 3)) (i32.const -3)) -(assert_return (invoke "stmt" (i32.const 4)) (i32.const 100)) -(assert_return (invoke "stmt" (i32.const 5)) (i32.const 101)) -(assert_return (invoke "stmt" (i32.const 6)) (i32.const 102)) -(assert_return (invoke "stmt" (i32.const 7)) (i32.const 100)) -(assert_return (invoke "stmt" (i32.const -10)) (i32.const 102)) - -(assert_return (invoke "expr" (i64.const 0)) (i64.const 0)) -(assert_return (invoke "expr" (i64.const 1)) (i64.const -1)) -(assert_return (invoke "expr" (i64.const 2)) (i64.const -2)) -(assert_return (invoke "expr" (i64.const 3)) (i64.const -3)) -(assert_return (invoke "expr" (i64.const 6)) (i64.const 101)) -(assert_return (invoke "expr" (i64.const 7)) (i64.const -5)) -(assert_return (invoke "expr" (i64.const -10)) (i64.const 100)) - -(assert_return (invoke "arg" (i32.const 0)) (i32.const 110)) -(assert_return (invoke "arg" (i32.const 1)) (i32.const 12)) -(assert_return (invoke "arg" (i32.const 2)) (i32.const 4)) -(assert_return (invoke "arg" (i32.const 3)) (i32.const 1116)) -(assert_return (invoke "arg" (i32.const 4)) (i32.const 118)) -(assert_return (invoke "arg" (i32.const 5)) (i32.const 20)) -(assert_return (invoke "arg" (i32.const 6)) (i32.const 12)) -(assert_return (invoke "arg" (i32.const 7)) (i32.const 1124)) -(assert_return (invoke "arg" (i32.const 8)) (i32.const 126)) - -(assert_return (invoke "corner") (i32.const 1)) - -(assert_invalid (module (func (br_table 3 (i32.const 0)))) "unknown label") diff --git a/tests/samples/tee_local.wast b/tests/samples/tee_local.wast deleted file mode 100644 index 452793e..0000000 --- a/tests/samples/tee_local.wast +++ /dev/null @@ -1,236 +0,0 @@ -;; Test `tee_local` operator - -(module - ;; Typing - - (func (export "type-local-i32") (result i32) (local i32) (tee_local 0 (i32.const 0))) - (func (export "type-local-i64") (result i64) (local i64) (tee_local 0 (i64.const 0))) - (func (export "type-local-f32") (result f32) (local f32) (tee_local 0 (f32.const 0))) - (func (export "type-local-f64") (result f64) (local f64) (tee_local 0 (f64.const 0))) - - (func (export "type-param-i32") (param i32) (result i32) (tee_local 0 (i32.const 10))) - (func (export "type-param-i64") (param i64) (result i64) (tee_local 0 (i64.const 11))) - (func (export "type-param-f32") (param f32) (result f32) (tee_local 0 (f32.const 11.1))) - (func (export "type-param-f64") (param f64) (result f64) (tee_local 0 (f64.const 12.2))) - - (func (export "type-mixed") (param i64 f32 f64 i32 i32) (local f32 i64 i64 f64) - (drop (i64.eqz (tee_local 0 (i64.const 0)))) - (drop (f32.neg (tee_local 1 (f32.const 0)))) - (drop (f64.neg (tee_local 2 (f64.const 0)))) - (drop (i32.eqz (tee_local 3 (i32.const 0)))) - (drop (i32.eqz (tee_local 4 (i32.const 0)))) - (drop (f32.neg (tee_local 5 (f32.const 0)))) - (drop (i64.eqz (tee_local 6 (i64.const 0)))) - (drop (i64.eqz (tee_local 7 (i64.const 0)))) - (drop (f64.neg (tee_local 8 (f64.const 0)))) - ) - - ;; Writing - - (func (export "write") (param i64 f32 f64 i32 i32) (result i64) (local f32 i64 i64 f64) - (drop (tee_local 1 (f32.const -0.3))) - (drop (tee_local 3 (i32.const 40))) - (drop (tee_local 4 (i32.const -7))) - (drop (tee_local 5 (f32.const 5.5))) - (drop (tee_local 6 (i64.const 6))) - (drop (tee_local 8 (f64.const 8))) - (i64.trunc_s/f64 - (f64.add - (f64.convert_u/i64 (get_local 0)) - (f64.add - (f64.promote/f32 (get_local 1)) - (f64.add - (get_local 2) - (f64.add - (f64.convert_u/i32 (get_local 3)) - (f64.add - (f64.convert_s/i32 (get_local 4)) - (f64.add - (f64.promote/f32 (get_local 5)) - (f64.add - (f64.convert_u/i64 (get_local 6)) - (f64.add - (f64.convert_u/i64 (get_local 7)) - (get_local 8) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - - ;; Result - - (func (export "result") (param i64 f32 f64 i32 i32) (result f64) - (local f32 i64 i64 f64) - (f64.add - (f64.convert_u/i64 (tee_local 0 (i64.const 1))) - (f64.add - (f64.promote/f32 (tee_local 1 (f32.const 2))) - (f64.add - (tee_local 2 (f64.const 3.3)) - (f64.add - (f64.convert_u/i32 (tee_local 3 (i32.const 4))) - (f64.add - (f64.convert_s/i32 (tee_local 4 (i32.const 5))) - (f64.add - (f64.promote/f32 (tee_local 5 (f32.const 5.5))) - (f64.add - (f64.convert_u/i64 (tee_local 6 (i64.const 6))) - (f64.add - (f64.convert_u/i64 (tee_local 7 (i64.const 0))) - (tee_local 8 (f64.const 8)) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) - -(assert_return (invoke "type-local-i32") (i32.const 0)) -(assert_return (invoke "type-local-i64") (i64.const 0)) -(assert_return (invoke "type-local-f32") (f32.const 0)) -(assert_return (invoke "type-local-f64") (f64.const 0)) - -(assert_return (invoke "type-param-i32" (i32.const 2)) (i32.const 10)) -(assert_return (invoke "type-param-i64" (i64.const 3)) (i64.const 11)) -(assert_return (invoke "type-param-f32" (f32.const 4.4)) (f32.const 11.1)) -(assert_return (invoke "type-param-f64" (f64.const 5.5)) (f64.const 12.2)) - -(assert_return - (invoke "type-mixed" - (i64.const 1) (f32.const 2.2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) -) - -(assert_return - (invoke "write" - (i64.const 1) (f32.const 2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) - (i64.const 56) -) - -(assert_return - (invoke "result" - (i64.const -1) (f32.const -2) (f64.const -3.3) (i32.const -4) (i32.const -5) - ) - (f64.const 34.8) -) - - -;; Invalid typing of access to locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) (tee_local 0 (i32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) (i32.eqz (tee_local 0 (f32.const 0))))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) (f64.neg (tee_local 1 (i64.const 0))))) - "type mismatch" -) - -(assert_invalid - (module (func $type-local-arg-void-vs-num (local i32) (tee_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local i32) (tee_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f32) (tee_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f64 i64) (tee_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid typing of access to parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-param-arg-void-vs-num (param i32) (tee_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param i32) (tee_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f32) (tee_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f64 i64) (tee_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid local index - -(assert_invalid - (module (func $unbound-local (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-local (local i32 i64) (get_local 14324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-param (param i32 i64) (get_local 2))) - "unknown local" -) -(assert_invalid - (module (func $large-param (local i32 i64) (get_local 714324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) - "unknown local" -) - -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param f32) (local i32) (tee_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64 i32) (local f32) (tee_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64) (local f64 i64) (tee_local 1 (i64.const 0)))) - "type mismatch" -) - diff --git a/tests/samples/token.wast b/tests/samples/token.wast deleted file mode 100644 index 1dcd32e..0000000 --- a/tests/samples/token.wast +++ /dev/null @@ -1,10 +0,0 @@ -;; Test tokenization - -(assert_malformed - (module quote "(func (drop (i32.const0)))") - "unknown operator" -) -(assert_malformed - (module quote "(func br 0drop)") - "unknown operator" -) diff --git a/tests/samples/traps.wast b/tests/samples/traps.wast deleted file mode 100644 index a940140..0000000 --- a/tests/samples/traps.wast +++ /dev/null @@ -1,91 +0,0 @@ -;; Test that traps are preserved even in instructions which might otherwise -;; be dead-code-eliminated. These functions all perform an operation and -;; discard its return value. - -(module - (func (export "no_dce.i32.div_s") (param $x i32) (param $y i32) - (drop (i32.div_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i32.div_u") (param $x i32) (param $y i32) - (drop (i32.div_u (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.div_s") (param $x i64) (param $y i64) - (drop (i64.div_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.div_u") (param $x i64) (param $y i64) - (drop (i64.div_u (get_local $x) (get_local $y)))) -) - -(assert_trap (invoke "no_dce.i32.div_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i32.div_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.div_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.div_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i32.div_s" (i32.const 0x80000000) (i32.const -1)) "integer overflow") -(assert_trap (invoke "no_dce.i64.div_s" (i64.const 0x8000000000000000) (i64.const -1)) "integer overflow") - -(module - (func (export "no_dce.i32.rem_s") (param $x i32) (param $y i32) - (drop (i32.rem_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i32.rem_u") (param $x i32) (param $y i32) - (drop (i32.rem_u (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.rem_s") (param $x i64) (param $y i64) - (drop (i64.rem_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.rem_u") (param $x i64) (param $y i64) - (drop (i64.rem_u (get_local $x) (get_local $y)))) -) - -(assert_trap (invoke "no_dce.i32.rem_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i32.rem_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.rem_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.rem_u" (i64.const 1) (i64.const 0)) "integer divide by zero") - -(module - (func (export "no_dce.i32.trunc_s_f32") (param $x f32) (drop (i32.trunc_s/f32 (get_local $x)))) - (func (export "no_dce.i32.trunc_u_f32") (param $x f32) (drop (i32.trunc_u/f32 (get_local $x)))) - (func (export "no_dce.i32.trunc_s_f64") (param $x f64) (drop (i32.trunc_s/f64 (get_local $x)))) - (func (export "no_dce.i32.trunc_u_f64") (param $x f64) (drop (i32.trunc_u/f64 (get_local $x)))) - (func (export "no_dce.i64.trunc_s_f32") (param $x f32) (drop (i64.trunc_s/f32 (get_local $x)))) - (func (export "no_dce.i64.trunc_u_f32") (param $x f32) (drop (i64.trunc_u/f32 (get_local $x)))) - (func (export "no_dce.i64.trunc_s_f64") (param $x f64) (drop (i64.trunc_s/f64 (get_local $x)))) - (func (export "no_dce.i64.trunc_u_f64") (param $x f64) (drop (i64.trunc_u/f64 (get_local $x)))) -) - -(assert_trap (invoke "no_dce.i32.trunc_s_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i32.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i32.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i32.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_s_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") - -(module - (memory 1) - - (func (export "no_dce.i32.load") (param $i i32) (drop (i32.load (get_local $i)))) - (func (export "no_dce.i32.load16_s") (param $i i32) (drop (i32.load16_s (get_local $i)))) - (func (export "no_dce.i32.load16_u") (param $i i32) (drop (i32.load16_u (get_local $i)))) - (func (export "no_dce.i32.load8_s") (param $i i32) (drop (i32.load8_s (get_local $i)))) - (func (export "no_dce.i32.load8_u") (param $i i32) (drop (i32.load8_u (get_local $i)))) - (func (export "no_dce.i64.load") (param $i i32) (drop (i64.load (get_local $i)))) - (func (export "no_dce.i64.load32_s") (param $i i32) (drop (i64.load32_s (get_local $i)))) - (func (export "no_dce.i64.load32_u") (param $i i32) (drop (i64.load32_u (get_local $i)))) - (func (export "no_dce.i64.load16_s") (param $i i32) (drop (i64.load16_s (get_local $i)))) - (func (export "no_dce.i64.load16_u") (param $i i32) (drop (i64.load16_u (get_local $i)))) - (func (export "no_dce.i64.load8_s") (param $i i32) (drop (i64.load8_s (get_local $i)))) - (func (export "no_dce.i64.load8_u") (param $i i32) (drop (i64.load8_u (get_local $i)))) - (func (export "no_dce.f32.load") (param $i i32) (drop (f32.load (get_local $i)))) - (func (export "no_dce.f64.load") (param $i i32) (drop (f64.load (get_local $i)))) -) - -(assert_trap (invoke "no_dce.i32.load" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load16_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load16_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load8_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load8_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load32_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load32_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load16_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load16_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load8_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load8_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.f32.load" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.f64.load" (i32.const 65536)) "out of bounds memory access") diff --git a/tests/samples/type.wast b/tests/samples/type.wast deleted file mode 100644 index 5ceeeb2..0000000 --- a/tests/samples/type.wast +++ /dev/null @@ -1,59 +0,0 @@ -;; Test type definitions - -(module - (type (func)) - (type $t (func)) - - (type (func (param i32))) - (type (func (param $x i32))) - (type (func (result i32))) - (type (func (param i32) (result i32))) - (type (func (param $x i32) (result i32))) - - (type (func (param f32 f64))) - ;; (type (func (result i64 f32))) - ;; (type (func (param i32 i64) (result f32 f64))) - - (type (func (param f32) (param f64))) - (type (func (param $x f32) (param f64))) - (type (func (param f32) (param $y f64))) - (type (func (param $x f32) (param $y f64))) - ;; (type (func (result i64) (result f32))) - ;; (type (func (param i32) (param i64) (result f32) (result f64))) - ;; (type (func (param $x i32) (param $y i64) (result f32) (result f64))) - - (type (func (param f32 f64) (param $x i32) (param f64 i32 i32))) - ;; (type (func (result i64 i64 f32) (result f32 i32))) - ;; (type - ;; (func (param i32 i32) (param i64 i32) (result f32 f64) (result f64 i32)) - ;; ) - - (type (func (param) (param $x f32) (param) (param) (param f64 i32) (param))) - ;; (type - ;; (func (result) (result) (result i64 i64) (result) (result f32) (result)) - ;; ) - ;; (type - ;; (func - ;; (param i32 i32) (param i64 i32) (param) (param $x i32) (param) - ;; (result) (result f32 f64) (result f64 i32) (result) - ;; ) - ;; ) -) - -(assert_malformed - (module quote "(type (func (result i32) (param i32)))") - "result before parameter" -) -(assert_malformed - (module quote "(type (func (result $x i32)))") - "unexpected token" -) - -(assert_invalid - (module (type (func (result i32 i32)))) - "invalid result arity" -) -(assert_invalid - (module (type (func (result i32) (result i32)))) - "invalid result arity" -) diff --git a/tests/samples/typecheck.wast b/tests/samples/typecheck.wast deleted file mode 100644 index 0ac0c75..0000000 --- a/tests/samples/typecheck.wast +++ /dev/null @@ -1,425 +0,0 @@ -;; TODO: move all tests in this file to appropriate operator-specific files. - -(assert_invalid - (module (func $type-unary-operand-missing - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-block - (i32.const 0) - (block (i32.eqz) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-loop - (i32.const 0) - (loop (i32.eqz) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-if - (i32.const 0) (i32.const 0) - (if (then (i32.eqz) (drop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.eqz))) (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-binary-1st-operand-missing - (i32.add) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing - (i32.const 0) (i32.add) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-block - (i32.const 0) (i32.const 0) - (block (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-block - (i32.const 0) - (block (i32.const 0) (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-loop - (i32.const 0) (i32.const 0) - (loop (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-loop - (i32.const 0) - (loop (i32.const 0) (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-if - (i32.const 0) (i32.const 0) (i32.const 0) - (if (i32.add) (then (drop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-if - (i32.const 0) (i32.const 0) - (if (i32.const 0) (then (i32.add)) (else (drop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-else - (i32.const 0) (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.add) (i32.const 0))) - (drop) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.add))) - (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-if-operand-missing - (if (then)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-block - (i32.const 0) - (block (if (then))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-loop - (i32.const 0) - (loop (if (then))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-if - (i32.const 0) (i32.const 0) - (if (then (if (then)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (if (then)) (i32.const 0))) - (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-br-operand-missing - (block (result i32) (br 0)) - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br-operand-missing-in-block - (i32.const 0) - (block (result i32) (br 0)) - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br-operand-missing-in-if - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (br 0))) - ) - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br-operand-missing-in-else - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (br 0))) - ) - (i32.eqz) (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-operand-missing (result i32) - (return) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-block (result i32) - (i32.const 0) - (block (return)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-loop (result i32) - (i32.const 0) - (loop (return)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-if (result i32) - (i32.const 0) (i32.const 0) - (if (then (return))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-else (result i32) - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (return))) (drop) - )) - "type mismatch" -) - -;; TODO(stack): more of the above - -;; if condition -(assert_invalid (module (func (if (f32.const 0) (then)))) "type mismatch") - -;; br_if condition -(assert_invalid (module (func (block (br_if 0 (f32.const 0))))) "type mismatch") - -;; br_table key -(assert_invalid - (module (func (block (br_table 0 (f32.const 0))))) - "type mismatch") - -;; call params -(assert_invalid (module (func (param i32)) (func (call 0 (f32.const 0)))) "type mismatch") -(assert_invalid - (module - (type (func (param i32))) - (func (type 0)) - (table 0 anyfunc) - (func - (call_indirect (type 0) (i32.const 0) (f32.const 0)))) - "type mismatch") - -;; call_indirect index -(assert_invalid - (module - (type (func)) - (func (type 0)) - (table 0 anyfunc) - (func (call_indirect (type 0) (f32.const 0)))) - "type mismatch") - -;; return -(assert_invalid (module (func (result i32) (return (f32.const 0)))) "type mismatch") - -;; set_local -(assert_invalid (module (func (local i32) (set_local 0 (f32.const 0)))) "type mismatch") - -;; load index -(assert_invalid (module (memory 1) (func (i32.load (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load8_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load8_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load16_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load16_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load8_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load8_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load16_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load16_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load32_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load32_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f32.load (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f64.load (f32.const 0)))) "type mismatch") - -;; store index -(assert_invalid (module (memory 1) (func (i32.store (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store8 (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store16 (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store8 (f32.const 0) (i64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store16 (f32.const 0) (i64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store32 (f32.const 0) (i64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f32.store (f32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f64.store (f32.const 0) (f64.const 0)))) "type mismatch") - -;; store value -(assert_invalid (module (memory 1) (func (i32.store (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store8 (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store16 (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store8 (i32.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store16 (i32.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store32 (i32.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f32.store (i32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f64.store (i32.const 0) (i64.const 0)))) "type mismatch") - -;; binary -(assert_invalid (module (func (i32.add (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.and (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.div_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.div_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.mul (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.or (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rem_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rem_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rotl (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rotr (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.shl (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.shr_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.shr_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.sub (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.xor (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.add (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.and (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.div_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.div_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.mul (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.or (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rem_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rem_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rotl (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rotr (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.shl (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.shr_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.shr_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.sub (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.xor (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.add (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.copysign (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.div (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.max (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.min (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.mul (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.sub (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.add (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.copysign (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.div (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.max (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.min (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.mul (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.sub (i64.const 0) (f32.const 0)))) "type mismatch") - -;; unary -(assert_invalid (module (func (i32.eqz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.clz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ctz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.popcnt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.eqz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.clz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ctz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.popcnt (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.abs (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.ceil (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.floor (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.nearest (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.neg (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.sqrt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.trunc (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.abs (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.ceil (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.floor (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.nearest (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.neg (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.sqrt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.trunc (i64.const 0)))) "type mismatch") - -;; compare -(assert_invalid (module (func (i32.eq (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ge_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ge_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.gt_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.gt_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.le_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.le_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.lt_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.lt_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ne (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.eq (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ge_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ge_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.gt_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.gt_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.le_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.le_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.lt_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.lt_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ne (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.eq (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.ge (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.gt (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.le (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.lt (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.ne (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.eq (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.ge (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.gt (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.le (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.lt (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.ne (i64.const 0) (f32.const 0)))) "type mismatch") - -;; convert -(assert_invalid (module (func (i32.wrap/i64 (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_s/f32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_u/f32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_s/f64 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_u/f64 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.reinterpret/f32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.extend_s/i32 (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.extend_u/i32 (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_s/f32 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_u/f32 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_s/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_u/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.reinterpret/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_s/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_u/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_s/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_u/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.demote/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.reinterpret/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_s/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_u/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_s/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_u/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.promote/f32 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.reinterpret/i64 (i32.const 0)))) "type mismatch") - -;; memory.grow -(assert_invalid (module (memory 1) (func (memory.grow (f32.const 0)))) "type mismatch") diff --git a/tests/samples/unreachable.wast b/tests/samples/unreachable.wast deleted file mode 100644 index f9b888e..0000000 --- a/tests/samples/unreachable.wast +++ /dev/null @@ -1,290 +0,0 @@ -;; Test `unreachable` operator - -(module - ;; Auxiliary definitions - (func $dummy) - (func $dummy3 (param i32 i32 i32)) - - (func (export "type-i32") (result i32) (unreachable)) - (func (export "type-i64") (result i32) (unreachable)) - (func (export "type-f32") (result f64) (unreachable)) - (func (export "type-f64") (result f64) (unreachable)) - - (func (export "as-func-first") (result i32) - (unreachable) (i32.const -1) - ) - (func (export "as-func-mid") (result i32) - (call $dummy) (unreachable) (i32.const -1) - ) - (func (export "as-func-last") - (call $dummy) (unreachable) - ) - (func (export "as-func-value") (result i32) - (call $dummy) (unreachable) - ) - - (func (export "as-block-first") (result i32) - (block (result i32) (unreachable) (i32.const 2)) - ) - (func (export "as-block-mid") (result i32) - (block (result i32) (call $dummy) (unreachable) (i32.const 2)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (unreachable)) - ) - (func (export "as-block-value") (result i32) - (block (result i32) (nop) (call $dummy) (unreachable)) - ) - (func (export "as-block-broke") (result i32) - (block (result i32) (call $dummy) (br 0 (i32.const 1)) (unreachable)) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (unreachable) (i32.const 2)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) (call $dummy) (unreachable) (i32.const 2)) - ) - (func (export "as-loop-last") - (loop (nop) (call $dummy) (unreachable)) - ) - (func (export "as-loop-broke") (result i32) - (block (result i32) - (loop (result i32) (call $dummy) (br 1 (i32.const 1)) (unreachable)) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (unreachable))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (unreachable))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (unreachable) (i32.const 1))) (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (unreachable))) (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (unreachable))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (unreachable) (i32.const 1)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-2") (result i32) - (block (result i32) - (block (result i32) (br_table 0 1 (unreachable) (i32.const 1))) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (unreachable)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-and-index") (result i32) - (block (result i32) (br_table 0 0 (unreachable)) (i32.const 8)) - ) - - (func (export "as-return-value") (result i64) - (return (unreachable)) - ) - - (func (export "as-if-cond") (result i32) - (if (result i32) (unreachable) (then (i32.const 0)) (else (i32.const 1))) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (if (result i32) (get_local 0) (then (unreachable)) (else (get_local 1))) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (if (result i32) (get_local 0) (then (get_local 1)) (else (unreachable))) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (select (unreachable) (get_local 0) (get_local 1)) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (select (get_local 0) (unreachable) (get_local 1)) - ) - (func (export "as-select-cond") (result i32) - (select (i32.const 0) (i32.const 1) (unreachable)) - ) - - (func (export "as-call-first") - (call $dummy3 (unreachable) (i32.const 2) (i32.const 3)) - ) - (func (export "as-call-mid") - (call $dummy3 (i32.const 1) (unreachable) (i32.const 3)) - ) - (func (export "as-call-last") - (call $dummy3 (i32.const 1) (i32.const 2) (unreachable)) - ) - - (type $sig (func (param i32 i32 i32))) - (table anyfunc (elem $dummy3)) - (func (export "as-call_indirect-func") - (call_indirect (type $sig) - (unreachable) (i32.const 1) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-first") - (call_indirect (type $sig) - (i32.const 0) (unreachable) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-mid") - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (unreachable) (i32.const 3) - ) - ) - (func (export "as-call_indirect-last") - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) (unreachable) - ) - ) - - (func (export "as-set_local-value") (local f32) - (set_local 0 (unreachable)) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (f32.load (unreachable)) - ) - (func (export "as-loadN-address") (result i64) - (i64.load8_s (unreachable)) - ) - - (func (export "as-store-address") - (f64.store (unreachable) (f64.const 7)) - ) - (func (export "as-store-value") - (i64.store (i32.const 2) (unreachable)) - ) - - (func (export "as-storeN-address") - (i32.store8 (unreachable) (i32.const 7)) - ) - (func (export "as-storeN-value") - (i64.store16 (i32.const 2) (unreachable)) - ) - - (func (export "as-unary-operand") (result f32) - (f32.neg (unreachable)) - ) - - (func (export "as-binary-left") (result i32) - (i32.add (unreachable) (i32.const 10)) - ) - (func (export "as-binary-right") (result i64) - (i64.sub (i64.const 10) (unreachable)) - ) - - (func (export "as-test-operand") (result i32) - (i32.eqz (unreachable)) - ) - - (func (export "as-compare-left") (result i32) - (f64.le (unreachable) (f64.const 10)) - ) - (func (export "as-compare-right") (result i32) - (f32.ne (f32.const 10) (unreachable)) - ) - - (func (export "as-convert-operand") (result i32) - (i32.wrap/i64 (unreachable)) - ) - - (func (export "as-memory.grow-size") (result i32) - (memory.grow (unreachable)) - ) -) - -(assert_trap (invoke "type-i32") "unreachable") -(assert_trap (invoke "type-i64") "unreachable") -(assert_trap (invoke "type-f32") "unreachable") -(assert_trap (invoke "type-f64") "unreachable") - -(assert_trap (invoke "as-func-first") "unreachable") -(assert_trap (invoke "as-func-mid") "unreachable") -(assert_trap (invoke "as-func-last") "unreachable") -(assert_trap (invoke "as-func-value") "unreachable") - -(assert_trap (invoke "as-block-first") "unreachable") -(assert_trap (invoke "as-block-mid") "unreachable") -(assert_trap (invoke "as-block-last") "unreachable") -(assert_trap (invoke "as-block-value") "unreachable") -(assert_return (invoke "as-block-broke") (i32.const 1)) - -(assert_trap (invoke "as-loop-first") "unreachable") -(assert_trap (invoke "as-loop-mid") "unreachable") -(assert_trap (invoke "as-loop-last") "unreachable") -(assert_return (invoke "as-loop-broke") (i32.const 1)) - -(assert_trap (invoke "as-br-value") "unreachable") - -(assert_trap (invoke "as-br_if-cond") "unreachable") -(assert_trap (invoke "as-br_if-value") "unreachable") -(assert_trap (invoke "as-br_if-value-cond") "unreachable") - -(assert_trap (invoke "as-br_table-index") "unreachable") -(assert_trap (invoke "as-br_table-value") "unreachable") -(assert_trap (invoke "as-br_table-value-2") "unreachable") -(assert_trap (invoke "as-br_table-value-index") "unreachable") -(assert_trap (invoke "as-br_table-value-and-index") "unreachable") - -(assert_trap (invoke "as-return-value") "unreachable") - -(assert_trap (invoke "as-if-cond") "unreachable") -(assert_trap (invoke "as-if-then" (i32.const 1) (i32.const 6)) "unreachable") -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_trap (invoke "as-if-else" (i32.const 0) (i32.const 6)) "unreachable") -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_trap (invoke "as-select-first" (i32.const 0) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-first" (i32.const 1) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-second" (i32.const 0) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-second" (i32.const 1) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-cond") "unreachable") - -(assert_trap (invoke "as-call-first") "unreachable") -(assert_trap (invoke "as-call-mid") "unreachable") -(assert_trap (invoke "as-call-last") "unreachable") - -(assert_trap (invoke "as-call_indirect-func") "unreachable") -(assert_trap (invoke "as-call_indirect-first") "unreachable") -(assert_trap (invoke "as-call_indirect-mid") "unreachable") -(assert_trap (invoke "as-call_indirect-last") "unreachable") - -(assert_trap (invoke "as-set_local-value") "unreachable") - -(assert_trap (invoke "as-load-address") "unreachable") -(assert_trap (invoke "as-loadN-address") "unreachable") - -(assert_trap (invoke "as-store-address") "unreachable") -(assert_trap (invoke "as-store-value") "unreachable") -(assert_trap (invoke "as-storeN-address") "unreachable") -(assert_trap (invoke "as-storeN-value") "unreachable") - -(assert_trap (invoke "as-unary-operand") "unreachable") - -(assert_trap (invoke "as-binary-left") "unreachable") -(assert_trap (invoke "as-binary-right") "unreachable") - -(assert_trap (invoke "as-test-operand") "unreachable") - -(assert_trap (invoke "as-compare-left") "unreachable") -(assert_trap (invoke "as-compare-right") "unreachable") - -(assert_trap (invoke "as-convert-operand") "unreachable") - -(assert_trap (invoke "as-memory.grow-size") "unreachable") - diff --git a/tests/samples/unreached-invalid.wast b/tests/samples/unreached-invalid.wast deleted file mode 100644 index 907049f..0000000 --- a/tests/samples/unreached-invalid.wast +++ /dev/null @@ -1,709 +0,0 @@ -;; Failures in unreachable code. - -(assert_invalid - (module (func $local-index (unreachable) (drop (get_local 0)))) - "unknown local" -) -(assert_invalid - (module (func $global-index (unreachable) (drop (get_global 0)))) - "unknown global" -) -(assert_invalid - (module (func $func-index (unreachable) (call 1))) - "unknown function" -) -(assert_invalid - (module (func $label-index (unreachable) (br 1))) - "unknown label" -) - -(assert_invalid - (module (func $type-num-vs-num - (unreachable) (drop (i64.eqz (i32.const 0)))) - ) - "type mismatch" -) -(assert_invalid - (module (func $type-poly-num-vs-num (result i32) - (unreachable) (i64.const 0) (i32.const 0) (select) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-poly-transitive-num-vs-num (result i32) - (unreachable) - (i64.const 0) (i32.const 0) (select) - (i32.const 0) (i32.const 0) (select) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unconsumed-const (unreachable) (i32.const 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-result (unreachable) (i32.eqz))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-result2 - (unreachable) (i32.const 0) (i32.add) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-poly0 (unreachable) (select))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-poly1 (unreachable) (i32.const 0) (select))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-poly2 - (unreachable) (i32.const 0) (i32.const 0) (select) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-break - (block (br 0) (block (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-break - (block (br 0) (drop (i32.eqz (f32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-break - (block (br 0) (block (drop (f32.eq (i32.const 1))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-break - (block (br 0) (drop (f32.eq (i32.const 1) (f32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-break - (block (br 0) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-break (result i32) - (block (result i32) (i32.const 1) (br 0) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-break - (block (loop (br 1) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-break (result i32) - (loop (result i32) (br 1 (i32.const 1)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-break - (br 0) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-break (result i32) - (br 0 (i32.const 1)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-return - (return) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-return - (return) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-return - (return) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-return - (return) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-return - (block (return) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-return (result i32) - (block (result i32) (i32.const 1) (return (i32.const 0)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-return - (block (loop (return) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-return (result i32) - (loop (result i32) (return (i32.const 1)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-return - (return) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-return (result i32) - (return (i32.const 1)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-unreachable - (unreachable) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-loop-after-unreachable - (unreachable) (loop (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-i32-loop-after-unreachable - (unreachable) (loop (result i32) (i32.eqz (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-unreachable - (unreachable) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-unreachable - (unreachable) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-unreachable - (unreachable) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-unreachable - (block (unreachable) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-unreachable (result i32) - (block (result i32) (i32.const 1) (unreachable) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-unreachable - (block (loop (unreachable) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-unreachable (result i32) - (loop (result i32) (unreachable) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-unreachable - (unreachable) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-unreachable (result i32) - (unreachable) (f32.const 0) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-if-after-unreachable - (unreachable) (if (i32.const 0) (then (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-else-after-unreachable - (unreachable) (if (i32.const 0) (then (nop)) (else (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-else-after-unreachable-if - (if (i32.const 0) (then (unreachable)) (else (drop (i32.eqz (nop))))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-nested-unreachable - (block (unreachable)) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-nested-unreachable - (block (unreachable)) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-nested-unreachable - (block (unreachable)) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-nested-unreachable - (block (unreachable)) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-nested-unreachable - (block (block (unreachable)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-nested-unreachable - (result i32) - (block (result i32) (i32.const 1) (block (unreachable)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-nested-unreachable - (block (loop (block (unreachable)) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-nested-unreachable - (result i32) - (loop (result i32) (block (unreachable)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-nested-unreachable - (block (unreachable)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-nested-unreachable - (result i32) - (block (unreachable)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-infinite-loop - (loop (br 0)) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-infinite-loop - (loop (br 0)) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-infinite-loop - (loop (br 0)) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-infinite-loop - (loop (br 0)) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-infinite-loop - (block (loop (br 0)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-infinite-loop (result i32) - (block (result i32) (i32.const 1) (loop (br 0)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-infinite-loop - (block (loop (loop (br 0)) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-infinite-loop (result i32) - (loop (result i32) (loop (br 0)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-infinite-loop - (loop (br 0)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-infinite-loop (result i32) - (loop (br 0)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-in-dead-body - (if (i32.const 0) (then (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-in-dead-body - (if (i32.const 0) (then (drop (i32.eqz (f32.const 1))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-in-dead-body - (if (i32.const 0) (then (drop (f32.eq (i32.const 1))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-in-dead-body - (if (i32.const 0) (then (drop (f32.eq (i32.const 1) (f32.const 0))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-value-num-vs-void-in-dead-body - (if (i32.const 0) (then (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-value-num-vs-num-in-dead-body (result i32) - (if (result i32) (i32.const 0) (then (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-in-dead-body - (if (i32.const 0) (then (block (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-in-dead-body (result i32) - (if (result i32) (i32.const 0) (then (block (result i32) (f32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-in-dead-body - (if (i32.const 0) (then (loop (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-in-dead-body (result i32) - (if (result i32) (i32.const 0) (then (loop (result i32) (f32.const 0)))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-second-num-vs-num (result i32) - (return (i32.const 1)) (return (f64.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-br-second-num-vs-num (result i32) - (block (result i32) (br 0 (i32.const 1)) (br 0 (f64.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-br_if-cond-num-vs-num-after-unreachable - (block (br_if 0 (unreachable) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_if-num-vs-void-after-unreachable (result i32) - (block (result i32) - (block (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_if-num-vs-num-after-unreachable (result i32) - (block (result i32) - (block (result f32) (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) - (drop) (i32.const 0) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_if-num2-vs-num-after-unreachable (result i32) - (block (result i32) - (unreachable) (br_if 0 (i32.const 0) (i32.const 0)) (i32.const 0) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-num-vs-num-after-unreachable - (block (br_table 0 (unreachable) (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-label-num-vs-num-after-unreachable (result i32) - (block (result i32) (unreachable) (br_table 0 (f32.const 0) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-label-num-vs-label-void-after-unreachable - (block - (block (result f32) - (unreachable) - (br_table 0 1 0 (i32.const 1)) - ) - (drop) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-label-num-vs-label-num-after-unreachable - (block (result f64) - (block (result f32) - (unreachable) - (br_table 0 1 1 (i32.const 1)) - ) - (drop) - (f64.const 0) - ) - (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested-unreachable-num-vs-void - (block (i32.const 3) (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-unreachable-void-vs-num (result i32) - (block (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-unreachable-num-vs-num (result i32) - (block (result i64) (i64.const 0) (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-unreachable-num2-vs-void (result i32) - (block (i32.const 3) (block (i64.const 1) (unreachable))) (i32.const 9) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested-br-num-vs-void - (block (i32.const 3) (block (br 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-br-void-vs-num (result i32) - (block (result i32) (block (br 1 (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-br-num-vs-num (result i32) - (block (result i32) (i64.const 0) (block (br 1 (i32.const 0)))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested2-br-num-vs-void - (block (block (i32.const 3) (block (br 2)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested2-br-void-vs-num (result i32) - (block (result i32) (block (block (br 2 (i32.const 0))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested2-br-num-vs-num (result i32) - (block (result i32) - (block (result i64) (i64.const 0) (block (br 2 (i32.const 0)))) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested2-br-num2-vs-void (result i32) - (block (i32.const 3) (block (i64.const 1) (br 1))) (i32.const 9) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested-return-num-vs-void - (block (i32.const 3) (block (return))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-return-void-vs-num (result i32) - (block (block (return (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-return-num-vs-num (result i32) - (block (result i64) (i64.const 0) (block (return (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-return-num2-vs-void (result i32) - (block (i32.const 3) (block (i64.const 1) (return (i32.const 0)))) - (i32.const 9) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-loop-value-nested-unreachable-num-vs-void - (loop (i32.const 3) (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-nested-unreachable-void-vs-num (result i32) - (loop (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-nested-unreachable-num-vs-num (result i32) - (loop (result i64) (i64.const 0) (block (unreachable))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-cont-last-void-vs-empty (result i32) - (loop (br 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-cont-last-num-vs-empty (result i32) - (loop (br 0 (i32.const 0))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $tee-local-unreachable-value - (local i32) - (tee_local 0 (unreachable)) - )) - "type mismatch" -) -(assert_invalid - (module (func $br_if-unreachable (result i32) - (block (result i32) - (block - (br_if 1 (unreachable) (i32.const 0)) - ) - (i32.const 0) - ) - )) - "type mismatch" -) -(assert_invalid - (module - (func $type-br_if-after-unreachable (result i64) - unreachable - br_if 0 - i64.extend_u/i32 - ) - ) - "type mismatch" -) diff --git a/tests/samples/unwind.wast b/tests/samples/unwind.wast deleted file mode 100644 index 40b0dcf..0000000 --- a/tests/samples/unwind.wast +++ /dev/null @@ -1,203 +0,0 @@ -;; Test that control-flow transfer unwinds stack and it can be anything after. - -(module - (func (export "func-unwind-by-unreachable") - (i32.const 3) (i64.const 1) (unreachable) - ) - (func (export "func-unwind-by-br") - (i32.const 3) (i64.const 1) (br 0) - ) - (func (export "func-unwind-by-br-value") (result i32) - (i32.const 3) (i64.const 1) (br 0 (i32.const 9)) - ) - (func (export "func-unwind-by-br_table") - (i32.const 3) (i64.const 1) (br_table 0 (i32.const 0)) - ) - (func (export "func-unwind-by-br_table-value") (result i32) - (i32.const 3) (i64.const 1) (br_table 0 (i32.const 9) (i32.const 0)) - ) - (func (export "func-unwind-by-return") (result i32) - (i32.const 3) (i64.const 1) (return (i32.const 9)) - ) - - (func (export "block-unwind-by-unreachable") - (block (i32.const 3) (i64.const 1) (unreachable)) - ) - (func (export "block-unwind-by-br") (result i32) - (block (i32.const 3) (i64.const 1) (br 0)) (i32.const 9) - ) - (func (export "block-unwind-by-br-value") (result i32) - (block (result i32) (i32.const 3) (i64.const 1) (br 0 (i32.const 9))) - ) - (func (export "block-unwind-by-br_table") (result i32) - (block (i32.const 3) (i64.const 1) (br_table 0 (i32.const 0))) (i32.const 9) - ) - (func (export "block-unwind-by-br_table-value") (result i32) - (block (result i32) - (i32.const 3) (i64.const 1) (br_table 0 (i32.const 9) (i32.const 0)) - ) - ) - (func (export "block-unwind-by-return") (result i32) - (block (result i32) (i32.const 3) (i64.const 1) (return (i32.const 9))) - ) - - (func (export "block-nested-unwind-by-unreachable") (result i32) - (block (result i32) (i32.const 3) (block (i64.const 1) (unreachable))) - ) - (func (export "block-nested-unwind-by-br") (result i32) - (block (i32.const 3) (block (i64.const 1) (br 1)) (drop)) (i32.const 9) - ) - (func (export "block-nested-unwind-by-br-value") (result i32) - (block (result i32) - (i32.const 3) (block (i64.const 1) (br 1 (i32.const 9))) - ) - ) - (func (export "block-nested-unwind-by-br_table") (result i32) - (block - (i32.const 3) (block (i64.const 1) (br_table 1 (i32.const 1))) - (drop) - ) - (i32.const 9) - ) - (func (export "block-nested-unwind-by-br_table-value") (result i32) - (block (result i32) - (i32.const 3) - (block (i64.const 1) (br_table 1 (i32.const 9) (i32.const 1))) - ) - ) - (func (export "block-nested-unwind-by-return") (result i32) - (block (result i32) - (i32.const 3) (block (i64.const 1) (return (i32.const 9))) - ) - ) - - (func (export "unary-after-unreachable") (result i32) - (f32.const 0) (unreachable) (i64.eqz) - ) - (func (export "unary-after-br") (result i32) - (block (result i32) (f32.const 0) (br 0 (i32.const 9)) (i64.eqz)) - ) - (func (export "unary-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (br_table 0 0 (i32.const 9) (i32.const 0)) (i64.eqz) - ) - ) - (func (export "unary-after-return") (result i32) - (f32.const 0) (return (i32.const 9)) (i64.eqz) - ) - - (func (export "binary-after-unreachable") (result i32) - (f32.const 0) (f64.const 1) (unreachable) (i64.eq) - ) - (func (export "binary-after-br") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (br 0 (i32.const 9)) (i64.eq) - ) - ) - (func (export "binary-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (br_table 0 (i32.const 9) (i32.const 0)) - (i64.eq) - ) - ) - (func (export "binary-after-return") (result i32) - (f32.const 0) (f64.const 1) (return (i32.const 9)) (i64.eq) - ) - - (func (export "select-after-unreachable") (result i32) - (f32.const 0) (f64.const 1) (i64.const 0) (unreachable) (select) - ) - (func (export "select-after-br") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (i64.const 0) (br 0 (i32.const 9)) (select) - ) - ) - (func (export "select-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (i64.const 0) - (br_table 0 (i32.const 9) (i32.const 0)) - (select) - ) - ) - (func (export "select-after-return") (result i32) - (f32.const 0) (f64.const 1) (i64.const 1) (return (i32.const 9)) (select) - ) - - (func (export "block-value-after-unreachable") (result i32) - (block (result i32) (f32.const 0) (unreachable)) - ) - (func (export "block-value-after-br") (result i32) - (block (result i32) (f32.const 0) (br 0 (i32.const 9))) - ) - (func (export "block-value-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (br_table 0 0 (i32.const 9) (i32.const 0)) - ) - ) - (func (export "block-value-after-return") (result i32) - (block (result i32) (f32.const 0) (return (i32.const 9))) - ) - - (func (export "loop-value-after-unreachable") (result i32) - (loop (result i32) (f32.const 0) (unreachable)) - ) - (func (export "loop-value-after-br") (result i32) - (block (result i32) (loop (result i32) (f32.const 0) (br 1 (i32.const 9)))) - ) - (func (export "loop-value-after-br_table") (result i32) - (block (result i32) - (loop (result i32) - (f32.const 0) (br_table 1 1 (i32.const 9) (i32.const 0)) - ) - ) - ) - (func (export "loop-value-after-return") (result i32) - (loop (result i32) (f32.const 0) (return (i32.const 9))) - ) -) - -(assert_trap (invoke "func-unwind-by-unreachable") "unreachable") -(assert_return (invoke "func-unwind-by-br")) -(assert_return (invoke "func-unwind-by-br-value") (i32.const 9)) -(assert_return (invoke "func-unwind-by-br_table")) -(assert_return (invoke "func-unwind-by-br_table-value") (i32.const 9)) -(assert_return (invoke "func-unwind-by-return") (i32.const 9)) - -(assert_trap (invoke "block-unwind-by-unreachable") "unreachable") -(assert_return (invoke "block-unwind-by-br") (i32.const 9)) -(assert_return (invoke "block-unwind-by-br-value") (i32.const 9)) -(assert_return (invoke "block-unwind-by-br_table") (i32.const 9)) -(assert_return (invoke "block-unwind-by-br_table-value") (i32.const 9)) -(assert_return (invoke "block-unwind-by-return") (i32.const 9)) - -(assert_trap (invoke "block-nested-unwind-by-unreachable") "unreachable") -(assert_return (invoke "block-nested-unwind-by-br") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-br-value") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-br_table") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-br_table-value") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-return") (i32.const 9)) - -(assert_trap (invoke "unary-after-unreachable") "unreachable") -(assert_return (invoke "unary-after-br") (i32.const 9)) -(assert_return (invoke "unary-after-br_table") (i32.const 9)) -(assert_return (invoke "unary-after-return") (i32.const 9)) - -(assert_trap (invoke "binary-after-unreachable") "unreachable") -(assert_return (invoke "binary-after-br") (i32.const 9)) -(assert_return (invoke "binary-after-br_table") (i32.const 9)) -(assert_return (invoke "binary-after-return") (i32.const 9)) - -(assert_trap (invoke "select-after-unreachable") "unreachable") -(assert_return (invoke "select-after-br") (i32.const 9)) -(assert_return (invoke "select-after-br_table") (i32.const 9)) -(assert_return (invoke "select-after-return") (i32.const 9)) - -(assert_trap (invoke "block-value-after-unreachable") "unreachable") -(assert_return (invoke "block-value-after-br") (i32.const 9)) -(assert_return (invoke "block-value-after-br_table") (i32.const 9)) -(assert_return (invoke "block-value-after-return") (i32.const 9)) - -(assert_trap (invoke "loop-value-after-unreachable") "unreachable") -(assert_return (invoke "loop-value-after-br") (i32.const 9)) -(assert_return (invoke "loop-value-after-br_table") (i32.const 9)) -(assert_return (invoke "loop-value-after-return") (i32.const 9)) diff --git a/tests/samples/utf8-custom-section-id.wast b/tests/samples/utf8-custom-section-id.wast deleted file mode 100644 index 129d2b9..0000000 --- a/tests/samples/utf8-custom-section-id.wast +++ /dev/null @@ -1,1792 +0,0 @@ -;;;;;; Invalid UTF-8 custom section names - -;;;; Continuation bytes not preceded by prefixes - -;; encoding starts with (first) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\80" ;; "\80" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x8f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\8f" ;; "\8f" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x90) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\90" ;; "\90" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x9f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\9f" ;; "\9f" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0xa0) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\a0" ;; "\a0" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (last) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\bf" ;; "\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequences - -;; 2-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\c2\80\80" ;; "\c2\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\c2" ;; "\c2" - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\2e" ;; "\c2." - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequence contents - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c0\80" ;; "\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c0\bf" ;; "\c0\bf" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c1\80" ;; "\c1\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c1\bf" ;; "\c1\bf" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a contination byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\00" ;; "\c2\00" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\7f" ;; "\c2\7f" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\c0" ;; "\c2\c0" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\fd" ;; "\c2\fd" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\00" ;; "\df\00" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\7f" ;; "\df\7f" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\c0" ;; "\df\c0" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\fd" ;; "\df\fd" - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequences - -;; 3-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\e1\80\80\80" ;; "\e1\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\e1\80" ;; "\e1\80" - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\2e" ;; "\e1\80." - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\e1" ;; "\e1" - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\e1\2e" ;; "\e1." - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\00\a0" ;; "\e0\00\a0" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\7f\a0" ;; "\e0\7f\a0" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\80\80" ;; "\e0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\80\a0" ;; "\e0\80\a0" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\9f\a0" ;; "\e0\9f\a0" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\9f\bf" ;; "\e0\9f\bf" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\c0\a0" ;; "\e0\c0\a0" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\fd\a0" ;; "\e0\fd\a0" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\00\80" ;; "\e1\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\7f\80" ;; "\e1\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\c0\80" ;; "\e1\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\fd\80" ;; "\e1\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\00\80" ;; "\ec\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\7f\80" ;; "\ec\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\c0\80" ;; "\ec\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\fd\80" ;; "\ec\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\00\80" ;; "\ed\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\7f\80" ;; "\ed\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\a0\80" ;; "\ed\a0\80" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\a0\bf" ;; "\ed\a0\bf" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\bf\80" ;; "\ed\bf\80" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\bf\bf" ;; "\ed\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\c0\80" ;; "\ed\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\fd\80" ;; "\ed\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\00\80" ;; "\ee\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\7f\80" ;; "\ee\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\c0\80" ;; "\ee\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\fd\80" ;; "\ee\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\00\80" ;; "\ef\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\7f\80" ;; "\ef\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\c0\80" ;; "\ef\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\fd\80" ;; "\ef\fd\80" - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents (third byte) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\00" ;; "\e0\a0\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\7f" ;; "\e0\a0\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\c0" ;; "\e0\a0\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\fd" ;; "\e0\a0\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\00" ;; "\e1\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\7f" ;; "\e1\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\c0" ;; "\e1\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\fd" ;; "\e1\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\00" ;; "\ec\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\7f" ;; "\ec\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\c0" ;; "\ec\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\fd" ;; "\ec\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\00" ;; "\ed\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\7f" ;; "\ed\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\c0" ;; "\ed\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\fd" ;; "\ed\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\00" ;; "\ee\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\7f" ;; "\ee\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\c0" ;; "\ee\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\fd" ;; "\ee\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\00" ;; "\ef\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\7f" ;; "\ef\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\c0" ;; "\ef\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\fd" ;; "\ef\80\fd" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequences - -;; 4-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\f1\80\80\80\80" ;; "\f1\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f1\80\80" ;; "\f1\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\23" ;; "\f1\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f1\80" ;; "\f1\80" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f1\80\23" ;; "\f1\80#" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\f1" ;; "\f1" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f1\23" ;; "\f1#" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\00\90\90" ;; "\f0\00\90\90" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\7f\90\90" ;; "\f0\7f\90\90" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\80\80\80" ;; "\f0\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\80\90\90" ;; "\f0\80\90\90" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\8f\90\90" ;; "\f0\8f\90\90" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\8f\bf\bf" ;; "\f0\8f\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\c0\90\90" ;; "\f0\c0\90\90" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\fd\90\90" ;; "\f0\fd\90\90" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\00\80\80" ;; "\f1\00\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\7f\80\80" ;; "\f1\7f\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\c0\80\80" ;; "\f1\c0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\fd\80\80" ;; "\f1\fd\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\00\80\80" ;; "\f3\00\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\7f\80\80" ;; "\f3\7f\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\c0\80\80" ;; "\f3\c0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\fd\80\80" ;; "\f3\fd\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\00\80\80" ;; "\f4\00\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\7f\80\80" ;; "\f4\7f\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\90\80\80" ;; "\f4\90\80\80" - ) - "invalid UTF-8 encoding" -) - -;; invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\bf\80\80" ;; "\f4\bf\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\c0\80\80" ;; "\f4\c0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\fd\80\80" ;; "\f4\fd\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f5\80\80\80" ;; "\f5\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f7\80\80\80" ;; "\f7\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f7\bf\bf\bf" ;; "\f7\bf\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (third byte) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\00\90" ;; "\f0\90\00\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\7f\90" ;; "\f0\90\7f\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\c0\90" ;; "\f0\90\c0\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\fd\90" ;; "\f0\90\fd\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\00\80" ;; "\f1\80\00\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\7f\80" ;; "\f1\80\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\c0\80" ;; "\f1\80\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\fd\80" ;; "\f1\80\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\00\80" ;; "\f3\80\00\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\7f\80" ;; "\f3\80\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\c0\80" ;; "\f3\80\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\fd\80" ;; "\f3\80\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\00\80" ;; "\f4\80\00\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\7f\80" ;; "\f4\80\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\c0\80" ;; "\f4\80\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\fd\80" ;; "\f4\80\fd\80" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (fourth byte) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\00" ;; "\f0\90\90\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\7f" ;; "\f0\90\90\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\c0" ;; "\f0\90\90\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\fd" ;; "\f0\90\90\fd" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\00" ;; "\f1\80\80\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\7f" ;; "\f1\80\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\c0" ;; "\f1\80\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\fd" ;; "\f1\80\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\00" ;; "\f3\80\80\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\7f" ;; "\f3\80\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\c0" ;; "\f3\80\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\fd" ;; "\f3\80\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\00" ;; "\f4\80\80\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\7f" ;; "\f4\80\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\c0" ;; "\f4\80\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\fd" ;; "\f4\80\80\fd" - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequences - -;; 5-byte sequence contains 6 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\f8\80\80\80\80\80" ;; "\f8\80\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f8\80\80\80" ;; "\f8\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\f8\80\80\80\23" ;; "\f8\80\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f8\80\80" ;; "\f8\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f8\80\80\23" ;; "\f8\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f8\80" ;; "\f8\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f8\80\23" ;; "\f8\80#" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\f8" ;; "\f8" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f8\23" ;; "\f8#" - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequence contents - -;; (first) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\f8\80\80\80\80" ;; "\f8\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\fb\bf\bf\bf\bf" ;; "\fb\bf\bf\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequences - -;; 6-byte sequence contains 7 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\08" ;; custom section - "\07\fc\80\80\80\80\80\80" ;; "\fc\80\80\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\fc\80\80\80\80" ;; "\fc\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\fc\80\80\80\80\23" ;; "\fc\80\80\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\fc\80\80\80" ;; "\fc\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\fc\80\80\80\23" ;; "\fc\80\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\fc\80\80" ;; "\fc\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\fc\80\80\23" ;; "\fc\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\fc\80" ;; "\fc\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\fc\80\23" ;; "\fc\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\fc" ;; "\fc" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\fc\23" ;; "\fc#" - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequence contents - -;; (first) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\fc\80\80\80\80\80" ;; "\fc\80\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\fd\bf\bf\bf\bf\bf" ;; "\fd\bf\bf\bf\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; Miscellaneous invalid bytes - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\fe" ;; "\fe" - ) - "invalid UTF-8 encoding" -) - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\ff" ;; "\ff" - ) - "invalid UTF-8 encoding" -) - -;; UTF-16BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\fe\ff" ;; "\fe\ff" - ) - "invalid UTF-8 encoding" -) - -;; UTF-32BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\00\00\fe\ff" ;; "\00\00\fe\ff" - ) - "invalid UTF-8 encoding" -) - -;; UTF-16LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\ff\fe" ;; "\ff\fe" - ) - "invalid UTF-8 encoding" -) - -;; UTF-32LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\ff\fe\00\00" ;; "\ff\fe\00\00" - ) - "invalid UTF-8 encoding" -) - diff --git a/tests/samples/utf8-import-field.wast b/tests/samples/utf8-import-field.wast deleted file mode 100644 index 1ff2aa0..0000000 --- a/tests/samples/utf8-import-field.wast +++ /dev/null @@ -1,2672 +0,0 @@ -;;;;;; Invalid UTF-8 import field names - -;;;; Continuation bytes not preceded by prefixes - -;; encoding starts with (first) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\80" ;; "\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x8f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\8f" ;; "\8f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x90) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\90" ;; "\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x9f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\9f" ;; "\9f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0xa0) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\a0" ;; "\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (last) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\bf" ;; "\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequences - -;; 2-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\c2\80\80" ;; "\c2\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\c2" ;; "\c2" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\2e" ;; "\c2." - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequence contents - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c0\80" ;; "\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c0\bf" ;; "\c0\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c1\80" ;; "\c1\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c1\bf" ;; "\c1\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a contination byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\00" ;; "\c2\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\7f" ;; "\c2\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\c0" ;; "\c2\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\fd" ;; "\c2\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\00" ;; "\df\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\7f" ;; "\df\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\c0" ;; "\df\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\fd" ;; "\df\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequences - -;; 3-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\e1\80\80\80" ;; "\e1\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\e1\80" ;; "\e1\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\2e" ;; "\e1\80." - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\e1" ;; "\e1" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\e1\2e" ;; "\e1." - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\00\a0" ;; "\e0\00\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\7f\a0" ;; "\e0\7f\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\80\80" ;; "\e0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\80\a0" ;; "\e0\80\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\9f\a0" ;; "\e0\9f\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\9f\bf" ;; "\e0\9f\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\c0\a0" ;; "\e0\c0\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\fd\a0" ;; "\e0\fd\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\00\80" ;; "\e1\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\7f\80" ;; "\e1\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\c0\80" ;; "\e1\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\fd\80" ;; "\e1\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\00\80" ;; "\ec\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\7f\80" ;; "\ec\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\c0\80" ;; "\ec\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\fd\80" ;; "\ec\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\00\80" ;; "\ed\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\7f\80" ;; "\ed\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\a0\80" ;; "\ed\a0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\a0\bf" ;; "\ed\a0\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\bf\80" ;; "\ed\bf\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\bf\bf" ;; "\ed\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\c0\80" ;; "\ed\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\fd\80" ;; "\ed\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\00\80" ;; "\ee\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\7f\80" ;; "\ee\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\c0\80" ;; "\ee\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\fd\80" ;; "\ee\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\00\80" ;; "\ef\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\7f\80" ;; "\ef\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\c0\80" ;; "\ef\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\fd\80" ;; "\ef\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents (third byte) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\00" ;; "\e0\a0\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\7f" ;; "\e0\a0\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\c0" ;; "\e0\a0\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\fd" ;; "\e0\a0\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\00" ;; "\e1\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\7f" ;; "\e1\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\c0" ;; "\e1\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\fd" ;; "\e1\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\00" ;; "\ec\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\7f" ;; "\ec\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\c0" ;; "\ec\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\fd" ;; "\ec\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\00" ;; "\ed\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\7f" ;; "\ed\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\c0" ;; "\ed\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\fd" ;; "\ed\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\00" ;; "\ee\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\7f" ;; "\ee\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\c0" ;; "\ee\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\fd" ;; "\ee\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\00" ;; "\ef\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\7f" ;; "\ef\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\c0" ;; "\ef\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\fd" ;; "\ef\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequences - -;; 4-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\f1\80\80\80\80" ;; "\f1\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f1\80\80" ;; "\f1\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\23" ;; "\f1\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f1\80" ;; "\f1\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f1\80\23" ;; "\f1\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\f1" ;; "\f1" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f1\23" ;; "\f1#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\00\90\90" ;; "\f0\00\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\7f\90\90" ;; "\f0\7f\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\80\80\80" ;; "\f0\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\80\90\90" ;; "\f0\80\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\8f\90\90" ;; "\f0\8f\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\8f\bf\bf" ;; "\f0\8f\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\c0\90\90" ;; "\f0\c0\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\fd\90\90" ;; "\f0\fd\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\00\80\80" ;; "\f1\00\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\7f\80\80" ;; "\f1\7f\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\c0\80\80" ;; "\f1\c0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\fd\80\80" ;; "\f1\fd\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\00\80\80" ;; "\f3\00\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\7f\80\80" ;; "\f3\7f\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\c0\80\80" ;; "\f3\c0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\fd\80\80" ;; "\f3\fd\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\00\80\80" ;; "\f4\00\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\7f\80\80" ;; "\f4\7f\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\90\80\80" ;; "\f4\90\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\bf\80\80" ;; "\f4\bf\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\c0\80\80" ;; "\f4\c0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\fd\80\80" ;; "\f4\fd\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f5\80\80\80" ;; "\f5\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f7\80\80\80" ;; "\f7\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f7\bf\bf\bf" ;; "\f7\bf\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (third byte) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\00\90" ;; "\f0\90\00\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\7f\90" ;; "\f0\90\7f\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\c0\90" ;; "\f0\90\c0\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\fd\90" ;; "\f0\90\fd\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\00\80" ;; "\f1\80\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\7f\80" ;; "\f1\80\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\c0\80" ;; "\f1\80\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\fd\80" ;; "\f1\80\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\00\80" ;; "\f3\80\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\7f\80" ;; "\f3\80\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\c0\80" ;; "\f3\80\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\fd\80" ;; "\f3\80\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\00\80" ;; "\f4\80\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\7f\80" ;; "\f4\80\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\c0\80" ;; "\f4\80\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\fd\80" ;; "\f4\80\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (fourth byte) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\00" ;; "\f0\90\90\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\7f" ;; "\f0\90\90\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\c0" ;; "\f0\90\90\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\fd" ;; "\f0\90\90\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\00" ;; "\f1\80\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\7f" ;; "\f1\80\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\c0" ;; "\f1\80\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\fd" ;; "\f1\80\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\00" ;; "\f3\80\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\7f" ;; "\f3\80\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\c0" ;; "\f3\80\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\fd" ;; "\f3\80\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\00" ;; "\f4\80\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\7f" ;; "\f4\80\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\c0" ;; "\f4\80\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\fd" ;; "\f4\80\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequences - -;; 5-byte sequence contains 6 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\f8\80\80\80\80\80" ;; "\f8\80\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f8\80\80\80" ;; "\f8\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\f8\80\80\80\23" ;; "\f8\80\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f8\80\80" ;; "\f8\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f8\80\80\23" ;; "\f8\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f8\80" ;; "\f8\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f8\80\23" ;; "\f8\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\f8" ;; "\f8" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f8\23" ;; "\f8#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequence contents - -;; (first) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\f8\80\80\80\80" ;; "\f8\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\fb\bf\bf\bf\bf" ;; "\fb\bf\bf\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequences - -;; 6-byte sequence contains 7 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\11" ;; import section - "\01" ;; length 1 - "\07\fc\80\80\80\80\80\80" ;; "\fc\80\80\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\fc\80\80\80\80" ;; "\fc\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\fc\80\80\80\80\23" ;; "\fc\80\80\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\fc\80\80\80" ;; "\fc\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\fc\80\80\80\23" ;; "\fc\80\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\fc\80\80" ;; "\fc\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\fc\80\80\23" ;; "\fc\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\fc\80" ;; "\fc\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\fc\80\23" ;; "\fc\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\fc" ;; "\fc" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\fc\23" ;; "\fc#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequence contents - -;; (first) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\fc\80\80\80\80\80" ;; "\fc\80\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\fd\bf\bf\bf\bf\bf" ;; "\fd\bf\bf\bf\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; Miscellaneous invalid bytes - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\fe" ;; "\fe" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\ff" ;; "\ff" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\fe\ff" ;; "\fe\ff" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\00\00\fe\ff" ;; "\00\00\fe\ff" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\ff\fe" ;; "\ff\fe" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\ff\fe\00\00" ;; "\ff\fe\00\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - diff --git a/tests/samples/utf8-import-module.wast b/tests/samples/utf8-import-module.wast deleted file mode 100644 index ceabbeb..0000000 --- a/tests/samples/utf8-import-module.wast +++ /dev/null @@ -1,2672 +0,0 @@ -;;;;;; Invalid UTF-8 import module names - -;;;; Continuation bytes not preceded by prefixes - -;; encoding starts with (first) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\80" ;; "\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x8f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\8f" ;; "\8f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x90) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\90" ;; "\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x9f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\9f" ;; "\9f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0xa0) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\a0" ;; "\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (last) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\bf" ;; "\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequences - -;; 2-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\c2\80\80" ;; "\c2\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\c2" ;; "\c2" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\2e" ;; "\c2." - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequence contents - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c0\80" ;; "\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c0\bf" ;; "\c0\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c1\80" ;; "\c1\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c1\bf" ;; "\c1\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a contination byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\00" ;; "\c2\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\7f" ;; "\c2\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\c0" ;; "\c2\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\fd" ;; "\c2\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\00" ;; "\df\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\7f" ;; "\df\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\c0" ;; "\df\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\fd" ;; "\df\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequences - -;; 3-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\e1\80\80\80" ;; "\e1\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\e1\80" ;; "\e1\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\2e" ;; "\e1\80." - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\e1" ;; "\e1" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\e1\2e" ;; "\e1." - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\00\a0" ;; "\e0\00\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\7f\a0" ;; "\e0\7f\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\80\80" ;; "\e0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\80\a0" ;; "\e0\80\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\9f\a0" ;; "\e0\9f\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\9f\bf" ;; "\e0\9f\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\c0\a0" ;; "\e0\c0\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\fd\a0" ;; "\e0\fd\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\00\80" ;; "\e1\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\7f\80" ;; "\e1\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\c0\80" ;; "\e1\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\fd\80" ;; "\e1\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\00\80" ;; "\ec\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\7f\80" ;; "\ec\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\c0\80" ;; "\ec\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\fd\80" ;; "\ec\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\00\80" ;; "\ed\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\7f\80" ;; "\ed\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\a0\80" ;; "\ed\a0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\a0\bf" ;; "\ed\a0\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\bf\80" ;; "\ed\bf\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\bf\bf" ;; "\ed\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\c0\80" ;; "\ed\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\fd\80" ;; "\ed\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\00\80" ;; "\ee\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\7f\80" ;; "\ee\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\c0\80" ;; "\ee\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\fd\80" ;; "\ee\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\00\80" ;; "\ef\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\7f\80" ;; "\ef\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\c0\80" ;; "\ef\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\fd\80" ;; "\ef\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents (third byte) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\00" ;; "\e0\a0\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\7f" ;; "\e0\a0\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\c0" ;; "\e0\a0\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\fd" ;; "\e0\a0\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\00" ;; "\e1\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\7f" ;; "\e1\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\c0" ;; "\e1\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\fd" ;; "\e1\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\00" ;; "\ec\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\7f" ;; "\ec\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\c0" ;; "\ec\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\fd" ;; "\ec\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\00" ;; "\ed\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\7f" ;; "\ed\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\c0" ;; "\ed\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\fd" ;; "\ed\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\00" ;; "\ee\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\7f" ;; "\ee\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\c0" ;; "\ee\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\fd" ;; "\ee\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\00" ;; "\ef\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\7f" ;; "\ef\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\c0" ;; "\ef\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\fd" ;; "\ef\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequences - -;; 4-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\f1\80\80\80\80" ;; "\f1\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f1\80\80" ;; "\f1\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\23" ;; "\f1\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f1\80" ;; "\f1\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f1\80\23" ;; "\f1\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\f1" ;; "\f1" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f1\23" ;; "\f1#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\00\90\90" ;; "\f0\00\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\7f\90\90" ;; "\f0\7f\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\80\80\80" ;; "\f0\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\80\90\90" ;; "\f0\80\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\8f\90\90" ;; "\f0\8f\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\8f\bf\bf" ;; "\f0\8f\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\c0\90\90" ;; "\f0\c0\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\fd\90\90" ;; "\f0\fd\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\00\80\80" ;; "\f1\00\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\7f\80\80" ;; "\f1\7f\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\c0\80\80" ;; "\f1\c0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\fd\80\80" ;; "\f1\fd\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\00\80\80" ;; "\f3\00\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\7f\80\80" ;; "\f3\7f\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\c0\80\80" ;; "\f3\c0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\fd\80\80" ;; "\f3\fd\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\00\80\80" ;; "\f4\00\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\7f\80\80" ;; "\f4\7f\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\90\80\80" ;; "\f4\90\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\bf\80\80" ;; "\f4\bf\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\c0\80\80" ;; "\f4\c0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\fd\80\80" ;; "\f4\fd\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f5\80\80\80" ;; "\f5\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f7\80\80\80" ;; "\f7\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f7\bf\bf\bf" ;; "\f7\bf\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (third byte) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\00\90" ;; "\f0\90\00\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\7f\90" ;; "\f0\90\7f\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\c0\90" ;; "\f0\90\c0\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\fd\90" ;; "\f0\90\fd\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\00\80" ;; "\f1\80\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\7f\80" ;; "\f1\80\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\c0\80" ;; "\f1\80\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\fd\80" ;; "\f1\80\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\00\80" ;; "\f3\80\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\7f\80" ;; "\f3\80\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\c0\80" ;; "\f3\80\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\fd\80" ;; "\f3\80\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\00\80" ;; "\f4\80\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\7f\80" ;; "\f4\80\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\c0\80" ;; "\f4\80\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\fd\80" ;; "\f4\80\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (fourth byte) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\00" ;; "\f0\90\90\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\7f" ;; "\f0\90\90\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\c0" ;; "\f0\90\90\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\fd" ;; "\f0\90\90\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\00" ;; "\f1\80\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\7f" ;; "\f1\80\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\c0" ;; "\f1\80\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\fd" ;; "\f1\80\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\00" ;; "\f3\80\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\7f" ;; "\f3\80\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\c0" ;; "\f3\80\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\fd" ;; "\f3\80\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\00" ;; "\f4\80\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\7f" ;; "\f4\80\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\c0" ;; "\f4\80\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\fd" ;; "\f4\80\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequences - -;; 5-byte sequence contains 6 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\f8\80\80\80\80\80" ;; "\f8\80\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f8\80\80\80" ;; "\f8\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\f8\80\80\80\23" ;; "\f8\80\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f8\80\80" ;; "\f8\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f8\80\80\23" ;; "\f8\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f8\80" ;; "\f8\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f8\80\23" ;; "\f8\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\f8" ;; "\f8" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f8\23" ;; "\f8#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequence contents - -;; (first) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\f8\80\80\80\80" ;; "\f8\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\fb\bf\bf\bf\bf" ;; "\fb\bf\bf\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequences - -;; 6-byte sequence contains 7 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\11" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\07\fc\80\80\80\80\80\80" ;; "\fc\80\80\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\fc\80\80\80\80" ;; "\fc\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\fc\80\80\80\80\23" ;; "\fc\80\80\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\fc\80\80\80" ;; "\fc\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\fc\80\80\80\23" ;; "\fc\80\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\fc\80\80" ;; "\fc\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\fc\80\80\23" ;; "\fc\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\fc\80" ;; "\fc\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\fc\80\23" ;; "\fc\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\fc" ;; "\fc" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\fc\23" ;; "\fc#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequence contents - -;; (first) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\fc\80\80\80\80\80" ;; "\fc\80\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\fd\bf\bf\bf\bf\bf" ;; "\fd\bf\bf\bf\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; Miscellaneous invalid bytes - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\fe" ;; "\fe" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\ff" ;; "\ff" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\fe\ff" ;; "\fe\ff" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\00\00\fe\ff" ;; "\00\00\fe\ff" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\ff\fe" ;; "\ff\fe" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\ff\fe\00\00" ;; "\ff\fe\00\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - diff --git a/tests/samples/utf8-invalid-encoding.wast b/tests/samples/utf8-invalid-encoding.wast deleted file mode 100644 index 3b35730..0000000 --- a/tests/samples/utf8-invalid-encoding.wast +++ /dev/null @@ -1,176 +0,0 @@ -(assert_malformed (module quote "(func (export \"\\00\\00\\fe\\ff\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\8f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\9f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c0\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c1\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c1\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\2e\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\00\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\7f\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\80\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\9f\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\9f\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\c0\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\fd\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\2e\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\2e\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\a0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\a0\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\bf\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\00\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\7f\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\80\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\8f\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\8f\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\00\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\7f\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\c0\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\fd\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\c0\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\fd\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\00\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\7f\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\c0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\fd\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\00\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\7f\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\c0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\fd\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\00\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\7f\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\90\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\bf\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\c0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\fd\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f5\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f7\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f7\\bf\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fb\\bf\\bf\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fd\\bf\\bf\\bf\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fe\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fe\\ff\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ff\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ff\\fe\\00\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ff\\fe\"))") "invalid UTF-8 encoding") diff --git a/tests/spec b/tests/spec new file mode 160000 index 0000000..9994915 --- /dev/null +++ b/tests/spec @@ -0,0 +1 @@ +Subproject commit 9994915e0cca8b42a16c577e4c85491822367dde From 89df0e43d648968c166e6c085802473376ed5b42 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Wed, 3 Mar 2021 22:08:18 -0800 Subject: [PATCH 02/28] add parsing of canonical nan, reinterpret instructions and check for mem idents uniqueness --- src/Language/Wasm/Lexer.x | 1 + src/Language/Wasm/Parser.y | 67 ++++++++++++++++++++++++-------------- tests/Test.hs | 1 + 3 files changed, 45 insertions(+), 24 deletions(-) diff --git a/src/Language/Wasm/Lexer.x b/src/Language/Wasm/Lexer.x index c697641..b81c0e8 100644 --- a/src/Language/Wasm/Lexer.x +++ b/src/Language/Wasm/Lexer.x @@ -62,6 +62,7 @@ tokens :- <0> "nan" { constToken $ TFloatLit $ BinRep (abs nan) } <0> "+nan" { constToken $ TFloatLit $ BinRep (abs nan) } <0> "-nan" { constToken $ TFloatLit $ BinRep nan } +<0> "nan:canonical" { constToken $ TFloatLit $ BinRep nan } <0> $sign? @nanhex { parseNanSigned } <0> "inf" { constToken $ TFloatLit $ BinRep inf } <0> "+inf" { constToken $ TFloatLit $ BinRep inf } diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index a1dfa99..c9bbdfa 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -128,11 +128,11 @@ import Language.Wasm.Lexer ( 'call_indirect' { Lexeme _ (TKeyword "call_indirect") } 'drop' { Lexeme _ (TKeyword "drop") } 'select' { Lexeme _ (TKeyword "select") } -'get_local' { Lexeme _ (TKeyword "get_local") } -'set_local' { Lexeme _ (TKeyword "set_local") } -'tee_local' { Lexeme _ (TKeyword "tee_local") } -'get_global' { Lexeme _ (TKeyword "get_global") } -'set_global' { Lexeme _ (TKeyword "set_global") } +'get_local' { Lexeme _ (TKeyword "local.get") } +'set_local' { Lexeme _ (TKeyword "local.set") } +'tee_local' { Lexeme _ (TKeyword "local.tee") } +'get_global' { Lexeme _ (TKeyword "global.get") } +'set_global' { Lexeme _ (TKeyword "global.set") } 'i32.load' { Lexeme _ (TKeyword "i32.load") } 'i64.load' { Lexeme _ (TKeyword "i64.load") } 'f32.load' { Lexeme _ (TKeyword "f32.load") } @@ -156,8 +156,6 @@ import Language.Wasm.Lexer ( 'i64.store8' { Lexeme _ (TKeyword "i64.store8") } 'i64.store16' { Lexeme _ (TKeyword "i64.store16") } 'i64.store32' { Lexeme _ (TKeyword "i64.store32") } -'current_memory' { Lexeme _ (TKeyword "current_memory") } -'grow_memory' { Lexeme _ (TKeyword "grow_memory") } 'memory.size' { Lexeme _ (TKeyword "memory.size") } 'memory.grow' { Lexeme _ (TKeyword "memory.grow") } 'i32.const' { Lexeme _ (TKeyword "i32.const") } @@ -283,10 +281,10 @@ import Language.Wasm.Lexer ( 'f64.convert_s/i64' { Lexeme _ (TKeyword "f64.convert_s/i64") } 'f64.convert_u/i64' { Lexeme _ (TKeyword "f64.convert_u/i64") } 'f64.promote/f32' { Lexeme _ (TKeyword "f64.promote/f32") } -'i32.reinterpret/f32' { Lexeme _ (TKeyword "i32.reinterpret/f32") } -'i64.reinterpret/f64' { Lexeme _ (TKeyword "i64.reinterpret/f64") } -'f32.reinterpret/i32' { Lexeme _ (TKeyword "f32.reinterpret/i32") } -'f64.reinterpret/i64' { Lexeme _ (TKeyword "f64.reinterpret/i64") } +'i32.reinterpret_f32' { Lexeme _ (TKeyword "i32.reinterpret_f32") } +'i64.reinterpret_f64' { Lexeme _ (TKeyword "i64.reinterpret_f64") } +'f32.reinterpret_i32' { Lexeme _ (TKeyword "f32.reinterpret_i32") } +'f64.reinterpret_i64' { Lexeme _ (TKeyword "f64.reinterpret_i64") } 'block' { Lexeme _ (TKeyword "block") } 'loop' { Lexeme _ (TKeyword "loop") } 'if' { Lexeme _ (TKeyword "if") } @@ -435,8 +433,6 @@ plaininstr :: { PlainInstr } | 'i64.store8' memarg1 { I64Store8 $2 } | 'i64.store16' memarg2 { I64Store16 $2 } | 'i64.store32' memarg4 { I64Store32 $2 } - | 'current_memory' { CurrentMemory } - | 'grow_memory' { GrowMemory } | 'memory.size' { CurrentMemory } | 'memory.grow' { GrowMemory } -- numeric instructions @@ -563,10 +559,10 @@ plaininstr :: { PlainInstr } | 'f64.convert_s/i64' { FConvertIS BS64 BS64 } | 'f64.convert_u/i64' { FConvertIU BS64 BS64 } | 'f64.promote/f32' { F64PromoteF32 } - | 'i32.reinterpret/f32' { IReinterpretF BS32 } - | 'i64.reinterpret/f64' { IReinterpretF BS64 } - | 'f32.reinterpret/i32' { FReinterpretI BS32 } - | 'f64.reinterpret/i64' { FReinterpretI BS64 } + | 'i32.reinterpret_f32' { IReinterpretF BS32 } + | 'i64.reinterpret_f64' { IReinterpretF BS64 } + | 'f32.reinterpret_i32' { FReinterpretI BS32 } + | 'f64.reinterpret_i64' { FReinterpretI BS64 } typeuse :: { TypeUse } : '(' typeuse1 { $2 } @@ -1511,6 +1507,7 @@ desugarize fields = do elements <- mapM (synElemToStruct mod) $ elems mod segments <- mapM (synDataToStruct mod) $ datas mod globs <- mapM (synGlobalToStruct mod) $ globals mod + checkMemoryIdentsUniqueness mod return S.Module { S.types = map synTypeDefToStruct $ types mod, S.functions = funs, @@ -1820,6 +1817,23 @@ desugarize fields = do synMemoryToStruct :: Memory -> S.Memory synMemoryToStruct (Memory _ _ limits) = S.Memory limits + checkMemoryIdentsUniqueness :: Module -> Either String () + checkMemoryIdentsUniqueness m@Module { imports, mems } = do + mapM_ checkImportUniqueness $ filter isMemImport imports + mapM_ checkMemUniqueness mems + where + checkImportUniqueness Import { desc = ImportMemory (Just id) _ } = + if length (getMemIndexes m id) > 1 + then Left "duplicate memory" + else return () + checkImportUniqueness _ = return () + + checkMemUniqueness (Memory _ (Just id) _) = + if length (getMemIndexes m id) > 1 + then Left "duplicate memory" + else return () + checkMemUniqueness _ = return () + extractMemory :: [Memory] -> ModuleField -> [Memory] extractMemory mems (MFMem mem) = mem : mems extractMemory mems _ = mems @@ -1828,14 +1842,19 @@ desugarize fields = do isMemImport Import { desc = ImportMemory _ _ } = True isMemImport _ = False + getMemIndexes :: Module -> Ident -> [Natural] + getMemIndexes Module { imports, mems } id = + let memImports = zip [0..] $ filter isMemImport imports in + let importIndexes = map fst $ filter (\((_, Import { desc = ImportMemory ident _ })) -> ident == Just id) memImports in + let isIdent (_, (Memory _ (Just id) _)) = True in + let memIndexes = map fst $ filter isIdent $ zip [length memImports..] mems in + map fromIntegral $ importIndexes ++ memIndexes + getMemIndex :: Module -> MemoryIndex -> Maybe Natural - getMemIndex Module { imports, mems } (Named id) = - let memImports = filter isMemImport imports in - case findIndex (\(Import { desc = ImportMemory ident _ }) -> ident == Just id) memImports of - Just idx -> return $ fromIntegral idx - Nothing -> - let isIdent (Memory _ (Just id) _) = True in - fromIntegral . (+ length memImports) <$> findIndex isIdent mems + getMemIndex mod (Named id) = + case getMemIndexes mod id of + [idx] -> return idx + _ -> Nothing getMemIndex Module { imports, mems } (Index idx) = Just idx -- global diff --git a/tests/Test.hs b/tests/Test.hs index bfa8e19..4c22eb1 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,6 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" + -- let files = ["call.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 40291c35f024deed30c39160c66a6469c1c57dae Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Thu, 4 Mar 2021 22:04:56 -0800 Subject: [PATCH 03/28] more grammar fixes --- src/Language/Wasm/Binary.hs | 4 +- src/Language/Wasm/Builder.hs | 4 +- src/Language/Wasm/Interpreter.hs | 2 +- src/Language/Wasm/Lexer.x | 1 + src/Language/Wasm/Parser.y | 108 +++++++++++++++---------------- src/Language/Wasm/Script.hs | 8 +-- src/Language/Wasm/Structure.hs | 2 +- src/Language/Wasm/Validate.hs | 38 +++++------ 8 files changed, 84 insertions(+), 83 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index bb00f1c..2ef6ae6 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -217,8 +217,8 @@ instance Serialize FuncType where return $ FuncType { params, results } instance Serialize ElemType where - put AnyFunc = putWord8 0x70 - get = byteGuard 0x70 >> return AnyFunc + put FuncRef = putWord8 0x70 + get = byteGuard 0x70 >> return FuncRef instance Serialize Limit where put (Limit min Nothing) = putWord8 0x00 >> putULEB128 min diff --git a/src/Language/Wasm/Builder.hs b/src/Language/Wasm/Builder.hs index da7c8f8..936ca64 100644 --- a/src/Language/Wasm/Builder.hs +++ b/src/Language/Wasm/Builder.hs @@ -858,7 +858,7 @@ importMemory mod name min max = do importTable :: TL.Text -> TL.Text -> Natural -> Maybe Natural -> GenMod Tbl importTable mod name min max = do modify $ \(st@GenModState { target = m }) -> st { - target = m { imports = imports m ++ [Import mod name $ ImportTable $ TableType (Limit min max) AnyFunc] } + target = m { imports = imports m ++ [Import mod name $ ImportTable $ TableType (Limit min max) FuncRef] } } return $ Tbl 0 @@ -968,7 +968,7 @@ newtype Tbl = Tbl Natural deriving (Show, Eq) table :: Natural -> Maybe Natural -> GenMod Tbl table min max = do modify $ \(st@GenModState { target = m }) -> st { - target = m { tables = tables m ++ [Table $ TableType (Limit min max) AnyFunc] } + target = m { tables = tables m ++ [Table $ TableType (Limit min max) FuncRef] } } return $ Tbl 0 diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index c5839af..482f7be 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -279,7 +279,7 @@ makeHostModule st items = do makeHostTables :: (Store, ModuleInstance) -> IO (Store, ModuleInstance) makeHostTables (st, inst) = do let tableLen = Vector.length $ tableInstances st - let (names, tables) = unzip [(name, Table (TableType lim AnyFunc)) | (name, (HostTable lim)) <- items] + let (names, tables) = unzip [(name, Table (TableType lim FuncRef)) | (name, (HostTable lim)) <- items] let instances = allocTables tables let exps = Vector.fromList $ zipWith (\name i -> ExportInstance name (ExternTable i)) names [tableLen..] let inst' = inst { diff --git a/src/Language/Wasm/Lexer.x b/src/Language/Wasm/Lexer.x index b81c0e8..35c4299 100644 --- a/src/Language/Wasm/Lexer.x +++ b/src/Language/Wasm/Lexer.x @@ -63,6 +63,7 @@ tokens :- <0> "+nan" { constToken $ TFloatLit $ BinRep (abs nan) } <0> "-nan" { constToken $ TFloatLit $ BinRep nan } <0> "nan:canonical" { constToken $ TFloatLit $ BinRep nan } +<0> "nan:arithmetic" { constToken $ TFloatLit $ BinRep nan } <0> $sign? @nanhex { parseNanSigned } <0> "inf" { constToken $ TFloatLit $ BinRep inf } <0> "+inf" { constToken $ TFloatLit $ BinRep inf } diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index c9bbdfa..bed07c3 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -116,7 +116,7 @@ import Language.Wasm.Lexer ( 'f32' { Lexeme _ (TKeyword "f32") } 'f64' { Lexeme _ (TKeyword "f64") } 'mut' { Lexeme _ (TKeyword "mut") } -'anyfunc' { Lexeme _ (TKeyword "anyfunc") } +'funcref' { Lexeme _ (TKeyword "funcref") } 'type' { Lexeme _ (TKeyword "type") } 'unreachable' { Lexeme _ (TKeyword "unreachable") } 'nop' { Lexeme _ (TKeyword "nop") } @@ -260,27 +260,27 @@ import Language.Wasm.Lexer ( 'f64.gt' { Lexeme _ (TKeyword "f64.gt") } 'f64.le' { Lexeme _ (TKeyword "f64.le") } 'f64.ge' { Lexeme _ (TKeyword "f64.ge") } -'i32.wrap/i64' { Lexeme _ (TKeyword "i32.wrap/i64") } -'i32.trunc_s/f32' { Lexeme _ (TKeyword "i32.trunc_s/f32") } -'i32.trunc_u/f32' { Lexeme _ (TKeyword "i32.trunc_u/f32") } -'i32.trunc_s/f64' { Lexeme _ (TKeyword "i32.trunc_s/f64") } -'i32.trunc_u/f64' { Lexeme _ (TKeyword "i32.trunc_u/f64") } -'i64.extend_s/i32' { Lexeme _ (TKeyword "i64.extend_s/i32") } -'i64.extend_u/i32' { Lexeme _ (TKeyword "i64.extend_u/i32") } -'i64.trunc_s/f32' { Lexeme _ (TKeyword "i64.trunc_s/f32") } -'i64.trunc_u/f32' { Lexeme _ (TKeyword "i64.trunc_u/f32") } -'i64.trunc_s/f64' { Lexeme _ (TKeyword "i64.trunc_s/f64") } -'i64.trunc_u/f64' { Lexeme _ (TKeyword "i64.trunc_u/f64") } -'f32.convert_s/i32' { Lexeme _ (TKeyword "f32.convert_s/i32") } -'f32.convert_u/i32' { Lexeme _ (TKeyword "f32.convert_u/i32") } -'f32.convert_s/i64' { Lexeme _ (TKeyword "f32.convert_s/i64") } -'f32.convert_u/i64' { Lexeme _ (TKeyword "f32.convert_u/i64") } -'f32.demote/f64' { Lexeme _ (TKeyword "f32.demote/f64") } -'f64.convert_s/i32' { Lexeme _ (TKeyword "f64.convert_s/i32") } -'f64.convert_u/i32' { Lexeme _ (TKeyword "f64.convert_u/i32") } -'f64.convert_s/i64' { Lexeme _ (TKeyword "f64.convert_s/i64") } -'f64.convert_u/i64' { Lexeme _ (TKeyword "f64.convert_u/i64") } -'f64.promote/f32' { Lexeme _ (TKeyword "f64.promote/f32") } +'i32.wrap_i64' { Lexeme _ (TKeyword "i32.wrap_i64") } +'i32.trunc_f32_s' { Lexeme _ (TKeyword "i32.trunc_f32_s") } +'i32.trunc_f32_u' { Lexeme _ (TKeyword "i32.trunc_f32_u") } +'i32.trunc_f64_s' { Lexeme _ (TKeyword "i32.trunc_f64_s") } +'i32.trunc_f64_u' { Lexeme _ (TKeyword "i32.trunc_f64_u") } +'i64.extend_i32_s' { Lexeme _ (TKeyword "i64.extend_i32_s") } +'i64.extend_i32_u' { Lexeme _ (TKeyword "i64.extend_i32_u") } +'i64.trunc_f32_s' { Lexeme _ (TKeyword "i64.trunc_f32_s") } +'i64.trunc_f32_u' { Lexeme _ (TKeyword "i64.trunc_f32_u") } +'i64.trunc_f64_s' { Lexeme _ (TKeyword "i64.trunc_f64_s") } +'i64.trunc_f64_u' { Lexeme _ (TKeyword "i64.trunc_f64_u") } +'f32.convert_i32_s' { Lexeme _ (TKeyword "f32.convert_i32_s") } +'f32.convert_i32_u' { Lexeme _ (TKeyword "f32.convert_i32_u") } +'f32.convert_i64_s' { Lexeme _ (TKeyword "f32.convert_i64_s") } +'f32.convert_i64_u' { Lexeme _ (TKeyword "f32.convert_i64_u") } +'f32.demote_f64' { Lexeme _ (TKeyword "f32.demote_f64") } +'f64.convert_i32_s' { Lexeme _ (TKeyword "f64.convert_i32_s") } +'f64.convert_i32_u' { Lexeme _ (TKeyword "f64.convert_i32_u") } +'f64.convert_i64_s' { Lexeme _ (TKeyword "f64.convert_i64_s") } +'f64.convert_i64_u' { Lexeme _ (TKeyword "f64.convert_i64_u") } +'f64.promote_f32' { Lexeme _ (TKeyword "f64.promote_f32") } 'i32.reinterpret_f32' { Lexeme _ (TKeyword "i32.reinterpret_f32") } 'i64.reinterpret_f64' { Lexeme _ (TKeyword "i64.reinterpret_f64") } 'f32.reinterpret_i32' { Lexeme _ (TKeyword "f32.reinterpret_i32") } @@ -538,27 +538,27 @@ plaininstr :: { PlainInstr } | 'f64.gt' { FRelOp BS64 FGt } | 'f64.le' { FRelOp BS64 FLe } | 'f64.ge' { FRelOp BS64 FGe } - | 'i32.wrap/i64' { I32WrapI64 } - | 'i32.trunc_s/f32' { ITruncFS BS32 BS32 } - | 'i32.trunc_u/f32' { ITruncFU BS32 BS32 } - | 'i32.trunc_s/f64' { ITruncFS BS32 BS64 } - | 'i32.trunc_u/f64' { ITruncFU BS32 BS64 } - | 'i64.extend_s/i32' { I64ExtendSI32 } - | 'i64.extend_u/i32' { I64ExtendUI32 } - | 'i64.trunc_s/f32' { ITruncFS BS64 BS32 } - | 'i64.trunc_u/f32' { ITruncFU BS64 BS32 } - | 'i64.trunc_s/f64' { ITruncFS BS64 BS64 } - | 'i64.trunc_u/f64' { ITruncFU BS64 BS64 } - | 'f32.convert_s/i32' { FConvertIS BS32 BS32 } - | 'f32.convert_u/i32' { FConvertIU BS32 BS32 } - | 'f32.convert_s/i64' { FConvertIS BS32 BS64 } - | 'f32.convert_u/i64' { FConvertIU BS32 BS64 } - | 'f32.demote/f64' { F32DemoteF64 } - | 'f64.convert_s/i32' { FConvertIS BS64 BS32 } - | 'f64.convert_u/i32' { FConvertIU BS64 BS32 } - | 'f64.convert_s/i64' { FConvertIS BS64 BS64 } - | 'f64.convert_u/i64' { FConvertIU BS64 BS64 } - | 'f64.promote/f32' { F64PromoteF32 } + | 'i32.wrap_i64' { I32WrapI64 } + | 'i32.trunc_f32_s' { ITruncFS BS32 BS32 } + | 'i32.trunc_f32_u' { ITruncFU BS32 BS32 } + | 'i32.trunc_f64_s' { ITruncFS BS32 BS64 } + | 'i32.trunc_f64_u' { ITruncFU BS32 BS64 } + | 'i64.extend_i32_s' { I64ExtendSI32 } + | 'i64.extend_i32_u' { I64ExtendUI32 } + | 'i64.trunc_f32_s' { ITruncFS BS64 BS32 } + | 'i64.trunc_f32_u' { ITruncFU BS64 BS32 } + | 'i64.trunc_f64_s' { ITruncFS BS64 BS64 } + | 'i64.trunc_f64_u' { ITruncFU BS64 BS64 } + | 'f32.convert_i32_s' { FConvertIS BS32 BS32 } + | 'f32.convert_i32_u' { FConvertIU BS32 BS32 } + | 'f32.convert_i64_s' { FConvertIS BS32 BS64 } + | 'f32.convert_i64_u' { FConvertIU BS32 BS64 } + | 'f32.demote_f64' { F32DemoteF64 } + | 'f64.convert_i32_s' { FConvertIS BS64 BS32 } + | 'f64.convert_i32_u' { FConvertIU BS64 BS32 } + | 'f64.convert_i64_s' { FConvertIS BS64 BS64 } + | 'f64.convert_i64_u' { FConvertIU BS64 BS64 } + | 'f64.promote_f32' { F64PromoteF32 } | 'i32.reinterpret_f32' { IReinterpretF BS32 } | 'i64.reinterpret_f64' { IReinterpretF BS64 } | 'f32.reinterpret_i32' { FReinterpretI BS32 } @@ -646,10 +646,10 @@ raw_block :: { Maybe Ident -> Either String Instruction } | '(' raw_block1 { $2 } raw_block1 :: { Maybe Ident -> Either String Instruction } - : 'result' valtype ')' list(instruction) 'end' opt(ident) { + : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { \ident -> if ident == $6 || isNothing $6 - then Right $ BlockInstr ident [$2] (concat $4) + then Right $ BlockInstr ident $2 (concat $4) else Left "Block labels have to match" } | folded_instr1 list(instruction) 'end' opt(ident) { @@ -675,10 +675,10 @@ raw_loop :: { Maybe Ident -> Either String Instruction } | '(' raw_loop1 { $2 } raw_loop1 :: { Maybe Ident -> Either String Instruction } - : 'result' valtype ')' list(instruction) 'end' opt(ident) { + : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { \ident -> if ident == $6 || isNothing $6 - then Right $ LoopInstr ident [$2] (concat $4) + then Right $ LoopInstr ident $2 (concat $4) else Left "Loop labels have to match" } | folded_instr1 list(instruction) 'end' opt(ident) { @@ -704,10 +704,10 @@ raw_if_result :: { Maybe Ident -> Either String [Instruction] } | '(' raw_if_result1 { $2 } raw_if_result1 :: { Maybe Ident -> Either String [Instruction] } - : 'result' valtype ')' list(instruction) raw_else { + : 'result' list(valtype) ')' list(instruction) raw_else { \ident -> if ident == (snd $5) || isNothing (snd $5) - then Right [IfInstr ident [$2] (concat $4) $ fst $5] + then Right [IfInstr ident $2 (concat $4) $ fst $5] else Left "If labels have to match" } | folded_instr1 list(instruction) raw_else { @@ -775,7 +775,7 @@ folded_block :: { Maybe Ident -> Instruction } | raw_instr list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } folded_block1 :: { Maybe Ident -> Instruction } - : 'result' valtype ')' list(instruction) ')' { \ident -> BlockInstr ident [$2] (concat $4) } + : 'result' list(valtype) ')' list(instruction) ')' { \ident -> BlockInstr ident $2 (concat $4) } | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } folded_loop :: { Maybe Ident -> Instruction } @@ -784,14 +784,14 @@ folded_loop :: { Maybe Ident -> Instruction } | raw_instr list(instruction) ')' { \ident -> LoopInstr ident [] ($1 ++ concat $2) } folded_loop1 :: { Maybe Ident -> Instruction } - : 'result' valtype ')' list(instruction) ')' { \ident -> LoopInstr ident [$2] (concat $4) } + : 'result' list(valtype) ')' list(instruction) ')' { \ident -> LoopInstr ident $2 (concat $4) } | folded_instr1 list(instruction) ')' { \ident -> LoopInstr ident [] ($1 ++ concat $2) } folded_if_result :: { Maybe Ident -> [Instruction] } - : 'result' valtype ')' '(' folded_then_else { + : 'result' list(valtype) ')' '(' folded_then_else { \ident -> let (pred, (trueBranch, falseBranch)) = $5 in - pred ++ [IfInstr ident [$2] trueBranch falseBranch] + pred ++ [IfInstr ident $2 trueBranch falseBranch] } | folded_then_else { \ident -> @@ -997,7 +997,7 @@ limits :: { Limit } : u32 opt(u32) { Limit (fromIntegral $1) (fromIntegral `fmap` $2) } elemtype :: { ElemType } - : 'anyfunc' { AnyFunc } + : 'funcref' { FuncRef } tabletype :: { TableType } : limits elemtype { TableType $1 $2 } diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index f04d96b..02d6813 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -161,11 +161,11 @@ runScript onAssertFail script = do getFailureString Validate.ResultTypeDoesntMatch = ["type mismatch"] getFailureString Validate.MoreThanOneMemory = ["multiple memories"] getFailureString Validate.MoreThanOneTable = ["multiple tables"] - getFailureString Validate.LocalIndexOutOfRange = ["unknown local"] - getFailureString Validate.MemoryIndexOutOfRange = ["unknown memory", "unknown memory 0"] - getFailureString Validate.TableIndexOutOfRange = ["unknown table", "unknown table 0"] + getFailureString (Validate.LocalIndexOutOfRange idx) = ["unknown local", "unknown local " <> TL.pack (show idx)] + getFailureString (Validate.MemoryIndexOutOfRange idx) = ["unknown memory", "unknown memory " <> TL.pack (show idx)] + getFailureString (Validate.TableIndexOutOfRange idx) = ["unknown table", "unknown table " <> TL.pack (show idx)] getFailureString Validate.FunctionIndexOutOfRange = ["unknown function", "unknown function 0"] - getFailureString Validate.GlobalIndexOutOfRange = ["unknown global"] + getFailureString (Validate.GlobalIndexOutOfRange idx) = ["unknown global", "unknown global " <> TL.pack (show idx)] getFailureString Validate.LabelIndexOutOfRange = ["unknown label"] getFailureString Validate.TypeIndexOutOfRange = ["unknown type"] getFailureString Validate.MinMoreThanMaxInMemoryLimit = ["size minimum must not be greater than maximum"] diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 1c8db11..87ee4c9 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -192,7 +192,7 @@ data Function = Function { data Limit = Limit Natural (Maybe Natural) deriving (Show, Eq, Generic, NFData) -data ElemType = AnyFunc deriving (Show, Eq, Generic, NFData) +data ElemType = FuncRef deriving (Show, Eq, Generic, NFData) data TableType = TableType Limit ElemType deriving (Show, Eq, Generic, NFData) diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index 92d4ae5..b773e0b 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -34,10 +34,10 @@ data ValidationError = | MoreThanOneMemory | MoreThanOneTable | FunctionIndexOutOfRange - | TableIndexOutOfRange - | MemoryIndexOutOfRange - | LocalIndexOutOfRange - | GlobalIndexOutOfRange + | TableIndexOutOfRange Natural + | MemoryIndexOutOfRange Natural + | LocalIndexOutOfRange Natural + | GlobalIndexOutOfRange Natural | LabelIndexOutOfRange | TypeIndexOutOfRange | ResultTypeDoesntMatch @@ -183,7 +183,7 @@ checkMemoryInstr :: Int -> MemArg -> Checker () checkMemoryInstr size memarg = do isMemArgValid size memarg Ctx { mems } <- ask - if length mems < 1 then throwError MemoryIndexOutOfRange else return () + if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return () getInstrType :: Instruction Natural -> Checker Arrow getInstrType Unreachable = return $ Any ==> Any @@ -228,7 +228,7 @@ getInstrType (Call fun) = do getInstrType (CallIndirect sign) = do Ctx { types, tables } <- ask if length tables < 1 - then throwError TableIndexOutOfRange + then throwError (TableIndexOutOfRange 0) else do Arrow from to <- maybeToEither TypeIndexOutOfRange $ asArrow <$> types !? sign return $ (from ++ [Val I32]) ==> to @@ -240,23 +240,23 @@ getInstrType Select = do return $ [var, var, Val I32] ==> var getInstrType (GetLocal local) = do Ctx { locals } <- ask - t <- maybeToEither LocalIndexOutOfRange $ locals !? local + t <- maybeToEither (LocalIndexOutOfRange local) $ locals !? local return $ empty ==> Val t getInstrType (SetLocal local) = do Ctx { locals } <- ask - t <- maybeToEither LocalIndexOutOfRange $ locals !? local + t <- maybeToEither (LocalIndexOutOfRange local) $ locals !? local return $ Val t ==> empty getInstrType (TeeLocal local) = do Ctx { locals } <- ask - t <- maybeToEither LocalIndexOutOfRange $ locals !? local + t <- maybeToEither (LocalIndexOutOfRange local) $ locals !? local return $ Val t ==> Val t getInstrType (GetGlobal global) = do Ctx { globals } <- ask - t <- maybeToEither GlobalIndexOutOfRange $ asType <$> globals !? global + t <- maybeToEither (GlobalIndexOutOfRange global) $ asType <$> globals !? global return $ empty ==> t getInstrType (SetGlobal global) = do Ctx { globals } <- ask - t <- maybeToEither GlobalIndexOutOfRange $ asType <$> globals !? global + t <- maybeToEither (GlobalIndexOutOfRange global) $ asType <$> globals !? global shouldBeMut $ globals !! fromIntegral global return $ t ==> empty getInstrType (I32Load memarg) = do @@ -330,10 +330,10 @@ getInstrType (I64Store32 memarg) = do return $ [I32, I64] ==> empty getInstrType CurrentMemory = do Ctx { mems } <- ask - if length mems < 1 then throwError MemoryIndexOutOfRange else return $ empty ==> I32 + if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return $ empty ==> I32 getInstrType GrowMemory = do Ctx { mems } <- ask - if length mems < 1 then throwError MemoryIndexOutOfRange else return $ I32 ==> I32 + if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return $ I32 ==> I32 getInstrType (I32Const _) = return $ empty ==> I32 getInstrType (I64Const _) = return $ empty ==> I64 getInstrType (F32Const _) = return $ empty ==> F32 @@ -414,7 +414,7 @@ isConstExpression ((F64Const _):rest) = isConstExpression rest isConstExpression ((GetGlobal idx):rest) = do Ctx {globals, importedGlobals} <- ask if importedGlobals <= idx - then throwError GlobalIndexOutOfRange + then throwError (GlobalIndexOutOfRange idx) else return () case globals !! fromIntegral idx of Const _ -> isConstExpression rest @@ -539,7 +539,7 @@ elemsShouldBeValid m@Module { elems, functions, tables, imports } = let isTableIndexValid = if tableIdx < (fromIntegral $ length tableImports + length tables) then return () - else Left TableIndexOutOfRange + else Left (TableIndexOutOfRange tableIdx) in let funImports = filter isFuncImport imports in let funsLength = fromIntegral $ length functions + length funImports in @@ -563,7 +563,7 @@ datasShouldBeValid m@Module { datas, mems, imports } = let memImports = filter isMemImport imports in if memIdx < (fromIntegral $ length memImports + length mems) then check - else Left MemoryIndexOutOfRange + else Left (MemoryIndexOutOfRange memIdx) startShouldBeValid :: Validator startShouldBeValid Module { start = Nothing } = return () @@ -587,9 +587,9 @@ exportsShouldBeValid Module { exports, imports, functions, mems, tables, globals isExportValid (Export _ (ExportFunc funIdx)) = if fromIntegral funIdx < length funcImports + length functions then return () else Left FunctionIndexOutOfRange isExportValid (Export _ (ExportTable tableIdx)) = - if fromIntegral tableIdx < length tableImports + length tables then return () else Left TableIndexOutOfRange + if fromIntegral tableIdx < length tableImports + length tables then return () else Left (TableIndexOutOfRange tableIdx) isExportValid (Export _ (ExportMemory memIdx)) = - if fromIntegral memIdx < length memImports + length mems then return () else Left MemoryIndexOutOfRange + if fromIntegral memIdx < length memImports + length mems then return () else Left (MemoryIndexOutOfRange memIdx) isExportValid (Export _ (ExportGlobal globalIdx)) = if fromIntegral globalIdx < length globalImports + length globals then ( @@ -601,7 +601,7 @@ exportsShouldBeValid Module { exports, imports, functions, mems, tables, globals ) else return () ) - else Left GlobalIndexOutOfRange + else Left (GlobalIndexOutOfRange globalIdx) areExportNamesUnique :: ValidationResult areExportNamesUnique = From bf9cee08c052a67e44840309828841ab2835a094 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 8 Mar 2021 21:35:43 -0800 Subject: [PATCH 04/28] implement sign-extension operators proposal --- src/Language/Wasm/Interpreter.hs | 22 ++++++++++++++++++++++ src/Language/Wasm/Parser.y | 10 ++++++++++ src/Language/Wasm/Structure.hs | 9 ++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 482f7be..1a0dbed 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -873,6 +873,16 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { return $ Done ctx { stack = VI32 (fromIntegral $ countTrailingZeros v) : rest } step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IPopcnt) = return $ Done ctx { stack = VI32 (fromIntegral $ popCount v) : rest } + step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IExtend8S) = + let byte = v .&. 0xFF in + let r = if byte >= 0x80 then asWord32 (fromIntegral byte - 0x100) else byte in + return $ Done ctx { stack = VI32 r : rest } + step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IExtend16S) = + let half = v .&. 0xFFFF in + let r = if half >= 0x8000 then asWord32 (fromIntegral half - 0x10000) else half in + return $ Done ctx { stack = VI32 r : rest } + step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IExtend32S) = + return $ Done ctx { stack = VI32 v : rest } step ctx@EvalCtx{ stack = (VI64 v2:VI64 v1:rest) } (IBinOp BS64 IAdd) = return $ Done ctx { stack = VI64 (v1 + v2) : rest } step ctx@EvalCtx{ stack = (VI64 v2:VI64 v1:rest) } (IBinOp BS64 ISub) = @@ -939,6 +949,18 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { return $ Done ctx { stack = VI64 (fromIntegral $ countTrailingZeros v) : rest } step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IPopcnt) = return $ Done ctx { stack = VI64 (fromIntegral $ popCount v) : rest } + step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IExtend8S) = + let byte = v .&. 0xFF in + let r = if byte >= 0x80 then asWord64 (fromIntegral byte - 0x100) else byte in + return $ Done ctx { stack = VI64 r : rest } + step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IExtend16S) = + let quart = v .&. 0xFFFF in + let r = if quart >= 0x8000 then asWord64 (fromIntegral quart - 0x10000) else quart in + return $ Done ctx { stack = VI64 r : rest } + step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IExtend32S) = + let half = v .&. 0xFFFFFFFF in + let r = if half >= 0x80000000 then asWord64 (fromIntegral half - 0x100000000) else half in + return $ Done ctx { stack = VI64 r : rest } step ctx@EvalCtx{ stack = (VF32 v:rest) } (FUnOp BS32 FAbs) = return $ Done ctx { stack = VF32 (abs v) : rest } step ctx@EvalCtx{ stack = (VF32 v:rest) } (FUnOp BS32 FNeg) = diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index bed07c3..2d94e1d 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -165,6 +165,8 @@ import Language.Wasm.Lexer ( 'i32.clz' { Lexeme _ (TKeyword "i32.clz") } 'i32.ctz' { Lexeme _ (TKeyword "i32.ctz") } 'i32.popcnt' { Lexeme _ (TKeyword "i32.popcnt") } +'i32.extend8_s' { Lexeme _ (TKeyword "i32.extend8_s") } +'i32.extend16_s' { Lexeme _ (TKeyword "i32.extend16_s") } 'i32.add' { Lexeme _ (TKeyword "i32.add") } 'i32.sub' { Lexeme _ (TKeyword "i32.sub") } 'i32.mul' { Lexeme _ (TKeyword "i32.mul") } @@ -183,6 +185,9 @@ import Language.Wasm.Lexer ( 'i64.clz' { Lexeme _ (TKeyword "i64.clz") } 'i64.ctz' { Lexeme _ (TKeyword "i64.ctz") } 'i64.popcnt' { Lexeme _ (TKeyword "i64.popcnt") } +'i64.extend8_s' { Lexeme _ (TKeyword "i64.extend8_s") } +'i64.extend16_s' { Lexeme _ (TKeyword "i64.extend16_s") } +'i64.extend32_s' { Lexeme _ (TKeyword "i64.extend32_s") } 'i64.add' { Lexeme _ (TKeyword "i64.add") } 'i64.sub' { Lexeme _ (TKeyword "i64.sub") } 'i64.mul' { Lexeme _ (TKeyword "i64.mul") } @@ -443,6 +448,8 @@ plaininstr :: { PlainInstr } | 'i32.clz' { IUnOp BS32 IClz } | 'i32.ctz' { IUnOp BS32 ICtz } | 'i32.popcnt' { IUnOp BS32 IPopcnt } + | 'i32.extend8_s' { IUnOp BS32 IExtend8S } + | 'i32.extend16_s' { IUnOp BS32 IExtend16S } | 'i32.add' { IBinOp BS32 IAdd } | 'i32.sub' { IBinOp BS32 ISub } | 'i32.mul' { IBinOp BS32 IMul } @@ -461,6 +468,9 @@ plaininstr :: { PlainInstr } | 'i64.clz' { IUnOp BS64 IClz } | 'i64.ctz' { IUnOp BS64 ICtz } | 'i64.popcnt' { IUnOp BS64 IPopcnt } + | 'i64.extend8_s' { IUnOp BS64 IExtend8S } + | 'i64.extend16_s' { IUnOp BS64 IExtend16S } + | 'i64.extend32_s' { IUnOp BS64 IExtend32S } | 'i64.add' { IBinOp BS64 IAdd } | 'i64.sub' { IBinOp BS64 ISub } | 'i64.mul' { IBinOp BS64 IMul } diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 87ee4c9..292c68a 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -57,7 +57,14 @@ import GHC.Generics (Generic) data BitSize = BS32 | BS64 deriving (Show, Eq, Generic, NFData) -data IUnOp = IClz | ICtz | IPopcnt deriving (Show, Eq, Generic, NFData) +data IUnOp = + IClz + | ICtz + | IPopcnt + | IExtend8S + | IExtend16S + | IExtend32S + deriving (Show, Eq, Generic, NFData) data IBinOp = IAdd From 029c2416fbfdb3a5517841d6987bda23aa4e8096 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 8 Mar 2021 21:58:21 -0800 Subject: [PATCH 05/28] fix align bug for I64Load32U and start mutable globals export/import proposal --- src/Language/Wasm/Binary.hs | 12 ++++++++++++ src/Language/Wasm/Script.hs | 2 -- src/Language/Wasm/Validate.hs | 17 +++-------------- tests/Test.hs | 2 +- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index 2ef6ae6..d8d30c9 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -492,6 +492,13 @@ instance Serialize (Instruction Natural) where put (FReinterpretI BS32) = putWord8 0xBE put (FReinterpretI BS64) = putWord8 0xBF + put (IUnOp BS32 IExtend8S) = putWord8 0xC0 + put (IUnOp BS32 IExtend16S) = putWord8 0xC1 + put (IUnOp BS32 IExtend32S) = error "Opcode for i32.extend32_s doesn't exist" + put (IUnOp BS64 IExtend8S) = putWord8 0xC2 + put (IUnOp BS64 IExtend16S) = putWord8 0xC3 + put (IUnOp BS64 IExtend32S) = putWord8 0xC4 + get = do op <- getWord8 case op of @@ -676,6 +683,11 @@ instance Serialize (Instruction Natural) where 0xBD -> return $ IReinterpretF BS64 0xBE -> return $ FReinterpretI BS32 0xBF -> return $ FReinterpretI BS64 + 0xC0 -> return $ IUnOp BS32 IExtend8S + 0xC1 -> return $ IUnOp BS32 IExtend16S + 0xC2 -> return $ IUnOp BS64 IExtend8S + 0xC3 -> return $ IUnOp BS64 IExtend16S + 0xC4 -> return $ IUnOp BS64 IExtend32S _ -> fail "Unknown byte value in place of instruction opcode" putExpression :: Expression -> Put diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index 02d6813..603ba08 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -175,8 +175,6 @@ runScript onAssertFail script = do getFailureString Validate.InvalidConstantExpr = ["constant expression required"] getFailureString Validate.InvalidResultArity = ["invalid result arity"] getFailureString Validate.GlobalIsImmutable = ["global is immutable"] - getFailureString Validate.ImportedGlobalIsNotConst = ["mutable globals cannot be imported"] - getFailureString Validate.ExportedGlobalIsNotConst = ["mutable globals cannot be exported"] getFailureString Validate.InvalidStartFunctionType = ["start function"] getFailureString r = [TL.concat ["not implemented ", (TL.pack $ show r)]] diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index b773e0b..55bd7c1 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -45,8 +45,6 @@ data ValidationError = | InvalidResultArity | InvalidConstantExpr | InvalidStartFunctionType - | ImportedGlobalIsNotConst - | ExportedGlobalIsNotConst | GlobalIsImmutable deriving (Show, Eq) @@ -299,7 +297,7 @@ getInstrType (I64Load32S memarg) = do checkMemoryInstr 4 memarg return $ I32 ==> I64 getInstrType (I64Load32U memarg) = do - checkMemoryInstr 8 memarg + checkMemoryInstr 4 memarg return $ I32 ==> I64 getInstrType (I32Store memarg) = do checkMemoryInstr 4 memarg @@ -592,15 +590,7 @@ exportsShouldBeValid Module { exports, imports, functions, mems, tables, globals if fromIntegral memIdx < length memImports + length mems then return () else Left (MemoryIndexOutOfRange memIdx) isExportValid (Export _ (ExportGlobal globalIdx)) = if fromIntegral globalIdx < length globalImports + length globals - then ( - if fromIntegral globalIdx >= length globalImports - then ( - case globals !! (fromIntegral globalIdx - length globalImports) of - (Global (Mut _) _) -> Left ExportedGlobalIsNotConst - _ -> return () - ) - else return () - ) + then return () else Left (GlobalIndexOutOfRange globalIdx) areExportNamesUnique :: ValidationResult @@ -626,8 +616,7 @@ importsShouldBeValid Module { imports, types } = else Left TypeIndexOutOfRange isImportValid (Import _ _ (ImportTable _)) = return () -- checked in tables section isImportValid (Import _ _ (ImportMemory _)) = return () -- checked in mems section - isImportValid (Import _ _ (ImportGlobal (Const _))) = return () - isImportValid (Import _ _ (ImportGlobal (Mut _))) = Left ImportedGlobalIsNotConst + isImportValid (Import _ _ (ImportGlobal _)) = return () typesShouldBeValid :: Validator typesShouldBeValid Module { types } = foldMap isTypeValid types diff --git a/tests/Test.hs b/tests/Test.hs index 4c22eb1..f66b65f 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["call.wast"] + -- let files = ["linking.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 0c912ca575e56d3e24322156bbb1891cd80199e2 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Tue, 9 Mar 2021 22:45:16 -0800 Subject: [PATCH 06/28] added line position for failed asserts and implemented mutable globals import/export proposal --- src/Language/Wasm/Interpreter.hs | 18 ++++---- src/Language/Wasm/Parser.y | 77 +++++++++++++++++++++----------- src/Language/Wasm/Script.hs | 73 ++++++++++++++++-------------- tests/Test.hs | 2 +- 4 files changed, 101 insertions(+), 69 deletions(-) diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 1a0dbed..1a2242a 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -19,7 +19,8 @@ module Language.Wasm.Interpreter ( emptyStore, emptyImports, makeHostModule, - makeMutGlobal + makeMutGlobal, + makeConstGlobal ) where import qualified Data.Map as Map @@ -177,6 +178,9 @@ data GlobalInstance = GIConst ValueType Value | GIMut ValueType (IORef Value) makeMutGlobal :: Value -> IO GlobalInstance makeMutGlobal val = GIMut (getValueType val) <$> newIORef val +makeConstGlobal :: Value -> GlobalInstance +makeConstGlobal val = GIConst (getValueType val) val + getValueType :: Value -> ValueType getValueType (VI32 _) = I32 getValueType (VI64 _) = I64 @@ -364,13 +368,11 @@ calcInstance (Store fs ts ms gs) imps Module {functions, types, tables, mems, gl ExternGlobal globalAddr -> return globalAddr _ -> err let globalInst = gs ! globalAddr - let vt = case globalType of - Const vt -> vt - Mut vt -> vt - let vt' = case globalInst of - GIConst vt _ -> vt - GIMut vt _ -> vt - if vt == vt' then return idx else err + let typesMatch = case (globalType, globalInst) of + (Const vt, GIConst vt' _) -> vt == vt' + (Mut vt, GIMut vt' _) -> vt == vt' + _ -> False + if typesMatch then return idx else err checkImportType imp@(Import _ _ (ImportMemory limit)) = do idx <- getImpIdx imp memAddr <- case idx of diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 2d94e1d..c9259e5 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -313,14 +313,14 @@ import Language.Wasm.Lexer ( 'register' { Lexeme _ (TKeyword "register") } 'invoke' { Lexeme _ (TKeyword "invoke") } 'get' { Lexeme _ (TKeyword "get") } -'assert_return' { Lexeme _ (TKeyword "assert_return") } -'assert_return_canonical_nan' { Lexeme _ (TKeyword "assert_return_canonical_nan") } -'assert_return_arithmetic_nan' { Lexeme _ (TKeyword "assert_return_arithmetic_nan") } -'assert_trap' { Lexeme _ (TKeyword "assert_trap") } -'assert_malformed' { Lexeme _ (TKeyword "assert_malformed") } -'assert_invalid' { Lexeme _ (TKeyword "assert_invalid") } -'assert_unlinkable' { Lexeme _ (TKeyword "assert_unlinkable") } -'assert_exhaustion' { Lexeme _ (TKeyword "assert_exhaustion") } +'assert_return' { Lexeme $$ (TKeyword "assert_return") } +'assert_return_canonical_nan' { Lexeme $$ (TKeyword "assert_return_canonical_nan") } +'assert_return_arithmetic_nan' { Lexeme $$ (TKeyword "assert_return_arithmetic_nan") } +'assert_trap' { Lexeme $$ (TKeyword "assert_trap") } +'assert_malformed' { Lexeme $$ (TKeyword "assert_malformed") } +'assert_invalid' { Lexeme $$ (TKeyword "assert_invalid") } +'assert_unlinkable' { Lexeme $$ (TKeyword "assert_unlinkable") } +'assert_exhaustion' { Lexeme $$ (TKeyword "assert_exhaustion") } 'script' { Lexeme _ (TKeyword "script") } 'input' { Lexeme _ (TKeyword "input") } 'output' { Lexeme _ (TKeyword "output") } @@ -1104,7 +1104,7 @@ command1 :: { Command } : module1 { ModuleDef $1 } | 'register' string opt(ident) ')' { Register $2 $3 } | action1 { Action $1 } - | assertion1 { Assertion $1 } + | assertion1 { let (Just (AlexPn _ line _), a) = $1 in Assertion line a } | meta1 { Meta $1 } module1 :: { ModuleDef } @@ -1117,15 +1117,15 @@ action1 :: { Action } : 'invoke' opt(ident) string list(folded_instr) ')' { Invoke $2 $3 (map (map constInstructionToValue) $4) } | 'get' opt(ident) string ')' { Get $2 $3 } -assertion1 :: { Assertion } - : 'assert_return' '(' action1 list(folded_instr) ')' { AssertReturn $3 (map (map constInstructionToValue) $4) } - | 'assert_return_canonical_nan' '(' action1 ')' { AssertReturnCanonicalNaN $3 } - | 'assert_return_arithmetic_nan' '(' action1 ')' { AssertReturnArithmeticNaN $3 } - | 'assert_trap' '(' assertion_trap string ')' { AssertTrap $3 $4 } - | 'assert_malformed' '(' module1 string ')' { AssertMalformed $3 $4 } - | 'assert_invalid' '(' module1 string ')' { AssertInvalid $3 $4 } - | 'assert_unlinkable' '(' module1 string ')' { AssertUnlinkable $3 $4 } - | 'assert_exhaustion' '(' action1 string ')' { AssertExhaustion $3 $4 } +assertion1 :: { (Maybe AlexPosn, Assertion) } + : 'assert_return' '(' action1 list(folded_instr) ')' { ($1, AssertReturn $3 (map (map constInstructionToValue) $4)) } + | 'assert_return_canonical_nan' '(' action1 ')' { ($1, AssertReturnCanonicalNaN $3) } + | 'assert_return_arithmetic_nan' '(' action1 ')' { ($1, AssertReturnArithmeticNaN $3) } + | 'assert_trap' '(' assertion_trap string ')' { ($1, AssertTrap $3 $4) } + | 'assert_malformed' '(' module1 string ')' { ($1, AssertMalformed $3 $4) } + | 'assert_invalid' '(' module1 string ')' { ($1, AssertInvalid $3 $4) } + | 'assert_unlinkable' '(' module1 string ')' { ($1, AssertUnlinkable $3 $4) } + | 'assert_exhaustion' '(' action1 string ')' { ($1, AssertExhaustion $3 $4) } assertion_trap :: { Either Action ModuleDef } : action1 { Left $1 } @@ -1454,7 +1454,7 @@ data Command = ModuleDef ModuleDef | Register TL.Text (Maybe Ident) | Action Action - | Assertion Assertion + | Assertion Int Assertion | Meta Meta deriving (Show, Eq) @@ -1518,6 +1518,7 @@ desugarize fields = do segments <- mapM (synDataToStruct mod) $ datas mod globs <- mapM (synGlobalToStruct mod) $ globals mod checkMemoryIdentsUniqueness mod + checkGlobalIdentsUniqueness mod return S.Module { S.types = map synTypeDefToStruct $ types mod, S.functions = funs, @@ -1855,7 +1856,7 @@ desugarize fields = do getMemIndexes :: Module -> Ident -> [Natural] getMemIndexes Module { imports, mems } id = let memImports = zip [0..] $ filter isMemImport imports in - let importIndexes = map fst $ filter (\((_, Import { desc = ImportMemory ident _ })) -> ident == Just id) memImports in + let importIndexes = map fst $ filter (\(_, Import { desc = ImportMemory ident _ }) -> ident == Just id) memImports in let isIdent (_, (Memory _ (Just id) _)) = True in let memIndexes = map fst $ filter isIdent $ zip [length memImports..] mems in map fromIntegral $ importIndexes ++ memIndexes @@ -1873,6 +1874,23 @@ desugarize fields = do let ctx = FunCtx mod [] [] [] in S.Global globalType <$> mapM (synInstrToStruct ctx) initializer + checkGlobalIdentsUniqueness :: Module -> Either String () + checkGlobalIdentsUniqueness m@Module { imports, globals } = do + mapM_ checkImportUniqueness $ filter isGlobalImport imports + mapM_ checkGlobalUniqueness globals + where + checkImportUniqueness Import { desc = ImportGlobal (Just id) _ } = + if length (getGlobalIndexes m id) > 1 + then Left "duplicate global" + else return () + checkImportUniqueness _ = return () + + checkGlobalUniqueness (Global _ (Just id) _ _) = + if length (getGlobalIndexes m id) > 1 + then Left "duplicate global" + else return () + checkGlobalUniqueness _ = return () + extractGlobal :: [Global] -> ModuleField -> [Global] extractGlobal globals (MFGlobal global) = global : globals extractGlobal globals _ = globals @@ -1881,14 +1899,19 @@ desugarize fields = do isGlobalImport Import { desc = ImportGlobal _ _ } = True isGlobalImport _ = False + getGlobalIndexes :: Module -> Ident -> [Natural] + getGlobalIndexes Module { imports, globals } id = + let globalImports = zip [0..] $ filter isGlobalImport imports in + let importIndexes = map fst $ filter (\(_, Import { desc = ImportGlobal ident _ }) -> ident == Just id) globalImports in + let isIdent (_, Global { ident }) = ident == Just id in + let globalIndexes = map fst $ filter isIdent $ zip [length globalImports..] globals in + map fromIntegral $ importIndexes ++ globalIndexes + getGlobalIndex :: Module -> GlobalIndex -> Maybe Natural - getGlobalIndex Module { imports, globals } (Named id) = - let globalImports = filter isGlobalImport imports in - case findIndex (\(Import { desc = ImportGlobal ident _ }) -> ident == Just id) globalImports of - Just idx -> return $ fromIntegral idx - Nothing -> - let isIdent (Global { ident }) = ident == Just id in - fromIntegral . (+ length globalImports) <$> findIndex isIdent globals + getGlobalIndex mod@Module { imports, globals } (Named id) = + case getGlobalIndexes mod id of + [idx] -> return idx + _ -> Nothing getGlobalIndex Module { imports, globals } (Index idx) = Just idx -- elem segment diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index 603ba08..c1a63ce 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -47,7 +47,7 @@ emptyState = ScriptState { runScript :: OnAssertFail -> Script -> IO () runScript onAssertFail script = do - (globI32, globF32, globF64) <- hostGlobals + (globI32, globI64, globF32, globF64) <- hostGlobals (st, inst) <- Interpreter.makeHostModule Interpreter.emptyStore [ ("print", hostPrint []), ("print_i32", hostPrint [Struct.I32]), @@ -56,6 +56,7 @@ runScript onAssertFail script = do ("print_f32", hostPrint [Struct.F32]), ("print_f64", hostPrint [Struct.F64]), ("global_i32", globI32), + ("global_i64", globI64), ("global_f32", globF32), ("global_f64", globF64), ("memory", Interpreter.HostMemory $ Struct.Limit 1 (Just 2)), @@ -65,10 +66,16 @@ runScript onAssertFail script = do where hostPrint paramTypes = Interpreter.HostFunction (Struct.FuncType paramTypes []) (\args -> return []) hostGlobals = do - globI32 <- Interpreter.makeMutGlobal $ Interpreter.VI32 666 + let globI32 = Interpreter.makeConstGlobal $ Interpreter.VI32 666 + let globI64 = Interpreter.makeConstGlobal $ Interpreter.VI64 666 globF32 <- Interpreter.makeMutGlobal $ Interpreter.VF32 666 globF64 <- Interpreter.makeMutGlobal $ Interpreter.VF64 666 - return (Interpreter.HostGlobal globI32, Interpreter.HostGlobal globF32, Interpreter.HostGlobal globF64) + return ( + Interpreter.HostGlobal globI32, + Interpreter.HostGlobal globI64, + Interpreter.HostGlobal globF32, + Interpreter.HostGlobal globF64 + ) go [] _ = return () go (c:cs) st = runCommand st c >>= go cs @@ -130,19 +137,19 @@ runScript onAssertFail script = do isValueEqual (Interpreter.VF64 v1) (Interpreter.VF64 v2) = identicalIEEE v1 v2 isValueEqual _ _ = False - isNaNReturned :: ScriptState -> Action -> Assertion -> IO () - isNaNReturned st action assert = do + isNaNReturned :: ScriptState -> String -> Action -> Assertion -> IO () + isNaNReturned st pos action assert = do result <- runAction st action case result of Just [Interpreter.VF32 v] -> if isNaN v then return () - else onAssertFail ("Expected NaN, but action returned " ++ show v) assert + else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert Just [Interpreter.VF64 v] -> if isNaN v then return () - else onAssertFail ("Expected NaN, but action returned " ++ show v) assert - _ -> onAssertFail ("Expected NaN, but action returned " ++ show result) assert + else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert + _ -> onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show result) assert buildModule :: ModuleDef -> (Maybe Ident, Struct.Module) buildModule (RawModDef ident m) = (ident, m) @@ -178,67 +185,67 @@ runScript onAssertFail script = do getFailureString Validate.InvalidStartFunctionType = ["start function"] getFailureString r = [TL.concat ["not implemented ", (TL.pack $ show r)]] - runAssert :: ScriptState -> Assertion -> IO () - runAssert st assert@(AssertReturn action expected) = do + runAssert :: ScriptState -> String -> Assertion -> IO () + runAssert st pos assert@(AssertReturn action expected) = do result <- runAction st action case result of Just result -> do if length result == length expected && (all id $ zipWith isValueEqual result (map asArg expected)) then return () - else onAssertFail ("Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert - Nothing -> onAssertFail ("Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert - runAssert st assert@(AssertReturnCanonicalNaN action) = isNaNReturned st action assert - runAssert st assert@(AssertReturnArithmeticNaN action) = isNaNReturned st action assert - runAssert st assert@(AssertInvalid moduleDef failureString) = + else onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert + Nothing -> onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert + runAssert st pos assert@(AssertReturnCanonicalNaN action) = isNaNReturned st pos action assert + runAssert st pos assert@(AssertReturnArithmeticNaN action) = isNaNReturned st pos action assert + runAssert st pos assert@(AssertInvalid moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of - Right _ -> onAssertFail "An invalid module passed validation step" assert + Right _ -> onAssertFail (pos ++ ": An invalid module passed validation step") assert Left reason -> if failureString `elem` getFailureString reason then return () else - let msg = "Module is invalid for other reason. Expected " + let msg = pos ++ ": Module is invalid for other reason. Expected " ++ show failureString ++ ", but actual is " ++ show (getFailureString reason) in onAssertFail msg assert - runAssert st assert@(AssertMalformed (TextModDef _ textRep) failureString) = + runAssert st pos assert@(AssertMalformed (TextModDef _ textRep) failureString) = case DeepSeq.force $ Lexer.scanner (TLEncoding.encodeUtf8 textRep) >>= Parser.parseModule of - Right _ -> onAssertFail ("Module parsing should fail with failure string " ++ show failureString) assert + Right _ -> onAssertFail (pos ++ ": Module parsing should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = + runAssert st pos assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = case Binary.decodeModuleLazy binaryRep of - Right _ -> onAssertFail ("Module decoding should fail with failure string " ++ show failureString) assert + Right _ -> onAssertFail (pos ++ ": Module decoding should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st assert@(AssertMalformed (RawModDef _ _) failureString) = return () - runAssert st assert@(AssertUnlinkable moduleDef failureString) = + runAssert st _ assert@(AssertMalformed (RawModDef _ _) failureString) = return () + runAssert st pos assert@(AssertUnlinkable moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do res <- Interpreter.instantiate (store st) (buildImports st) m case res of Left err -> return () - Right _ -> onAssertFail ("Module linking should fail with failure string " ++ show failureString) assert - Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason - runAssert st assert@(AssertTrap (Left action) failureString) = do + Right _ -> onAssertFail (pos ++ ": Module linking should fail with failure string " ++ show failureString) assert + Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason + runAssert st pos assert@(AssertTrap (Left action) failureString) = do result <- runAction st action if isNothing result then return () - else onAssertFail ("Expected trap, but action returned " ++ show (fromJust result)) assert - runAssert st assert@(AssertTrap (Right moduleDef) failureString) = + else onAssertFail (pos ++ ":Expected trap, but action returned " ++ show (fromJust result)) assert + runAssert st pos assert@(AssertTrap (Right moduleDef) failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do res <- Interpreter.instantiate (store st) (buildImports st) m case res of Left "Start function terminated with trap" -> return () - _ -> onAssertFail ("Module linking should fail with trap during execution of a start function") assert - Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason - runAssert st assert@(AssertExhaustion action failureString) = do + _ -> onAssertFail (pos ++ ": Module linking should fail with trap during execution of a start function") assert + Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason + runAssert st pos assert@(AssertExhaustion action failureString) = do result <- runAction st action if isNothing result then return () - else onAssertFail ("Expected exhaustion, but action returned " ++ show (fromJust result)) assert + else onAssertFail (pos ++ ": Expected exhaustion, but action returned " ++ show (fromJust result)) assert runCommand :: ScriptState -> Command -> IO ScriptState runCommand st (ModuleDef moduleDef) = @@ -246,5 +253,5 @@ runScript onAssertFail script = do addModule ident m st runCommand st (Register name i) = return $ addToRegistery name i st runCommand st (Action action) = runAction st action >> return st - runCommand st (Assertion assertion) = runAssert st assertion >> return st + runCommand st (Assertion pos assertion) = runAssert st ("Line " ++ show pos) assertion >> return st runCommand st _ = return st diff --git a/tests/Test.hs b/tests/Test.hs index f66b65f..409d653 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["linking.wast"] + -- let files = ["global.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 50c7e90772108c0c395360d4099e441d3d281e0d Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Fri, 12 Mar 2021 22:34:42 -0800 Subject: [PATCH 07/28] change instansiating to be stateful --- src/Language/Wasm/Interpreter.hs | 49 +++++++++------- src/Language/Wasm/Script.hs | 99 +++++++++++++++++++------------- tests/Test.hs | 2 +- 3 files changed, 87 insertions(+), 63 deletions(-) diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 1a2242a..1a44f12 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -53,6 +53,7 @@ import Data.Bits ( ) import Numeric.IEEE (IEEE, copySign, minNum, maxNum, identicalIEEE) import Control.Monad.Except (ExceptT, runExceptT, throwError) +import qualified Control.Monad.State as State import Control.Monad.IO.Class (liftIO) import Language.Wasm.Structure as Struct @@ -468,25 +469,27 @@ allocMems mems = Vector.fromList <$> mapM allocMem mems memory } -type Initialize = ExceptT String IO +type Initialize = ExceptT String (State.StateT Store IO) -initialize :: ModuleInstance -> Module -> Store -> Initialize Store -initialize inst Module {elems, datas, start} store = do - checkedMems <- mapM (checkData store) datas - checkedTables <- mapM (checkElem store) elems +initialize :: ModuleInstance -> Module -> Initialize () +initialize inst Module {elems, datas, start} = do + checkedMems <- mapM checkData datas + checkedTables <- mapM checkElem elems mapM_ initData checkedMems - st <- Monad.foldM initElem store checkedTables + mapM_ initElem checkedTables + st <- State.get case start of Just (StartFunction idx) -> do - let funInst = funcInstances store ! (funcaddrs inst ! fromIntegral idx) + let funInst = funcInstances st ! (funcaddrs inst ! fromIntegral idx) mainRes <- liftIO $ eval defaultBudget st funInst [] case mainRes of - Just [] -> return st + Just [] -> return () _ -> throwError "Start function terminated with trap" - Nothing -> return st + Nothing -> return () where - checkElem :: Store -> ElemSegment -> Initialize (Address, Int, [Address]) - checkElem st ElemSegment {tableIndex, offset, funcIndexes} = do + checkElem :: ElemSegment -> Initialize (Address, Int, [Address]) + checkElem ElemSegment {tableIndex, offset, funcIndexes} = do + st <- State.get VI32 val <- liftIO $ evalConstExpr inst st offset let from = fromIntegral val let funcs = map ((funcaddrs inst !) . fromIntegral) funcIndexes @@ -497,14 +500,15 @@ initialize inst Module {elems, datas, start} store = do Monad.when (last > len) $ throwError "elements segment does not fit" return (idx, from, funcs) - initElem :: Store -> (Address, Int, [Address]) -> Initialize Store - initElem st (idx, from, funcs) = do - let TableInstance lim elems = tableInstances st ! idx - let table = TableInstance lim (elems // zip [from..] (map Just funcs)) - return st { tableInstances = tableInstances st Vector.// [(idx, table)] } + initElem :: (Address, Int, [Address]) -> Initialize () + initElem (idx, from, funcs) = State.modify $ \st -> + let TableInstance lim elems = tableInstances st ! idx in + let table = TableInstance lim (elems // zip [from..] (map Just funcs)) in + st { tableInstances = tableInstances st Vector.// [(idx, table)] } - checkData :: Store -> DataSegment -> Initialize (Int, MemoryStore, LBS.ByteString) - checkData st DataSegment {memIndex, offset, chunk} = do + checkData :: DataSegment -> Initialize (Int, MemoryStore, LBS.ByteString) + checkData DataSegment {memIndex, offset, chunk} = do + st <- State.get VI32 val <- liftIO $ evalConstExpr inst st offset let from = fromIntegral val let idx = memaddrs inst ! fromIntegral memIndex @@ -519,21 +523,22 @@ initialize inst Module {elems, datas, start} store = do initData (from, mem, chunk) = mapM_ (\(i,b) -> ByteArray.writeByteArray mem i b) $ zip [from..] $ LBS.unpack chunk -instantiate :: Store -> Imports -> Valid.ValidModule -> IO (Either String (ModuleInstance, Store)) -instantiate st imps mod = runExceptT $ do +instantiate :: Store -> Imports -> Valid.ValidModule -> IO (Either String ModuleInstance, Store) +instantiate st imps mod = flip State.runStateT st $ runExceptT $ do let m = Valid.getModule mod inst <- calcInstance st imps m let functions = funcInstances st <> (allocFunctions inst $ Struct.functions m) globals <- liftIO $ (globalInstances st <>) <$> (allocAndInitGlobals inst st $ Struct.globals m) let tables = tableInstances st <> (allocTables $ Struct.tables m) mems <- liftIO $ (memInstances st <>) <$> (allocMems $ Struct.mems m) - st' <- initialize inst m $ st { + State.put $ st { funcInstances = functions, tableInstances = tables, memInstances = mems, globalInstances = globals } - return $ (inst, st') + initialize inst m + return inst type Stack = [Value] diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index c1a63ce..6c12fa6 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -8,6 +8,8 @@ import qualified Data.Map as Map import qualified Data.Vector as Vector import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.Encoding as TLEncoding +import qualified Control.Monad.State as State +import Control.Monad.IO.Class (liftIO) import Numeric.IEEE (identicalIEEE) import qualified Control.DeepSeq as DeepSeq import Data.Maybe (fromJust, isNothing) @@ -45,6 +47,8 @@ emptyState = ScriptState { moduleRegistery = Map.empty } +type AssertM = State.StateT (ScriptState, String) IO + runScript :: OnAssertFail -> Script -> IO () runScript onAssertFail script = do (globI32, globI64, globF32, globF64) <- hostGlobals @@ -103,9 +107,9 @@ runScript onAssertFail script = do addModule ident m st = case Validate.validate m of Right m -> do - res <- Interpreter.instantiate (store st) (buildImports st) m + (res, store') <- Interpreter.instantiate (store st) (buildImports st) m case res of - Right (modInst, store') -> return $ addToStore ident modInst $ st { lastModule = Just modInst, store = store' } + Right modInst -> return $ addToStore ident modInst $ st { lastModule = Just modInst, store = store' } Left reason -> error $ "Module instantiation failed due to invalid module with reason: " ++ show reason Left reason -> error $ "Module instantiation failed due to invalid module with reason: " ++ show reason @@ -137,19 +141,19 @@ runScript onAssertFail script = do isValueEqual (Interpreter.VF64 v1) (Interpreter.VF64 v2) = identicalIEEE v1 v2 isValueEqual _ _ = False - isNaNReturned :: ScriptState -> String -> Action -> Assertion -> IO () - isNaNReturned st pos action assert = do - result <- runAction st action + isNaNReturned :: Action -> Assertion -> AssertM () + isNaNReturned action assert = do + result <- runActionInAssert action case result of Just [Interpreter.VF32 v] -> if isNaN v then return () - else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert + else printFailedAssert ("Expected NaN, but action returned " ++ show v) assert Just [Interpreter.VF64 v] -> if isNaN v then return () - else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert - _ -> onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show result) assert + else printFailedAssert ("Expected NaN, but action returned " ++ show v) assert + _ -> printFailedAssert ("Expected NaN, but action returned " ++ show result) assert buildModule :: ModuleDef -> (Maybe Ident, Struct.Module) buildModule (RawModDef ident m) = (ident, m) @@ -185,67 +189,81 @@ runScript onAssertFail script = do getFailureString Validate.InvalidStartFunctionType = ["start function"] getFailureString r = [TL.concat ["not implemented ", (TL.pack $ show r)]] - runAssert :: ScriptState -> String -> Assertion -> IO () - runAssert st pos assert@(AssertReturn action expected) = do - result <- runAction st action + printFailedAssert :: String -> Assertion -> AssertM () + printFailedAssert msg assert = do + (_, pos) <- State.get + liftIO $ onAssertFail (pos ++ ": " ++ msg) assert + + runActionInAssert :: Action -> AssertM (Maybe [Interpreter.Value]) + runActionInAssert action = do + (st, _) <- State.get + liftIO $ runAction st action + + runAssert :: Assertion -> AssertM () + runAssert assert@(AssertReturn action expected) = do + (st, _) <- State.get + result <- runActionInAssert action case result of Just result -> do if length result == length expected && (all id $ zipWith isValueEqual result (map asArg expected)) then return () - else onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert - Nothing -> onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert - runAssert st pos assert@(AssertReturnCanonicalNaN action) = isNaNReturned st pos action assert - runAssert st pos assert@(AssertReturnArithmeticNaN action) = isNaNReturned st pos action assert - runAssert st pos assert@(AssertInvalid moduleDef failureString) = + else printFailedAssert ("Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert + Nothing -> printFailedAssert ("Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert + runAssert assert@(AssertReturnCanonicalNaN action) = isNaNReturned action assert + runAssert assert@(AssertReturnArithmeticNaN action) = isNaNReturned action assert + runAssert assert@(AssertInvalid moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of - Right _ -> onAssertFail (pos ++ ": An invalid module passed validation step") assert + Right _ -> printFailedAssert "An invalid module passed validation step" assert Left reason -> if failureString `elem` getFailureString reason then return () else - let msg = pos ++ ": Module is invalid for other reason. Expected " + let msg = "Module is invalid for other reason. Expected " ++ show failureString ++ ", but actual is " ++ show (getFailureString reason) - in onAssertFail msg assert - runAssert st pos assert@(AssertMalformed (TextModDef _ textRep) failureString) = + in printFailedAssert msg assert + runAssert assert@(AssertMalformed (TextModDef _ textRep) failureString) = case DeepSeq.force $ Lexer.scanner (TLEncoding.encodeUtf8 textRep) >>= Parser.parseModule of - Right _ -> onAssertFail (pos ++ ": Module parsing should fail with failure string " ++ show failureString) assert + Right _ -> printFailedAssert ("Module parsing should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st pos assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = + runAssert assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = case Binary.decodeModuleLazy binaryRep of - Right _ -> onAssertFail (pos ++ ": Module decoding should fail with failure string " ++ show failureString) assert + Right _ -> printFailedAssert ("Module decoding should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st _ assert@(AssertMalformed (RawModDef _ _) failureString) = return () - runAssert st pos assert@(AssertUnlinkable moduleDef failureString) = + runAssert assert@(AssertMalformed (RawModDef _ _) failureString) = return () + runAssert assert@(AssertUnlinkable moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do - res <- Interpreter.instantiate (store st) (buildImports st) m + st <- fst <$> State.get + (res, _) <- liftIO $ Interpreter.instantiate (store st) (buildImports st) m case res of Left err -> return () - Right _ -> onAssertFail (pos ++ ": Module linking should fail with failure string " ++ show failureString) assert - Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason - runAssert st pos assert@(AssertTrap (Left action) failureString) = do - result <- runAction st action + Right _ -> printFailedAssert ("Module linking should fail with failure string " ++ show failureString) assert + Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason + runAssert assert@(AssertTrap (Left action) failureString) = do + result <- runActionInAssert action if isNothing result then return () - else onAssertFail (pos ++ ":Expected trap, but action returned " ++ show (fromJust result)) assert - runAssert st pos assert@(AssertTrap (Right moduleDef) failureString) = + else printFailedAssert ("Expected trap, but action returned " ++ show (fromJust result)) assert + runAssert assert@(AssertTrap (Right moduleDef) failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do - res <- Interpreter.instantiate (store st) (buildImports st) m + st <- fst <$> State.get + (res, store') <- liftIO $ Interpreter.instantiate (store st) (buildImports st) m case res of - Left "Start function terminated with trap" -> return () - _ -> onAssertFail (pos ++ ": Module linking should fail with trap during execution of a start function") assert - Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason - runAssert st pos assert@(AssertExhaustion action failureString) = do - result <- runAction st action + Left "Start function terminated with trap" -> + State.modify $ \(st, pos) -> (st { store = store' }, pos) + _ -> printFailedAssert ("Module linking should fail with trap during execution of a start function") assert + Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason + runAssert assert@(AssertExhaustion action failureString) = do + result <- runActionInAssert action if isNothing result then return () - else onAssertFail (pos ++ ": Expected exhaustion, but action returned " ++ show (fromJust result)) assert + else printFailedAssert ("Expected exhaustion, but action returned " ++ show (fromJust result)) assert runCommand :: ScriptState -> Command -> IO ScriptState runCommand st (ModuleDef moduleDef) = @@ -253,5 +271,6 @@ runScript onAssertFail script = do addModule ident m st runCommand st (Register name i) = return $ addToRegistery name i st runCommand st (Action action) = runAction st action >> return st - runCommand st (Assertion pos assertion) = runAssert st ("Line " ++ show pos) assertion >> return st + runCommand st (Assertion pos assertion) = do + fst <$> flip State.execStateT (st, ("Line " ++ show pos)) (runAssert assertion) runCommand st _ = return st diff --git a/tests/Test.hs b/tests/Test.hs index 409d653..f66b65f 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["global.wast"] + -- let files = ["linking.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From d36c6fddbc73d5cb2e3196268beab3060d097e2a Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Fri, 12 Mar 2021 22:56:23 -0800 Subject: [PATCH 08/28] report multiple start sections in text representation as parsing error --- src/Language/Wasm/Parser.y | 10 ++++++++++ tests/Test.hs | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index c9259e5..dadfef0 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -1501,6 +1501,7 @@ constInstructionToValue _ = error "Only const instructions supported as argument desugarize :: [ModuleField] -> Either String S.Module desugarize fields = do checkImportsOrder fields + checkStartCount fields let mod = Module { types = reverse $ foldl' extractTypeDef (reverse $ explicitTypeDefs fields) fields, functions = extract extractFunction fields, @@ -1562,6 +1563,15 @@ desugarize fields = do checkDef _ (MFMem _) = return True checkDef _ (MFTable _) = return True checkDef nonImportOccured _ = return nonImportOccured + + checkStartCount :: [ModuleField] -> Either String () + checkStartCount fields = foldM checkDef False fields >> return () + where + checkDef startOccured (MFStart _) = + if startOccured + then Left "Multiple start sections" + else Right True + checkDef startOccured _ = return startOccured extractTypeDef :: [TypeDef] -> ModuleField -> [TypeDef] extractTypeDef defs (MFType _) = defs -- should be extracted before implicit defs diff --git a/tests/Test.hs b/tests/Test.hs index f66b65f..ed398db 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["linking.wast"] + -- let files = ["start.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 128164387411999f8718b57d57d2394f4b340373 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 15 Mar 2021 22:59:10 -0700 Subject: [PATCH 09/28] start multivalue proposal implementation for block instruction --- src/Language/Wasm/Binary.hs | 29 +++++++++++++++++--- src/Language/Wasm/Builder.hs | 12 ++++----- src/Language/Wasm/Interpreter.hs | 6 ++++- src/Language/Wasm/Parser.y | 46 +++++++++++++++++++------------- src/Language/Wasm/Structure.hs | 8 +++++- src/Language/Wasm/Validate.hs | 25 +++++++++++++---- tests/Test.hs | 2 +- 7 files changed, 92 insertions(+), 36 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index d8d30c9..019fa39 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -167,6 +167,29 @@ getResultType = do 0x7C -> return [F64] _ -> fail "unexpected byte in result type position" +putBlockType :: BlockType -> Put +putBlockType (Inline Nothing) = putWord8 0x40 +putBlockType (Inline (Just valType)) = put valType +putBlockType (TypeIndex idx) = putSLEB128 idx + +getInlineBlockType :: Get (Maybe (Maybe ValueType)) +getInlineBlockType = do + op <- getWord8 + case op of + 0x40 -> return $ Just Nothing + 0x7F -> return $ Just (Just I32) + 0x7E -> return $ Just (Just I64) + 0x7D -> return $ Just (Just F32) + 0x7C -> return $ Just (Just F64) + _ -> return Nothing + +getBlockType :: Get BlockType +getBlockType = do + inlineType <- lookAheadM getInlineBlockType + case inlineType of + Just inline -> return $ Inline inline + Nothing -> TypeIndex <$> getSLEB128 33 + data SectionType = CustomSection | TypeSection @@ -304,9 +327,9 @@ instance Serialize MemArg where instance Serialize (Instruction Natural) where put Unreachable = putWord8 0x00 put Nop = putWord8 0x01 - put (Block result body) = do + put (Block blockType body) = do putWord8 0x02 - putResultType result + putBlockType blockType putExpression body put (Loop result body) = do putWord8 0x03 @@ -504,7 +527,7 @@ instance Serialize (Instruction Natural) where case op of 0x00 -> return Unreachable 0x01 -> return Nop - 0x02 -> Block <$> getResultType <*> getExpression + 0x02 -> Block <$> getBlockType <*> getExpression 0x03 -> Loop <$> getResultType <*> getExpression 0x04 -> do resultType <- getResultType diff --git a/src/Language/Wasm/Builder.hs b/src/Language/Wasm/Builder.hs index 936ca64..b5a604c 100644 --- a/src/Language/Wasm/Builder.hs +++ b/src/Language/Wasm/Builder.hs @@ -41,7 +41,7 @@ module Language.Wasm.Builder ( memorySize, growMemory, nop, Language.Wasm.Builder.drop, select, call, callIndirect, finish, br, brIf, brTable, - if', loop, block, when, for, while, + if', loop, {-block,-} when, for, while, trap, unreachable, appendExpr, after, Producer, OutType, produce, Consumer, (.=) @@ -727,11 +727,11 @@ loop res body = do appendExpr [Loop (asResultValue res) (genExpr deep $ body)] return returnableValue -block :: (Returnable res) => res -> GenFun res -> GenFun res -block res body = do - deep <- (+1) <$> ask - appendExpr [Block (asResultValue res) (genExpr deep $ body)] - return returnableValue +-- block :: (Returnable res) => res -> GenFun res -> GenFun res +-- block res body = do +-- deep <- (+1) <$> ask +-- appendExpr [Block (asResultValue res) (genExpr deep $ body)] +-- return returnableValue trap :: Proxy t -> GenFun (Proxy t) trap t = do diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 1a44f12..c237aab 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -635,7 +635,11 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { step :: EvalCtx -> Instruction Natural -> IO EvalResult step _ Unreachable = return Trap step ctx Nop = return $ Done ctx - step ctx (Block resType expr) = do + step ctx (Block blockType expr) = do + let resType = case blockType of + Inline Nothing -> [] + Inline (Just valType) -> [valType] + TypeIndex typeIdx -> results $ funcTypes moduleInstance ! fromIntegral typeIdx res <- go ctx { labels = Label resType : labels ctx } expr case res of Break 0 r EvalCtx{ locals = ls } -> return $ Done ctx { locals = ls, stack = r ++ stack ctx } diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index dadfef0..3a9f717 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -576,7 +576,7 @@ plaininstr :: { PlainInstr } typeuse :: { TypeUse } : '(' typeuse1 { $2 } - | {- empty -} { AnonimousTypeUse $ FuncType [] [] } + | {- empty -} { emptyTypeUse } typeuse1 :: { TypeUse } : 'type' index ')' typedtypeuse { IndexedTypeUse $2 $4 } @@ -644,28 +644,28 @@ raw_block :: { Maybe Ident -> Either String Instruction } : 'end' opt(ident) { \ident -> if ident == $2 || isNothing $2 - then Right $ BlockInstr ident [] [] + then Right $ BlockInstr ident emptyTypeUse [] else Left "Block labels have to match" } | raw_instr list(instruction) 'end' opt(ident) { \ident -> if ident == $4 || isNothing $4 - then Right $ BlockInstr ident [] ($1 ++ concat $2) + then Right $ BlockInstr ident emptyTypeUse ($1 ++ concat $2) else Left "Block labels have to match" } | '(' raw_block1 { $2 } raw_block1 :: { Maybe Ident -> Either String Instruction } - : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { + : typeuse1 list(instruction) 'end' opt(ident) { \ident -> - if ident == $6 || isNothing $6 - then Right $ BlockInstr ident $2 (concat $4) + if ident == $4 || isNothing $4 + then Right $ BlockInstr ident $1 (concat $2) else Left "Block labels have to match" } | folded_instr1 list(instruction) 'end' opt(ident) { \ident -> if ident == $4 || isNothing $4 - then Right $ BlockInstr ident [] ($1 ++ concat $2) + then Right $ BlockInstr ident emptyTypeUse ($1 ++ concat $2) else Left "Block labels have to match" } @@ -737,7 +737,7 @@ raw_else :: { ([Instruction], Maybe Ident) } raw_call_indirect :: { [Instruction] } : '(' raw_call_indirect_typeuse { (PlainInstr $ CallIndirect $ fst $2) : snd $2 } - | {- empty -} { [PlainInstr $ CallIndirect $ AnonimousTypeUse $ FuncType [] []] } + | {- empty -} { [PlainInstr $ CallIndirect emptyTypeUse] } raw_call_indirect_typeuse :: { (TypeUse, [Instruction]) } : 'type' index ')' raw_call_indirect_functype { @@ -780,13 +780,13 @@ folded_instr1 :: { [Instruction] } | 'if' opt(ident) '(' folded_if_result { $4 $2 } folded_block :: { Maybe Ident -> Instruction } - : ')' { \ident -> BlockInstr ident [] [] } + : ')' { \ident -> BlockInstr ident emptyTypeUse [] } | '(' folded_block1 { $2 } - | raw_instr list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } + | raw_instr list(instruction) ')' { \ident -> BlockInstr ident emptyTypeUse ($1 ++ concat $2) } folded_block1 :: { Maybe Ident -> Instruction } - : 'result' list(valtype) ')' list(instruction) ')' { \ident -> BlockInstr ident $2 (concat $4) } - | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } + : typeuse1 list(instruction) ')' { \ident -> BlockInstr ident $1 (concat $2) } + | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident emptyTypeUse ($1 ++ concat $2) } folded_loop :: { Maybe Ident -> Instruction } : ')' { \ident -> LoopInstr ident [] [] } @@ -821,7 +821,7 @@ folded_else :: { [Instruction] } | '(' 'else' list(instruction) ')' ')' { concat $3 } folded_call_indirect :: { [Instruction] } - : ')' { [PlainInstr $ CallIndirect $ AnonimousTypeUse $ FuncType [] []] } + : ')' { [PlainInstr $ CallIndirect emptyTypeUse] } | '(' folded_call_indirect_typeuse { snd $2 ++ [PlainInstr $ CallIndirect $ fst $2] } folded_call_indirect_typeuse :: { (TypeUse, [Instruction]) } @@ -1308,11 +1308,13 @@ data TypeUse = | AnonimousTypeUse FuncType deriving (Show, Eq, Generic, NFData) +emptyTypeUse = AnonimousTypeUse emptyFuncType + data Instruction = PlainInstr PlainInstr | BlockInstr { label :: Maybe Ident, - resultType :: [ValueType], + blockType :: TypeUse, body :: [Instruction] } | LoopInstr { @@ -1593,8 +1595,8 @@ desugarize fields = do extractTypeDefFromInstruction :: [TypeDef] -> Instruction -> [TypeDef] extractTypeDefFromInstruction defs (PlainInstr (CallIndirect typeUse)) = matchTypeUse defs typeUse - extractTypeDefFromInstruction defs (BlockInstr { body }) = - extractTypeDefFromInstructions defs body + extractTypeDefFromInstruction defs (BlockInstr { body, blockType }) = + extractTypeDefFromInstructions (matchTypeUse defs blockType) body extractTypeDefFromInstruction defs (LoopInstr { body }) = extractTypeDefFromInstructions defs body extractTypeDefFromInstruction defs (IfInstr { trueBranch, falseBranch }) = @@ -1742,9 +1744,15 @@ desugarize fields = do synInstrToStruct _ (PlainInstr F64PromoteF32) = return $ S.F64PromoteF32 synInstrToStruct _ (PlainInstr (IReinterpretF sz)) = return $ S.IReinterpretF sz synInstrToStruct _ (PlainInstr (FReinterpretI sz)) = return $ S.FReinterpretI sz - synInstrToStruct ctx BlockInstr {label, resultType, body} = - let ctx' = ctx { ctxLabels = label : ctxLabels ctx } in - S.Block resultType <$> mapM (synInstrToStruct ctx') body + synInstrToStruct ctx@FunCtx { ctxMod = Module { types } } BlockInstr {label, blockType, body} = do + let ctx' = ctx { ctxLabels = label : ctxLabels ctx } + bt <- case blockType of + AnonimousTypeUse (FuncType [] []) -> return $ S.Inline Nothing + AnonimousTypeUse (FuncType [] [vt]) -> return $ S.Inline (Just vt) + typed -> case getTypeIndex types typed of + Just idx -> return $ S.TypeIndex idx + Nothing -> Left "unknown type" + S.Block bt <$> mapM (synInstrToStruct ctx') body synInstrToStruct ctx LoopInstr {label, resultType, body} = let ctx' = ctx { ctxLabels = label : ctxLabels ctx } in S.Loop resultType <$> mapM (synInstrToStruct ctx') body diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 292c68a..72d5dab 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -30,6 +30,7 @@ module Language.Wasm.Structure ( GlobalType(..), FuncType(..), ValueType(..), + BlockType(..), ParamsType, ResultType, LocalsType, @@ -115,11 +116,16 @@ type LocalsType = [ValueType] data FuncType = FuncType { params :: ParamsType, results :: ResultType } deriving (Show, Eq, Generic, NFData) +data BlockType = + Inline (Maybe ValueType) + | TypeIndex TypeIndex + deriving (Show, Eq, Generic, NFData) + data Instruction index = -- Control instructions Unreachable | Nop - | Block { resultType :: ResultType, body :: Expression } + | Block { blockType :: BlockType, body :: Expression } | Loop { resultType :: ResultType, body :: Expression } | If { resultType :: ResultType, true :: Expression, false :: Expression } | Br index diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index 55bd7c1..01e43f4 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -183,15 +183,30 @@ checkMemoryInstr size memarg = do Ctx { mems } <- ask if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return () +getBlockType :: BlockType -> Checker Arrow +getBlockType (Inline Nothing) = return $ empty ==> empty +getBlockType (Inline (Just valType)) = return $ empty ==> valType +getBlockType (TypeIndex typeIdx) = do + Ctx { types } <- ask + maybeToEither TypeIndexOutOfRange $ asArrow <$> types !? typeIdx + +getResultType :: BlockType -> Checker [ValueType] +getResultType (Inline Nothing) = return [] +getResultType (Inline (Just valType)) = return [valType] +getResultType (TypeIndex typeIdx) = do + Ctx { types } <- ask + maybeToEither TypeIndexOutOfRange $ results <$> types !? typeIdx + getInstrType :: Instruction Natural -> Checker Arrow getInstrType Unreachable = return $ Any ==> Any getInstrType Nop = return $ empty ==> empty -getInstrType Block { resultType, body } = do - let blockType = empty ==> resultType +getInstrType Block { blockType, body } = do + bt <- getBlockType blockType + resultType <- getResultType blockType t <- withLabel resultType $ getExpressionType body - if isArrowMatch t blockType - then return $ empty ==> resultType - else throwError $ TypeMismatch t blockType + if isArrowMatch t bt + then return bt + else throwError $ TypeMismatch t bt getInstrType Loop { resultType, body } = do let blockType = empty ==> resultType t <- withLabel [] $ getExpressionType body diff --git a/tests/Test.hs b/tests/Test.hs index ed398db..729fbee 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["start.wast"] + let files = ["block.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 21f00468982b319b269c96770927e5ab90571656 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Tue, 2 Mar 2021 21:46:52 -0800 Subject: [PATCH 10/28] replace hardcoded tests with submodule to the official testsuit --- .gitmodules | 3 + src/Language/Wasm/Interpreter.hs | 1 - src/Language/Wasm/Lexer.x | 1 - stack.yaml.lock | 12 + tests/Test.hs | 11 +- tests/samples/address.wast | 103 - tests/samples/align.wast | 33 - tests/samples/binary.wast | 327 --- tests/samples/block.wast | 299 --- tests/samples/br.wast | 447 ---- tests/samples/br_if.wast | 321 --- tests/samples/br_table.wast | 1515 ------------ tests/samples/break-drop.wast | 9 - tests/samples/call.wast | 242 -- tests/samples/call_indirect.wast | 536 ----- tests/samples/comments.wast | Bin 701 -> 0 bytes tests/samples/const.wast | 137 -- tests/samples/conversions.wast | 461 ---- tests/samples/custom.wast | 120 - tests/samples/data.wast | 335 --- tests/samples/elem.wast | 381 --- tests/samples/endianess.wast | 131 - tests/samples/endianness.wast | 217 -- tests/samples/exports.wast | 198 -- tests/samples/f32.wast | 2518 ------------------- tests/samples/f32_bitwise.wast | 369 --- tests/samples/f32_cmp.wast | 2412 ------------------- tests/samples/f64.wast | 2518 ------------------- tests/samples/f64_bitwise.wast | 369 --- tests/samples/f64_cmp.wast | 2412 ------------------- tests/samples/fac.wast | 89 - tests/samples/fact.wast | 117 - tests/samples/float_exprs.wast | 2570 -------------------- tests/samples/float_literals.wast | 499 ---- tests/samples/float_memory.wast | 157 -- tests/samples/float_misc.wast | 678 ------ tests/samples/forward.wast | 20 - tests/samples/func.wast | 661 ----- tests/samples/func_ptrs.wast | 106 - tests/samples/get_local.wast | 148 -- tests/samples/globals.wast | 180 -- tests/samples/i32.wast | 421 ---- tests/samples/i64.wast | 421 ---- tests/samples/if.wast | 449 ---- tests/samples/imports.wast | 591 ----- tests/samples/inline-module.wast | 1 - tests/samples/int_exprs.wast | 350 --- tests/samples/int_literals.wast | 151 -- tests/samples/labels.wast | 321 --- tests/samples/left-to-right.wast | 233 -- tests/samples/linking.wast | 321 --- tests/samples/loop.wast | 309 --- tests/samples/memory.wast | 449 ---- tests/samples/memory_redundancy.wast | 65 - tests/samples/memory_trap.wast | 270 --- tests/samples/names.wast | 1087 --------- tests/samples/nop.wast | 264 -- tests/samples/resizing.wast | 60 - tests/samples/return.wast | 295 --- tests/samples/select.wast | 67 - tests/samples/set_local.wast | 205 -- tests/samples/skip-stack-guard-page.wast | 2284 ------------------ tests/samples/stack.wast | 220 -- tests/samples/start.wast | 100 - tests/samples/store_retval.wast | 55 - tests/samples/switch.wast | 150 -- tests/samples/tee_local.wast | 236 -- tests/samples/token.wast | 10 - tests/samples/traps.wast | 91 - tests/samples/type.wast | 59 - tests/samples/typecheck.wast | 425 ---- tests/samples/unreachable.wast | 290 --- tests/samples/unreached-invalid.wast | 709 ------ tests/samples/unwind.wast | 203 -- tests/samples/utf8-custom-section-id.wast | 1792 -------------- tests/samples/utf8-import-field.wast | 2672 --------------------- tests/samples/utf8-import-module.wast | 2672 --------------------- tests/samples/utf8-invalid-encoding.wast | 176 -- tests/spec | 1 + 79 files changed, 24 insertions(+), 40114 deletions(-) create mode 100644 .gitmodules create mode 100644 stack.yaml.lock delete mode 100644 tests/samples/address.wast delete mode 100644 tests/samples/align.wast delete mode 100644 tests/samples/binary.wast delete mode 100644 tests/samples/block.wast delete mode 100644 tests/samples/br.wast delete mode 100644 tests/samples/br_if.wast delete mode 100644 tests/samples/br_table.wast delete mode 100644 tests/samples/break-drop.wast delete mode 100644 tests/samples/call.wast delete mode 100644 tests/samples/call_indirect.wast delete mode 100644 tests/samples/comments.wast delete mode 100644 tests/samples/const.wast delete mode 100644 tests/samples/conversions.wast delete mode 100644 tests/samples/custom.wast delete mode 100644 tests/samples/data.wast delete mode 100644 tests/samples/elem.wast delete mode 100644 tests/samples/endianess.wast delete mode 100644 tests/samples/endianness.wast delete mode 100644 tests/samples/exports.wast delete mode 100644 tests/samples/f32.wast delete mode 100644 tests/samples/f32_bitwise.wast delete mode 100644 tests/samples/f32_cmp.wast delete mode 100644 tests/samples/f64.wast delete mode 100644 tests/samples/f64_bitwise.wast delete mode 100644 tests/samples/f64_cmp.wast delete mode 100644 tests/samples/fac.wast delete mode 100644 tests/samples/fact.wast delete mode 100644 tests/samples/float_exprs.wast delete mode 100644 tests/samples/float_literals.wast delete mode 100644 tests/samples/float_memory.wast delete mode 100644 tests/samples/float_misc.wast delete mode 100644 tests/samples/forward.wast delete mode 100644 tests/samples/func.wast delete mode 100644 tests/samples/func_ptrs.wast delete mode 100644 tests/samples/get_local.wast delete mode 100644 tests/samples/globals.wast delete mode 100644 tests/samples/i32.wast delete mode 100644 tests/samples/i64.wast delete mode 100644 tests/samples/if.wast delete mode 100644 tests/samples/imports.wast delete mode 100644 tests/samples/inline-module.wast delete mode 100644 tests/samples/int_exprs.wast delete mode 100644 tests/samples/int_literals.wast delete mode 100644 tests/samples/labels.wast delete mode 100644 tests/samples/left-to-right.wast delete mode 100644 tests/samples/linking.wast delete mode 100644 tests/samples/loop.wast delete mode 100644 tests/samples/memory.wast delete mode 100644 tests/samples/memory_redundancy.wast delete mode 100644 tests/samples/memory_trap.wast delete mode 100644 tests/samples/names.wast delete mode 100644 tests/samples/nop.wast delete mode 100644 tests/samples/resizing.wast delete mode 100644 tests/samples/return.wast delete mode 100644 tests/samples/select.wast delete mode 100644 tests/samples/set_local.wast delete mode 100644 tests/samples/skip-stack-guard-page.wast delete mode 100644 tests/samples/stack.wast delete mode 100644 tests/samples/start.wast delete mode 100644 tests/samples/store_retval.wast delete mode 100644 tests/samples/switch.wast delete mode 100644 tests/samples/tee_local.wast delete mode 100644 tests/samples/token.wast delete mode 100644 tests/samples/traps.wast delete mode 100644 tests/samples/type.wast delete mode 100644 tests/samples/typecheck.wast delete mode 100644 tests/samples/unreachable.wast delete mode 100644 tests/samples/unreached-invalid.wast delete mode 100644 tests/samples/unwind.wast delete mode 100644 tests/samples/utf8-custom-section-id.wast delete mode 100644 tests/samples/utf8-import-field.wast delete mode 100644 tests/samples/utf8-import-module.wast delete mode 100644 tests/samples/utf8-invalid-encoding.wast create mode 160000 tests/spec diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..61b93e2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "tests/spec"] + path = tests/spec + url = https://github.com/WebAssembly/testsuite diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 7af2284..c5839af 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -37,7 +37,6 @@ import Data.Word (Word8, Word16, Word32, Word64) import Data.Int (Int32, Int64) import Numeric.Natural (Natural) import qualified Control.Monad as Monad -import Data.Monoid ((<>)) import Data.Bits ( Bits, (.|.), diff --git a/src/Language/Wasm/Lexer.x b/src/Language/Wasm/Lexer.x index bff6056..c697641 100644 --- a/src/Language/Wasm/Lexer.x +++ b/src/Language/Wasm/Lexer.x @@ -13,7 +13,6 @@ module Language.Wasm.Lexer ( import qualified Data.ByteString.Lazy as LBS import qualified Data.Char as Char import qualified Data.ByteString.Lazy.UTF8 as LBSUtf8 -import Control.Applicative ((<$>)) import Control.Monad (when) import Numeric.IEEE (infinity, nan) import Language.Wasm.FloatUtils (makeNaN, doubleToFloat) diff --git a/stack.yaml.lock b/stack.yaml.lock new file mode 100644 index 0000000..1890a3b --- /dev/null +++ b/stack.yaml.lock @@ -0,0 +1,12 @@ +# This file was autogenerated by Stack. +# You should not edit this file by hand. +# For more information, please see the documentation at: +# https://docs.haskellstack.org/en/stable/lock_files + +packages: [] +snapshots: +- completed: + size: 531707 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/5.yaml + sha256: 9751e25e0af5713a53ddcfcc79564b082c71b1b357fadef0d85672a5b5ba3703 + original: lts-16.5 diff --git a/tests/Test.hs b/tests/Test.hs index ccdc349..bfa8e19 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -12,12 +12,17 @@ import qualified Data.ByteString.Lazy as LBS import qualified Language.Wasm as Wasm import qualified Language.Wasm.Script as Script +import qualified Data.List as List main :: IO () main = do - files <- Directory.listDirectory "tests/samples" + files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" scriptTestCases <- (`mapM` files) $ \file -> do - Right script <- Wasm.parseScript <$> LBS.readFile ("tests/samples/" ++ file) + test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do - Script.runScript (\msg assert -> assertFailure ("Failed assert: " ++ msg ++ ". Assert " ++ show assert)) script + case Wasm.parseScript test of + Right script -> + Script.runScript (\msg assert -> assertFailure ("Failed assert: " ++ msg ++ ". Assert " ++ show assert)) script + Left error -> + assertFailure $ "Failed to parse with error: " ++ show error defaultMain $ testGroup "Wasm Core Test Suit" scriptTestCases diff --git a/tests/samples/address.wast b/tests/samples/address.wast deleted file mode 100644 index ee2a6bb..0000000 --- a/tests/samples/address.wast +++ /dev/null @@ -1,103 +0,0 @@ -(module - (memory 1) - (data (i32.const 0) "abcdefghijklmnopqrstuvwxyz") - - (func (export "good1") (param $i i32) (result i32) - (i32.load8_u offset=0 (get_local $i)) ;; 97 'a' - ) - (func (export "good2") (param $i i32) (result i32) - (i32.load8_u offset=1 (get_local $i)) ;; 98 'b' - ) - (func (export "good3") (param $i i32) (result i32) - (i32.load8_u offset=2 (get_local $i)) ;; 99 'c' - ) - (func (export "good4") (param $i i32) (result i32) - (i32.load8_u offset=25 (get_local $i)) ;; 122 'z' - ) - - (func (export "good5") (param $i i32) (result i32) - (i32.load16_u offset=0 (get_local $i)) ;; 25185 'ab' - ) - (func (export "good6") (param $i i32) (result i32) - (i32.load16_u align=1 (get_local $i)) ;; 25185 'ab' - ) - (func (export "good7") (param $i i32) (result i32) - (i32.load16_u offset=1 align=1 (get_local $i)) ;; 25442 'bc' - ) - (func (export "good8") (param $i i32) (result i32) - (i32.load16_u offset=2 (get_local $i)) ;; 25699 'cd' - ) - (func (export "good9") (param $i i32) (result i32) - (i32.load16_u offset=25 align=1 (get_local $i)) ;; 122 'z\0' - ) - - (func (export "good10") (param $i i32) (result i32) - (i32.load offset=0 (get_local $i)) ;; 1684234849 'abcd' - ) - (func (export "good11") (param $i i32) (result i32) - (i32.load offset=1 align=1 (get_local $i)) ;; 1701077858 'bcde' - ) - (func (export "good12") (param $i i32) (result i32) - (i32.load offset=2 align=2 (get_local $i)) ;; 1717920867 'cdef' - ) - (func (export "good13") (param $i i32) (result i32) - (i32.load offset=25 align=1 (get_local $i)) ;; 122 'z\0\0\0' - ) - - (func (export "bad") (param $i i32) - (drop (i32.load offset=4294967295 (get_local $i))) - ) -) - -(assert_return (invoke "good1" (i32.const 0)) (i32.const 97)) -(assert_return (invoke "good2" (i32.const 0)) (i32.const 98)) -(assert_return (invoke "good3" (i32.const 0)) (i32.const 99)) -(assert_return (invoke "good4" (i32.const 0)) (i32.const 122)) -(assert_return (invoke "good5" (i32.const 0)) (i32.const 25185)) -(assert_return (invoke "good6" (i32.const 0)) (i32.const 25185)) -(assert_return (invoke "good7" (i32.const 0)) (i32.const 25442)) -(assert_return (invoke "good8" (i32.const 0)) (i32.const 25699)) -(assert_return (invoke "good9" (i32.const 0)) (i32.const 122)) -(assert_return (invoke "good10" (i32.const 0)) (i32.const 1684234849)) -(assert_return (invoke "good11" (i32.const 0)) (i32.const 1701077858)) -(assert_return (invoke "good12" (i32.const 0)) (i32.const 1717920867)) -(assert_return (invoke "good13" (i32.const 0)) (i32.const 122)) - -(assert_return (invoke "good1" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good2" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good3" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good4" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good5" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good6" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good7" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good8" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good9" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good10" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good11" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good12" (i32.const 65507)) (i32.const 0)) -(assert_return (invoke "good13" (i32.const 65507)) (i32.const 0)) - -(assert_return (invoke "good1" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good2" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good3" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good4" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good5" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good6" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good7" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good8" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good9" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good10" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good11" (i32.const 65508)) (i32.const 0)) -(assert_return (invoke "good12" (i32.const 65508)) (i32.const 0)) -(assert_trap (invoke "good13" (i32.const 65508)) "out of bounds memory access") - -(assert_trap (invoke "bad" (i32.const 0)) "out of bounds memory access") -(assert_trap (invoke "bad" (i32.const 1)) "out of bounds memory access") - -(assert_malformed - (module quote - "(memory 1)" - "(func (drop (i32.load offset=4294967296 (i32.const 0))))" - ) - "i32 constant" -) diff --git a/tests/samples/align.wast b/tests/samples/align.wast deleted file mode 100644 index 133b501..0000000 --- a/tests/samples/align.wast +++ /dev/null @@ -1,33 +0,0 @@ -(assert_malformed - (module quote - "(module (memory 0) (func (drop (i64.load align=0 (i32.const 0)))))" - ) - "alignment" -) -(assert_malformed - (module quote - "(module (memory 0) (func (drop (i64.load align=7 (i32.const 0)))))" - ) - "alignment" -) -(assert_invalid - (module (memory 0) (func (drop (i64.load align=16 (i32.const 0))))) - "alignment" -) - -(assert_malformed - (module quote - "(module (memory 0) (func (i64.store align=0 (i32.const 0) (i64.const 0))))" - ) - "alignment" -) -(assert_malformed - (module quote - "(module (memory 0) (func (i64.store align=5 (i32.const 0) (i64.const 0))))" - ) - "alignment" -) -(assert_invalid - (module (memory 0) (func (i64.store align=16 (i32.const 0) (i64.const 0)))) - "alignment" -) diff --git a/tests/samples/binary.wast b/tests/samples/binary.wast deleted file mode 100644 index 74692eb..0000000 --- a/tests/samples/binary.wast +++ /dev/null @@ -1,327 +0,0 @@ -(module binary "\00asm\01\00\00\00") -(module binary "\00asm" "\01\00\00\00") -(module $M1 binary "\00asm\01\00\00\00") -(module $M2 binary "\00asm" "\01\00\00\00") - -(assert_malformed (module binary "") "unexpected end") -(assert_malformed (module binary "\01") "unexpected end") -(assert_malformed (module binary "\00as") "unexpected end") -(assert_malformed (module binary "asm\00") "magic header not detected") -(assert_malformed (module binary "msa\00") "magic header not detected") -(assert_malformed (module binary "msa\00\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "msa\00\00\00\00\01") "magic header not detected") -(assert_malformed (module binary "asm\01\00\00\00\00") "magic header not detected") -(assert_malformed (module binary "wasm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\7fasm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\80asm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\82asm\01\00\00\00") "magic header not detected") -(assert_malformed (module binary "\ffasm\01\00\00\00") "magic header not detected") - -;; 8-byte endian-reversed. -(assert_malformed (module binary "\00\00\00\01msa\00") "magic header not detected") - -;; Middle-endian byte orderings. -(assert_malformed (module binary "a\00ms\00\01\00\00") "magic header not detected") -(assert_malformed (module binary "sm\00a\00\00\01\00") "magic header not detected") - -;; Upper-cased. -(assert_malformed (module binary "\00ASM\01\00\00\00") "magic header not detected") - -;; EBCDIC-encoded magic. -(assert_malformed (module binary "\00\81\a2\94\01\00\00\00") "magic header not detected") - -;; Leading UTF-8 BOM. -(assert_malformed (module binary "\ef\bb\bf\00asm\01\00\00\00") "magic header not detected") - -(assert_malformed (module binary "\00asm") "unexpected end") -(assert_malformed (module binary "\00asm\01") "unexpected end") -(assert_malformed (module binary "\00asm\01\00\00") "unexpected end") -(assert_malformed (module binary "\00asm\00\00\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\0d\00\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\0e\00\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\00\01\00\00") "unknown binary version") -(assert_malformed (module binary "\00asm\00\00\01\00") "unknown binary version") -(assert_malformed (module binary "\00asm\00\00\00\01") "unknown binary version") - -;; Unsigned LEB128 can have non-minimal length -(module binary - "\00asm" "\01\00\00\00" - "\05\04\01" ;; Memory section with 1 entry - "\00\82\00" ;; no max, minimum 2 -) -(module binary - "\00asm" "\01\00\00\00" - "\05\07\01" ;; Memory section with 1 entry - "\00\82\80\80\80\00" ;; no max, minimum 2 -) - -;; Signed LEB128 can have non-minimal length -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\00" ;; i32.const 0 - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\7f" ;; i32.const -1 - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\00" ;; i32.const 0 - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\7f" ;; i32.const -1 - "\0b" ;; end -) - -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\00" ;; i64.const 0 with unused bits set - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\07\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\7f" ;; i64.const -1 with unused bits unset - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with unused bits set - "\0b" ;; end -) -(module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with unused bits unset - "\0b" ;; end -) - -;; Unsigned LEB128 must not be overlong -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\05\08\01" ;; Memory section with 1 entry - "\00\82\80\80\80\80\00" ;; no max, minimum 2 with one byte too many - ) - "integer representation too long" -) - -;; Signed LEB128 must not be overlong -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0b\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\80\00" ;; i32.const 0 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0b\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\ff\7f" ;; i32.const -1 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\10\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\80\00" ;; i64.const 0 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\10\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\ff\7f" ;; i64.const -1 with one byte too many - "\0b" ;; end - ) - "integer representation too long" -) - -;; Unsigned LEB128s zero-extend -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\05\04\01" ;; Memory section with 1 entry - "\00\82\80\80\80\70" ;; no max, minimum 2 with unused bits set - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\05\04\01" ;; Memory section with 1 entry - "\00\82\80\80\80\40" ;; no max, minimum 2 with some unused bits set - ) - "integer too large" -) - -;; Signed LEB128s sign-extend -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\70" ;; i32.const 0 with unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\0f" ;; i32.const -1 with unused bits unset - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\80\80\80\80\1f" ;; i32.const 0 with some unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0a\01" ;; Global section with 1 entry - "\7f\00" ;; i32, immutable - "\41\ff\ff\ff\ff\4f" ;; i32.const -1 with some unused bits unset - "\0b" ;; end - ) - "integer too large" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\7e" ;; i64.const 0 with unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\01" ;; i64.const -1 with unused bits unset - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\80\80\80\80\80\80\80\80\80\02" ;; i64.const 0 with some unused bits set - "\0b" ;; end - ) - "integer too large" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\0f\01" ;; Global section with 1 entry - "\7e\00" ;; i64, immutable - "\42\ff\ff\ff\ff\ff\ff\ff\ff\ff\41" ;; i64.const -1 with some unused bits unset - "\0b" ;; end - ) - "integer too large" -) - -;; call_indirect reserved byte equal to zero. -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\04\01\60\00\00" ;; Type section - "\03\02\01\00" ;; Function section - "\04\04\01\70\00\00" ;; Table section - "\0a\09\01" ;; Code section - - ;; function 0 - "\07\00" - "\41\00" ;; i32.const 0 - "\11\00" ;; call_indirect (type 0) - "\01" ;; call_indirect reserved byte is not equal to zero! - "\0b" ;; end - ) - "zero flag expected" -) - -;; memory.grow reserved byte equal to zero. -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\04\01\60\00\00" ;; Type section - "\03\02\01\00" ;; Function section - "\05\03\01\00\00" ;; Memory section - "\0a\09\01" ;; Code section - - ;; function 0 - "\07\00" - "\41\00" ;; i32.const 0 - "\40" ;; memory.grow - "\01" ;; memory.grow reserved byte is not equal to zero! - "\1a" ;; drop - "\0b" ;; end - ) - "zero flag expected" -) - -;; memory.size reserved byte equal to zero. -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\04\01\60\00\00" ;; Type section - "\03\02\01\00" ;; Function section - "\05\03\01\00\00" ;; Memory section - "\0a\07\01" ;; Code section - - ;; function 0 - "\05\00" - "\3f" ;; memory.size - "\01" ;; memory.size reserved byte is not equal to zero! - "\1a" ;; drop - "\0b" ;; end - ) - "zero flag expected" -) diff --git a/tests/samples/block.wast b/tests/samples/block.wast deleted file mode 100644 index f2b6384..0000000 --- a/tests/samples/block.wast +++ /dev/null @@ -1,299 +0,0 @@ -;; Test `block` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "empty") - (block) - (block $l) - ) - - (func (export "singular") (result i32) - (block (nop)) - (block (result i32) (i32.const 7)) - ) - - (func (export "multi") (result i32) - (block (call $dummy) (call $dummy) (call $dummy) (call $dummy)) - (block (result i32) (call $dummy) (call $dummy) (call $dummy) (i32.const 8)) - ) - - (func (export "nested") (result i32) - (block (result i32) - (block (call $dummy) (block) (nop)) - (block (result i32) (call $dummy) (i32.const 9)) - ) - ) - - (func (export "deep") (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (block (result i32) (block (result i32) - (call $dummy) (i32.const 150) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - )) - ) - - (func (export "as-unary-operand") (result i32) - (i32.ctz (block (result i32) (call $dummy) (i32.const 13))) - ) - (func (export "as-binary-operand") (result i32) - (i32.mul - (block (result i32) (call $dummy) (i32.const 3)) - (block (result i32) (call $dummy) (i32.const 4)) - ) - ) - (func (export "as-test-operand") (result i32) - (i32.eqz (block (result i32) (call $dummy) (i32.const 13))) - ) - (func (export "as-compare-operand") (result i32) - (f32.gt - (block (result f32) (call $dummy) (f32.const 3)) - (block (result f32) (call $dummy) (f32.const 3)) - ) - ) - - (func (export "break-bare") (result i32) - (block (br 0) (unreachable)) - (block (br_if 0 (i32.const 1)) (unreachable)) - (block (br_table 0 (i32.const 0)) (unreachable)) - (block (br_table 0 0 0 (i32.const 1)) (unreachable)) - (i32.const 19) - ) - (func (export "break-value") (result i32) - (block (result i32) (br 0 (i32.const 18)) (i32.const 19)) - ) - (func (export "break-repeated") (result i32) - (block (result i32) - (br 0 (i32.const 18)) - (br 0 (i32.const 19)) - (drop (br_if 0 (i32.const 20) (i32.const 0))) - (drop (br_if 0 (i32.const 20) (i32.const 1))) - (br 0 (i32.const 21)) - (br_table 0 (i32.const 22) (i32.const 4)) - (br_table 0 0 0 (i32.const 23) (i32.const 1)) - (i32.const 21) - ) - ) - (func (export "break-inner") (result i32) - (local i32) - (set_local 0 (i32.const 0)) - (set_local 0 (i32.add (get_local 0) (block (result i32) (block (result i32) (br 1 (i32.const 0x1)))))) - (set_local 0 (i32.add (get_local 0) (block (result i32) (block (br 0)) (i32.const 0x2)))) - (set_local 0 - (i32.add (get_local 0) (block (result i32) (i32.ctz (br 0 (i32.const 0x4))))) - ) - (set_local 0 - (i32.add (get_local 0) (block (result i32) (i32.ctz (block (result i32) (br 1 (i32.const 0x8)))))) - ) - (get_local 0) - ) - - (func (export "effects") (result i32) - (local i32) - (block - (set_local 0 (i32.const 1)) - (set_local 0 (i32.mul (get_local 0) (i32.const 3))) - (set_local 0 (i32.sub (get_local 0) (i32.const 5))) - (set_local 0 (i32.mul (get_local 0) (i32.const 7))) - (br 0) - (set_local 0 (i32.mul (get_local 0) (i32.const 100))) - ) - (i32.eq (get_local 0) (i32.const -14)) - ) -) - -(assert_return (invoke "empty")) -(assert_return (invoke "singular") (i32.const 7)) -(assert_return (invoke "multi") (i32.const 8)) -(assert_return (invoke "nested") (i32.const 9)) -(assert_return (invoke "deep") (i32.const 150)) - -(assert_return (invoke "as-unary-operand") (i32.const 0)) -(assert_return (invoke "as-binary-operand") (i32.const 12)) -(assert_return (invoke "as-test-operand") (i32.const 0)) -(assert_return (invoke "as-compare-operand") (i32.const 0)) - -(assert_return (invoke "break-bare") (i32.const 19)) -(assert_return (invoke "break-value") (i32.const 18)) -(assert_return (invoke "break-repeated") (i32.const 18)) -(assert_return (invoke "break-inner") (i32.const 0xf)) - -(assert_return (invoke "effects") (i32.const 1)) - -(assert_invalid - (module (func $type-empty-i32 (result i32) (block))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64) (block))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32) (block))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64) (block))) - "type mismatch" -) - -(assert_invalid - (module (func $type-value-num-vs-void - (block (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-empty-vs-num (result i32) - (block (result i32)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-void-vs-num (result i32) - (block (result i32) (nop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-num (result i32) - (block (result i32) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-unreached-select (result i32) - (block (result i64) (select (unreachable) (unreachable) (unreachable))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-last-void-vs-num (result i32) - (block (result i32) (br 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-empty-vs-num (result i32) - (block (result i32) (br 0) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-void-vs-num (result i32) - (block (result i32) (br 0 (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-num-vs-num (result i32) - (block (result i32) (br 0 (i64.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-first-void-vs-num (result i32) - (block (result i32) (br 0 (nop)) (br 0 (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-first-num-vs-num (result i32) - (block (result i32) (br 0 (i64.const 1)) (br 0 (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-nested-num-vs-void - (block (result i32) (block (result i32) (br 1 (i32.const 1))) (br 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-empty-vs-num (result i32) - (block (result i32) (block (br 1)) (br 0 (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-nested-void-vs-num (result i32) - (block (result i32) (block (result i32) (br 1 (nop))) (br 0 (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-num-vs-num (result i32) - (block (result i32) - (block (result i32) (br 1 (i64.const 1))) (br 0 (i32.const 1)) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-operand-empty-vs-num (result i32) - (i32.ctz (block (br 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-operand-void-vs-num (result i32) - (i64.ctz (block (br 0 (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-operand-num-vs-num (result i32) - (i64.ctz (block (br 0 (i64.const 9)))) - )) - "type mismatch" -) - - -(assert_malformed - (module quote "(func block end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func block $a end $l)") - "mismatching label" -) diff --git a/tests/samples/br.wast b/tests/samples/br.wast deleted file mode 100644 index e801a1b..0000000 --- a/tests/samples/br.wast +++ /dev/null @@ -1,447 +0,0 @@ -;; Test `br` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") (block (drop (i32.ctz (br 0))))) - (func (export "type-i64") (block (drop (i64.ctz (br 0))))) - (func (export "type-f32") (block (drop (f32.neg (br 0))))) - (func (export "type-f64") (block (drop (f64.neg (br 0))))) - - (func (export "type-i32-value") (result i32) - (block (result i32) (i32.ctz (br 0 (i32.const 1)))) - ) - (func (export "type-i64-value") (result i64) - (block (result i64) (i64.ctz (br 0 (i64.const 2)))) - ) - (func (export "type-f32-value") (result f32) - (block (result f32) (f32.neg (br 0 (f32.const 3)))) - ) - (func (export "type-f64-value") (result f64) - (block (result f64) (f64.neg (br 0 (f64.const 4)))) - ) - - (func (export "as-block-first") - (block (br 0) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (br 0) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (br 0)) - ) - (func (export "as-block-value") (result i32) - (block (result i32) (nop) (call $dummy) (br 0 (i32.const 2))) - ) - - (func (export "as-loop-first") (result i32) - (block (result i32) (loop (result i32) (br 1 (i32.const 3)) (i32.const 2))) - ) - (func (export "as-loop-mid") (result i32) - (block (result i32) - (loop (result i32) (call $dummy) (br 1 (i32.const 4)) (i32.const 2)) - ) - ) - (func (export "as-loop-last") (result i32) - (block (result i32) - (loop (result i32) (nop) (call $dummy) (br 1 (i32.const 5))) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (br 0 (i32.const 9)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (br 0))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (br 0 (i32.const 8)) (i32.const 1))) (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (br 0 (i32.const 9)))) (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (br 0))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (br 0 (i32.const 10)) (i32.const 1)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (br 0 (i32.const 11))) (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (block (result i64) (return (br 0 (i64.const 7)))) - ) - - (func (export "as-if-cond") (result i32) - (block (result i32) - (if (result i32) (br 0 (i32.const 2)) - (then (i32.const 0)) - (else (i32.const 1)) - ) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) (get_local 0) - (then (br 1 (i32.const 3))) - (else (get_local 1)) - ) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) (get_local 0) - (then (get_local 1)) - (else (br 1 (i32.const 4))) - ) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (block (result i32) - (select (br 0 (i32.const 5)) (get_local 0) (get_local 1)) - ) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (block (result i32) - (select (get_local 0) (br 0 (i32.const 6)) (get_local 1)) - ) - ) - (func (export "as-select-cond") (result i32) - (block (result i32) - (select (i32.const 0) (i32.const 1) (br 0 (i32.const 7))) - ) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (block (result i32) - (call $f (br 0 (i32.const 12)) (i32.const 2) (i32.const 3)) - ) - ) - (func (export "as-call-mid") (result i32) - (block (result i32) - (call $f (i32.const 1) (br 0 (i32.const 13)) (i32.const 3)) - ) - ) - (func (export "as-call-last") (result i32) - (block (result i32) - (call $f (i32.const 1) (i32.const 2) (br 0 (i32.const 14))) - ) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table anyfunc (elem $f)) - (func (export "as-call_indirect-func") (result i32) - (block (result i32) - (call_indirect (type $sig) - (br 0 (i32.const 20)) - (i32.const 1) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-first") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) - (br 0 (i32.const 21)) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) - (i32.const 1) (br 0 (i32.const 22)) (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) - (i32.const 1) (i32.const 2) (br 0 (i32.const 23)) - ) - ) - ) - - (func (export "as-set_local-value") (result i32) (local f32) - (block (result i32) (set_local 0 (br 0 (i32.const 17))) (i32.const -1)) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (block (result f32) (f32.load (br 0 (f32.const 1.7)))) - ) - (func (export "as-loadN-address") (result i64) - (block (result i64) (i64.load8_s (br 0 (i64.const 30)))) - ) - - (func (export "as-store-address") (result i32) - (block (result i32) - (f64.store (br 0 (i32.const 30)) (f64.const 7)) (i32.const -1) - ) - ) - (func (export "as-store-value") (result i32) - (block (result i32) - (i64.store (i32.const 2) (br 0 (i32.const 31))) (i32.const -1) - ) - ) - - (func (export "as-storeN-address") (result i32) - (block (result i32) - (i32.store8 (br 0 (i32.const 32)) (i32.const 7)) (i32.const -1) - ) - ) - (func (export "as-storeN-value") (result i32) - (block (result i32) - (i64.store16 (i32.const 2) (br 0 (i32.const 33))) (i32.const -1) - ) - ) - - (func (export "as-unary-operand") (result f32) - (block (result f32) (f32.neg (br 0 (f32.const 3.4)))) - ) - - (func (export "as-binary-left") (result i32) - (block (result i32) (i32.add (br 0 (i32.const 3)) (i32.const 10))) - ) - (func (export "as-binary-right") (result i64) - (block (result i64) (i64.sub (i64.const 10) (br 0 (i64.const 45)))) - ) - - (func (export "as-test-operand") (result i32) - (block (result i32) (i32.eqz (br 0 (i32.const 44)))) - ) - - (func (export "as-compare-left") (result i32) - (block (result i32) (f64.le (br 0 (i32.const 43)) (f64.const 10))) - ) - (func (export "as-compare-right") (result i32) - (block (result i32) (f32.ne (f32.const 10) (br 0 (i32.const 42)))) - ) - - (func (export "as-convert-operand") (result i32) - (block (result i32) (i32.wrap/i64 (br 0 (i32.const 41)))) - ) - - (func (export "as-memory.grow-size") (result i32) - (block (result i32) (memory.grow (br 0 (i32.const 40)))) - ) - - (func (export "nested-block-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (call $dummy) - (i32.add (i32.const 4) (br 0 (i32.const 8))) - ) - ) - ) - - (func (export "nested-br-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br 0 (br 1 (i32.const 8))) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (drop (br_if 0 (br 1 (i32.const 8)) (i32.const 1))) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop (br_if 0 (i32.const 4) (br 0 (i32.const 8)))) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br_table 0 (br 1 (i32.const 8)) (i32.const 1)) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value-index") (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 (i32.const 4) (br 0 (i32.const 8))) - (i32.const 16) - ) - ) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "type-i32-value") (i32.const 1)) -(assert_return (invoke "type-i64-value") (i64.const 2)) -(assert_return (invoke "type-f32-value") (f32.const 3)) -(assert_return (invoke "type-f64-value") (f64.const 4)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index")) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-func") (i32.const 20)) -(assert_return (invoke "as-call_indirect-first") (i32.const 21)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 22)) -(assert_return (invoke "as-call_indirect-last") (i32.const 23)) - -(assert_return (invoke "as-set_local-value") (i32.const 17)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_return (invoke "nested-block-value") (i32.const 9)) -(assert_return (invoke "nested-br-value") (i32.const 9)) -(assert_return (invoke "nested-br_if-value") (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond") (i32.const 9)) -(assert_return (invoke "nested-br_table-value") (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index") (i32.const 9)) - -(assert_invalid - (module (func $type-arg-empty-vs-num (result i32) - (block (result i32) (br 0) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (result i32) (br 0 (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-num (result i32) - (block (result i32) (br 0 (i64.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $unbound-label (br 1))) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label (block (block (br 5))))) - "unknown label" -) -(assert_invalid - (module (func $large-label (br 0x10000001))) - "unknown label" -) diff --git a/tests/samples/br_if.wast b/tests/samples/br_if.wast deleted file mode 100644 index 0aa46d4..0000000 --- a/tests/samples/br_if.wast +++ /dev/null @@ -1,321 +0,0 @@ -;; Test `br_if` operator - -(module - (func $dummy) - - (func (export "as-block-first") (param i32) (result i32) - (block (br_if 0 (get_local 0)) (return (i32.const 2))) (i32.const 3) - ) - (func (export "as-block-mid") (param i32) (result i32) - (block (call $dummy) (br_if 0 (get_local 0)) (return (i32.const 2))) - (i32.const 3) - ) - (func (export "as-block-last") (param i32) - (block (call $dummy) (call $dummy) (br_if 0 (get_local 0))) - ) - (func (export "as-block-first-value") (param i32) (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 10) (get_local 0))) (return (i32.const 11)) - ) - ) - (func (export "as-block-mid-value") (param i32) (result i32) - (block (result i32) - (call $dummy) - (drop (br_if 0 (i32.const 20) (get_local 0))) - (return (i32.const 21)) - ) - ) - (func (export "as-block-last-value") (param i32) (result i32) - (block (result i32) - (call $dummy) (call $dummy) (br_if 0 (i32.const 11) (get_local 0)) - ) - ) - - (func (export "as-loop-first") (param i32) (result i32) - (block (loop (br_if 1 (get_local 0)) (return (i32.const 2)))) (i32.const 3) - ) - (func (export "as-loop-mid") (param i32) (result i32) - (block (loop (call $dummy) (br_if 1 (get_local 0)) (return (i32.const 2)))) - (i32.const 4) - ) - (func (export "as-loop-last") (param i32) - (loop (call $dummy) (br_if 1 (get_local 0))) - ) - - (func (export "as-if-then") (param i32 i32) - (block - (if (get_local 0) (then (br_if 1 (get_local 1))) (else (call $dummy))) - ) - ) - (func (export "as-if-else") (param i32 i32) - (block - (if (get_local 0) (then (call $dummy)) (else (br_if 1 (get_local 1)))) - ) - ) - - (func (export "nested-block-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (i32.add - (i32.const 4) - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) - (i32.const 16) - ) - ) - ) - ) - ) - - (func (export "nested-br-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br 0 - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 4) - ) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop (br_if 0 - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 4) - ) - (i32.const 1) - )) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop (br_if 0 - (i32.const 4) - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 1) - ) - )) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 4) - ) - (i32.const 1) - ) - (i32.const 16) - ) - ) - ) - - (func (export "nested-br_table-value-index") (param i32) (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 - (i32.const 4) - (block (result i32) - (drop (br_if 1 (i32.const 8) (get_local 0))) (i32.const 1) - ) - ) - (i32.const 16) - ) - ) - ) -) - -(assert_return (invoke "as-block-first" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-block-first" (i32.const 1)) (i32.const 3)) -(assert_return (invoke "as-block-mid" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-block-mid" (i32.const 1)) (i32.const 3)) -(assert_return (invoke "as-block-last" (i32.const 0))) -(assert_return (invoke "as-block-last" (i32.const 1))) -(assert_return (invoke "as-block-last-value" (i32.const 0)) (i32.const 11)) -(assert_return (invoke "as-block-last-value" (i32.const 1)) (i32.const 11)) - -(assert_return (invoke "as-loop-first" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-loop-first" (i32.const 1)) (i32.const 3)) -(assert_return (invoke "as-loop-mid" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "as-loop-mid" (i32.const 1)) (i32.const 4)) -(assert_return (invoke "as-loop-last" (i32.const 0))) -(assert_return (invoke "as-loop-last" (i32.const 1))) - -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 0))) -(assert_return (invoke "as-if-then" (i32.const 4) (i32.const 0))) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 1))) -(assert_return (invoke "as-if-then" (i32.const 4) (i32.const 1))) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 0))) -(assert_return (invoke "as-if-else" (i32.const 3) (i32.const 0))) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 1))) -(assert_return (invoke "as-if-else" (i32.const 3) (i32.const 1))) - -(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 21)) -(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 5)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 9)) - -(assert_invalid - (module (func $type-false-i32 (block (i32.ctz (br_if 0 (i32.const 0)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-false-i64 (block (i64.ctz (br_if 0 (i32.const 0)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-false-f32 (block (f32.neg (br_if 0 (i32.const 0)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-false-f64 (block (f64.neg (br_if 0 (i32.const 0)))))) - "type mismatch" -) - -(assert_invalid - (module (func $type-true-i32 (block (i32.ctz (br_if 0 (i32.const 1)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-true-i64 (block (i64.ctz (br_if 0 (i64.const 1)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-true-f32 (block (f32.neg (br_if 0 (f32.const 1)))))) - "type mismatch" -) -(assert_invalid - (module (func $type-true-f64 (block (f64.neg (br_if 0 (i64.const 1)))))) - "type mismatch" -) - -(assert_invalid - (module (func $type-false-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (i32.const 0)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-false-arg-num-vs-void - (block (br_if 0 (i32.const 0) (i32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-num-vs-void - (block (br_if 0 (i32.const 0) (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-false-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (nop) (i32.const 0)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-void-vs-num (result i32) - (block (result i32) (br_if 0 (nop) (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-false-arg-num-vs-num (result i32) - (block (result i32) - (drop (br_if 0 (i64.const 1) (i32.const 0))) (i32.const 1) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-true-arg-num-vs-num (result i32) - (block (result i32) - (drop (br_if 0 (i64.const 1) (i32.const 0))) (i32.const 1) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-cond-void-vs-i32 - (block (br_if 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-cond-num-vs-i32 - (block (br_if 0 (i64.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-cond-void-vs-i32 (result i32) - (block (result i32) (br_if 0 (i32.const 0) (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br_if 1 (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-cond-num-vs-i32 (result i32) - (block (result i32) (br_if 0 (i32.const 0) (i64.const 0)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $unbound-label (br_if 1 (i32.const 1)))) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label (block (block (br_if 5 (i32.const 1)))))) - "unknown label" -) -(assert_invalid - (module (func $large-label (br_if 0x10000001 (i32.const 1)))) - "unknown label" -) - diff --git a/tests/samples/br_table.wast b/tests/samples/br_table.wast deleted file mode 100644 index 81259ca..0000000 --- a/tests/samples/br_table.wast +++ /dev/null @@ -1,1515 +0,0 @@ -;; Test `br_table` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") - (block (drop (i32.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-i64") - (block (drop (i64.ctz (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f32") - (block (drop (f32.neg (br_table 0 0 (i32.const 0))))) - ) - (func (export "type-f64") - (block (drop (f64.neg (br_table 0 0 (i32.const 0))))) - ) - - (func (export "type-i32-value") (result i32) - (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0)))) - ) - (func (export "type-i64-value") (result i64) - (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0)))) - ) - (func (export "type-f32-value") (result f32) - (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0)))) - ) - (func (export "type-f64-value") (result f64) - (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0)))) - ) - - (func (export "empty") (param i32) (result i32) - (block (br_table 0 (get_local 0)) (return (i32.const 21))) - (i32.const 22) - ) - (func (export "empty-value") (param i32) (result i32) - (block (result i32) - (br_table 0 (i32.const 33) (get_local 0)) (i32.const 31) - ) - ) - - (func (export "singleton") (param i32) (result i32) - (block - (block - (br_table 1 0 (get_local 0)) - (return (i32.const 21)) - ) - (return (i32.const 20)) - ) - (i32.const 22) - ) - - (func (export "singleton-value") (param i32) (result i32) - (block (result i32) - (drop - (block (result i32) - (br_table 0 1 (i32.const 33) (get_local 0)) - (return (i32.const 31)) - ) - ) - (i32.const 32) - ) - ) - - (func (export "multiple") (param i32) (result i32) - (block - (block - (block - (block - (block - (br_table 3 2 1 0 4 (get_local 0)) - (return (i32.const 99)) - ) - (return (i32.const 100)) - ) - (return (i32.const 101)) - ) - (return (i32.const 102)) - ) - (return (i32.const 103)) - ) - (i32.const 104) - ) - - (func (export "multiple-value") (param i32) (result i32) - (local i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (set_local 1 (block (result i32) - (br_table 3 2 1 0 4 (i32.const 200) (get_local 0)) - (return (i32.add (get_local 1) (i32.const 99))) - )) - (return (i32.add (get_local 1) (i32.const 10))) - )) - (return (i32.add (get_local 1) (i32.const 11))) - )) - (return (i32.add (get_local 1) (i32.const 12))) - )) - (return (i32.add (get_local 1) (i32.const 13))) - )) - (i32.add (get_local 1) (i32.const 14)) - ) - - (func (export "large") (param i32) (result i32) - (block - (block - (br_table - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 - (get_local 0) - ) - (return (i32.const -1)) - ) - (return (i32.const 0)) - ) - (return (i32.const 1)) - ) - - (func (export "as-block-first") - (block (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0))) - ) - (func (export "as-block-value") (result i32) - (block (result i32) - (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0)) - ) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) - (call $dummy) - (br_table 1 1 1 (i32.const 4) (i32.const -1)) - (i32.const 2) - ) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) - (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1)) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (br 0 (i32.const 9)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (br_table 0 0 0 (i32.const 1)))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1))) - (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0)))) - (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (br_table 0 (i32.const 1)))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1)) - (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1))) - (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0)))) - ) - - (func (export "as-if-cond") (result i32) - (block (result i32) - (if (result i32) - (br_table 0 (i32.const 2) (i32.const 0)) - (then (i32.const 0)) - (else (i32.const 1)) - ) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (get_local 0) - (then (br_table 1 (i32.const 3) (i32.const 0))) - (else (get_local 1)) - ) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (block (result i32) - (if (result i32) - (get_local 0) - (then (get_local 1)) - (else (br_table 1 0 (i32.const 4) (i32.const 0))) - ) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (block (result i32) - (select - (br_table 0 (i32.const 5) (i32.const 0)) (get_local 0) (get_local 1) - ) - ) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (block (result i32) - (select - (get_local 0) (br_table 0 (i32.const 6) (i32.const 1)) (get_local 1) - ) - ) - ) - (func (export "as-select-cond") (result i32) - (block (result i32) - (select - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1)) - ) - ) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (block (result i32) - (call $f - (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3) - ) - ) - ) - (func (export "as-call-mid") (result i32) - (block (result i32) - (call $f - (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3) - ) - ) - ) - (func (export "as-call-last") (result i32) - (block (result i32) - (call $f - (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1)) - ) - ) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table anyfunc (elem $f)) - (func (export "as-call_indirect-first") (result i32) - (block (result i32) - (call_indirect (type $sig) - (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1)) - (i32.const 3) - ) - ) - ) - (func (export "as-call_indirect-func") (result i32) - (block (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) - (br_table 0 (i32.const 23) (i32.const 1)) - ) - ) - ) - - (func (export "as-set_local-value") (result i32) - (local f32) - (block (result i32) - (set_local 0 (br_table 0 (i32.const 17) (i32.const 1))) - (i32.const -1) - ) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1)))) - ) - (func (export "as-loadN-address") (result i64) - (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1)))) - ) - - (func (export "as-store-address") (result i32) - (block (result i32) - (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7)) - (i32.const -1) - ) - ) - (func (export "as-store-value") (result i32) - (block (result i32) - (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1))) - (i32.const -1) - ) - ) - - (func (export "as-storeN-address") (result i32) - (block (result i32) - (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7)) - (i32.const -1) - ) - ) - (func (export "as-storeN-value") (result i32) - (block (result i32) - (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0))) - (i32.const -1) - ) - ) - - (func (export "as-unary-operand") (result f32) - (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0)))) - ) - - (func (export "as-binary-left") (result i32) - (block (result i32) - (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10)) - ) - ) - (func (export "as-binary-right") (result i64) - (block (result i64) - (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0))) - ) - ) - - (func (export "as-test-operand") (result i32) - (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0)))) - ) - - (func (export "as-compare-left") (result i32) - (block (result i32) - (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10)) - ) - ) - (func (export "as-compare-right") (result i32) - (block (result i32) - (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0))) - ) - ) - - (func (export "as-convert-operand") (result i32) - (block (result i32) - (i32.wrap/i64 (br_table 0 (i32.const 41) (i32.const 0))) - ) - ) - - (func (export "as-memory.grow-size") (result i32) - (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0)))) - ) - - (func (export "nested-block-value") (param i32) (result i32) - (block (result i32) - (drop (i32.const -1)) - (i32.add - (i32.const 1) - (block (result i32) - (i32.add - (i32.const 2) - (block (result i32) - (drop (i32.const 4)) - (i32.add - (i32.const 8) - (br_table 0 1 2 (i32.const 16) (get_local 0)) - ) - ) - ) - ) - ) - ) - ) - - (func (export "nested-br-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br 0 (br_table 2 1 0 (i32.const 8) (get_local 0))) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (drop - (br_if 0 - (br_table 0 1 2 (i32.const 8) (get_local 0)) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_if-value-cond") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (get_local 0))) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (drop - (block (result i32) - (drop (i32.const 4)) - (br_table 0 (br_table 0 1 2 (i32.const 8) (get_local 0)) (i32.const 1)) - (i32.const 32) - ) - ) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-value-index") (param i32) (result i32) - (block (result i32) - (i32.add - (i32.const 1) - (block (result i32) - (drop (i32.const 2)) - (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (get_local 0))) - (i32.const 16) - ) - ) - ) - ) - - (func (export "nested-br_table-loop-block") (param i32) (result i32) - (set_local 0 - (loop (result i32) - (block - (br_table 1 0 0 (get_local 0)) - ) - (i32.const 0) - ) - ) - (loop (result i32) - (block - (br_table 0 1 1 (get_local 0)) - ) - (i32.const 3) - ) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "type-i32-value") (i32.const 1)) -(assert_return (invoke "type-i64-value") (i64.const 2)) -(assert_return (invoke "type-f32-value") (f32.const 3)) -(assert_return (invoke "type-f64-value") (f64.const 4)) - -(assert_return (invoke "empty" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 11)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -1)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const -100)) (i32.const 22)) -(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22)) - -(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22)) -(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20)) -(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20)) - -(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33)) -(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33)) - -(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103)) -(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102)) -(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101)) -(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100)) -(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104)) -(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104)) - -(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213)) -(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212)) -(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211)) -(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210)) -(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214)) -(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214)) - -(assert_return (invoke "large" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 100)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 101)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 10000)) (i32.const 0)) -(assert_return (invoke "large" (i32.const 10001)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1)) -(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index")) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-first") (i32.const 20)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 21)) -(assert_return (invoke "as-call_indirect-last") (i32.const 22)) -(assert_return (invoke "as-call_indirect-func") (i32.const 23)) - -(assert_return (invoke "as-set_local-value") (i32.const 17)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19)) -(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17)) -(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16)) -(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16)) - -(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8)) -(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17)) -(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17)) - -(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17)) -(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8)) - -(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9)) -(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9)) - -(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3)) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (br_table 0 (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-arg-void-vs-num (result i32) - (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-num (result i32) - (block (result i32) - (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-num-vs-arg-num - (block - (block (result f32) - (br_table 0 1 (f32.const 0) (i32.const 0)) - ) - (drop) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-index-void-vs-i32 - (block (br_table 0 0 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-index-num-vs-i32 - (block (br_table 0 (i64.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-void-vs-i32 (result i32) - (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-void-vs-num-nested (result i32) - (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-arg-index-num-vs-i32 (result i32) - (block (result i32) - (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $unbound-label - (block (br_table 2 1 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label - (block (br_table 0 0x10000001 0 (i32.const 1))) - )) - "unknown label" -) - -(assert_invalid - (module (func $unbound-label-default - (block (br_table 1 2 (i32.const 1))) - )) - "unknown label" -) -(assert_invalid - (module (func $unbound-nested-label-default - (block (block (br_table 0 5 (i32.const 1)))) - )) - "unknown label" -) -(assert_invalid - (module (func $large-label-default - (block (br_table 0 0 0x10000001 (i32.const 1))) - )) - "unknown label" -) - diff --git a/tests/samples/break-drop.wast b/tests/samples/break-drop.wast deleted file mode 100644 index e10df66..0000000 --- a/tests/samples/break-drop.wast +++ /dev/null @@ -1,9 +0,0 @@ -(module - (func (export "br") (block (br 0))) - (func (export "br_if") (block (br_if 0 (i32.const 1)))) - (func (export "br_table") (block (br_table 0 (i32.const 0)))) -) - -(assert_return (invoke "br")) -(assert_return (invoke "br_if")) -(assert_return (invoke "br_table")) diff --git a/tests/samples/call.wast b/tests/samples/call.wast deleted file mode 100644 index 3a89f23..0000000 --- a/tests/samples/call.wast +++ /dev/null @@ -1,242 +0,0 @@ -;; Test `call` operator - -(module - ;; Auxiliary definitions - (func $const-i32 (result i32) (i32.const 0x132)) - (func $const-i64 (result i64) (i64.const 0x164)) - (func $const-f32 (result f32) (f32.const 0xf32)) - (func $const-f64 (result f64) (f64.const 0xf64)) - - (func $id-i32 (param i32) (result i32) (get_local 0)) - (func $id-i64 (param i64) (result i64) (get_local 0)) - (func $id-f32 (param f32) (result f32) (get_local 0)) - (func $id-f64 (param f64) (result f64) (get_local 0)) - - (func $f32-i32 (param f32 i32) (result i32) (get_local 1)) - (func $i32-i64 (param i32 i64) (result i64) (get_local 1)) - (func $f64-f32 (param f64 f32) (result f32) (get_local 1)) - (func $i64-f64 (param i64 f64) (result f64) (get_local 1)) - - ;; Typing - - (func (export "type-i32") (result i32) (call $const-i32)) - (func (export "type-i64") (result i64) (call $const-i64)) - (func (export "type-f32") (result f32) (call $const-f32)) - (func (export "type-f64") (result f64) (call $const-f64)) - - (func (export "type-first-i32") (result i32) (call $id-i32 (i32.const 32))) - (func (export "type-first-i64") (result i64) (call $id-i64 (i64.const 64))) - (func (export "type-first-f32") (result f32) (call $id-f32 (f32.const 1.32))) - (func (export "type-first-f64") (result f64) (call $id-f64 (f64.const 1.64))) - - (func (export "type-second-i32") (result i32) - (call $f32-i32 (f32.const 32.1) (i32.const 32)) - ) - (func (export "type-second-i64") (result i64) - (call $i32-i64 (i32.const 32) (i64.const 64)) - ) - (func (export "type-second-f32") (result f32) - (call $f64-f32 (f64.const 64) (f32.const 32)) - ) - (func (export "type-second-f64") (result f64) - (call $i64-f64 (i64.const 64) (f64.const 64.1)) - ) - - ;; Recursion - - (func $fac (export "fac") (param i64) (result i64) - (if (result i64) (i64.eqz (get_local 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local 0) - (call $fac (i64.sub (get_local 0) (i64.const 1))) - ) - ) - ) - ) - - (func $fac-acc (export "fac-acc") (param i64 i64) (result i64) - (if (result i64) (i64.eqz (get_local 0)) - (then (get_local 1)) - (else - (call $fac-acc - (i64.sub (get_local 0) (i64.const 1)) - (i64.mul (get_local 0) (get_local 1)) - ) - ) - ) - ) - - (func $fib (export "fib") (param i64) (result i64) - (if (result i64) (i64.le_u (get_local 0) (i64.const 1)) - (then (i64.const 1)) - (else - (i64.add - (call $fib (i64.sub (get_local 0) (i64.const 2))) - (call $fib (i64.sub (get_local 0) (i64.const 1))) - ) - ) - ) - ) - - (func $even (export "even") (param i64) (result i32) - (if (result i32) (i64.eqz (get_local 0)) - (then (i32.const 44)) - (else (call $odd (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - (func $odd (export "odd") (param i64) (result i32) - (if (result i32) (i64.eqz (get_local 0)) - (then (i32.const 99)) - (else (call $even (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - - ;; Stack exhaustion - - ;; Implementations are required to have every call consume some abstract - ;; resource towards exhausting some abstract finite limit, such that - ;; infinitely recursive test cases reliably trap in finite time. This is - ;; because otherwise applications could come to depend on it on those - ;; implementations and be incompatible with implementations that don't do - ;; it (or don't do it under the same circumstances). - - (func $runaway (export "runaway") (call $runaway)) - - (func $mutual-runaway1 (export "mutual-runaway") (call $mutual-runaway2)) - (func $mutual-runaway2 (call $mutual-runaway1)) -) - -(assert_return (invoke "type-i32") (i32.const 0x132)) -(assert_return (invoke "type-i64") (i64.const 0x164)) -(assert_return (invoke "type-f32") (f32.const 0xf32)) -(assert_return (invoke "type-f64") (f64.const 0xf64)) - -(assert_return (invoke "type-first-i32") (i32.const 32)) -(assert_return (invoke "type-first-i64") (i64.const 64)) -(assert_return (invoke "type-first-f32") (f32.const 1.32)) -(assert_return (invoke "type-first-f64") (f64.const 1.64)) - -(assert_return (invoke "type-second-i32") (i32.const 32)) -(assert_return (invoke "type-second-i64") (i64.const 64)) -(assert_return (invoke "type-second-f32") (f32.const 32)) -(assert_return (invoke "type-second-f64") (f64.const 64.1)) - -(assert_return (invoke "fac" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 5)) (i64.const 120)) -(assert_return (invoke "fac" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-acc" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac-acc" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac-acc" (i64.const 5) (i64.const 1)) (i64.const 120)) -(assert_return - (invoke "fac-acc" (i64.const 25) (i64.const 1)) - (i64.const 7034535277573963776) -) - -(assert_return (invoke "fib" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 2)) (i64.const 2)) -(assert_return (invoke "fib" (i64.const 5)) (i64.const 8)) -(assert_return (invoke "fib" (i64.const 20)) (i64.const 10946)) - -(assert_return (invoke "even" (i64.const 0)) (i32.const 44)) -(assert_return (invoke "even" (i64.const 1)) (i32.const 99)) -(assert_return (invoke "even" (i64.const 100)) (i32.const 44)) -(assert_return (invoke "even" (i64.const 77)) (i32.const 99)) -(assert_return (invoke "odd" (i64.const 0)) (i32.const 99)) -(assert_return (invoke "odd" (i64.const 1)) (i32.const 44)) -(assert_return (invoke "odd" (i64.const 200)) (i32.const 99)) -(assert_return (invoke "odd" (i64.const 77)) (i32.const 44)) - -(assert_exhaustion (invoke "runaway") "call stack exhausted") -(assert_exhaustion (invoke "mutual-runaway") "call stack exhausted") - - -;; Invalid typing - -(assert_invalid - (module - (func $type-void-vs-num (i32.eqz (call 1))) - (func) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-num-vs-num (i32.eqz (call 1))) - (func (result i64) (i64.const 1)) - ) - "type mismatch" -) - -(assert_invalid - (module - (func $arity-0-vs-1 (call 1)) - (func (param i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $arity-0-vs-2 (call 1)) - (func (param f64 i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $arity-1-vs-0 (call 1 (i32.const 1))) - (func) - ) - "type mismatch" -) -(assert_invalid - (module - (func $arity-2-vs-0 (call 1 (f64.const 2) (i32.const 1))) - (func) - ) - "type mismatch" -) - -(assert_invalid - (module - (func $type-first-void-vs-num (call 1 (nop) (i32.const 1))) - (func (param i32 i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-second-void-vs-num (call 1 (i32.const 1) (nop))) - (func (param i32 i32)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-first-num-vs-num (call 1 (f64.const 1) (i32.const 1))) - (func (param i32 f64)) - ) - "type mismatch" -) -(assert_invalid - (module - (func $type-second-num-vs-num (call 1 (i32.const 1) (f64.const 1))) - (func (param f64 i32)) - ) - "type mismatch" -) - - -;; Unbound function - -(assert_invalid - (module (func $unbound-func (call 1))) - "unknown function" -) -(assert_invalid - (module (func $large-func (call 1012321300))) - "unknown function" -) diff --git a/tests/samples/call_indirect.wast b/tests/samples/call_indirect.wast deleted file mode 100644 index e1fa417..0000000 --- a/tests/samples/call_indirect.wast +++ /dev/null @@ -1,536 +0,0 @@ -;; Test `call_indirect` operator - -(module - ;; Auxiliary definitions - (type $proc (func)) - (type $out-i32 (func (result i32))) - (type $out-i64 (func (result i64))) - (type $out-f32 (func (result f32))) - (type $out-f64 (func (result f64))) - (type $over-i32 (func (param i32) (result i32))) - (type $over-i64 (func (param i64) (result i64))) - (type $over-f32 (func (param f32) (result f32))) - (type $over-f64 (func (param f64) (result f64))) - (type $f32-i32 (func (param f32 i32) (result i32))) - (type $i32-i64 (func (param i32 i64) (result i64))) - (type $f64-f32 (func (param f64 f32) (result f32))) - (type $i64-f64 (func (param i64 f64) (result f64))) - (type $over-i32-duplicate (func (param i32) (result i32))) - (type $over-i64-duplicate (func (param i64) (result i64))) - (type $over-f32-duplicate (func (param f32) (result f32))) - (type $over-f64-duplicate (func (param f64) (result f64))) - - (func $const-i32 (type $out-i32) (i32.const 0x132)) - (func $const-i64 (type $out-i64) (i64.const 0x164)) - (func $const-f32 (type $out-f32) (f32.const 0xf32)) - (func $const-f64 (type $out-f64) (f64.const 0xf64)) - - (func $id-i32 (type $over-i32) (get_local 0)) - (func $id-i64 (type $over-i64) (get_local 0)) - (func $id-f32 (type $over-f32) (get_local 0)) - (func $id-f64 (type $over-f64) (get_local 0)) - - (func $i32-i64 (type $i32-i64) (get_local 1)) - (func $i64-f64 (type $i64-f64) (get_local 1)) - (func $f32-i32 (type $f32-i32) (get_local 1)) - (func $f64-f32 (type $f64-f32) (get_local 1)) - - (func $over-i32-duplicate (type $over-i32-duplicate) (get_local 0)) - (func $over-i64-duplicate (type $over-i64-duplicate) (get_local 0)) - (func $over-f32-duplicate (type $over-f32-duplicate) (get_local 0)) - (func $over-f64-duplicate (type $over-f64-duplicate) (get_local 0)) - - (table anyfunc - (elem - $const-i32 $const-i64 $const-f32 $const-f64 - $id-i32 $id-i64 $id-f32 $id-f64 - $f32-i32 $i32-i64 $f64-f32 $i64-f64 - $fac $fib $even $odd - $runaway $mutual-runaway1 $mutual-runaway2 - $over-i32-duplicate $over-i64-duplicate - $over-f32-duplicate $over-f64-duplicate - ) - ) - - ;; Syntax - - (func - (call_indirect (i32.const 0)) - (call_indirect (param i64) (i64.const 0) (i32.const 0)) - (call_indirect (param i64) (param) (param f64 i32 i64) - (i64.const 0) (f64.const 0) (i32.const 0) (i64.const 0) (i32.const 0) - ) - (call_indirect (result) (i32.const 0)) - (drop (i32.eqz (call_indirect (result i32) (i32.const 0)))) - (drop (i32.eqz (call_indirect (result i32) (result) (i32.const 0)))) - (drop (i32.eqz - (call_indirect (param i64) (result i32) (i64.const 0) (i32.const 0)) - )) - (drop (i32.eqz - (call_indirect - (param) (param i64) (param) (param f64 i32 i64) (param) (param) - (result) (result i32) (result) (result) - (i64.const 0) (f64.const 0) (i32.const 0) (i64.const 0) (i32.const 0) - ) - )) - (drop (i64.eqz - (call_indirect (type $over-i64) (param i64) (result i64) - (i64.const 0) (i32.const 0) - ) - )) - ) - - ;; Typing - - (func (export "type-i32") (result i32) - (call_indirect (type $out-i32) (i32.const 0)) - ) - (func (export "type-i64") (result i64) - (call_indirect (type $out-i64) (i32.const 1)) - ) - (func (export "type-f32") (result f32) - (call_indirect (type $out-f32) (i32.const 2)) - ) - (func (export "type-f64") (result f64) - (call_indirect (type $out-f64) (i32.const 3)) - ) - - (func (export "type-index") (result i64) - (call_indirect (type $over-i64) (i64.const 100) (i32.const 5)) - ) - - (func (export "type-first-i32") (result i32) - (call_indirect (type $over-i32) (i32.const 32) (i32.const 4)) - ) - (func (export "type-first-i64") (result i64) - (call_indirect (type $over-i64) (i64.const 64) (i32.const 5)) - ) - (func (export "type-first-f32") (result f32) - (call_indirect (type $over-f32) (f32.const 1.32) (i32.const 6)) - ) - (func (export "type-first-f64") (result f64) - (call_indirect (type $over-f64) (f64.const 1.64) (i32.const 7)) - ) - - (func (export "type-second-i32") (result i32) - (call_indirect (type $f32-i32) (f32.const 32.1) (i32.const 32) (i32.const 8)) - ) - (func (export "type-second-i64") (result i64) - (call_indirect (type $i32-i64) (i32.const 32) (i64.const 64) (i32.const 9)) - ) - (func (export "type-second-f32") (result f32) - (call_indirect (type $f64-f32) (f64.const 64) (f32.const 32) (i32.const 10)) - ) - (func (export "type-second-f64") (result f64) - (call_indirect (type $i64-f64) (i64.const 64) (f64.const 64.1) (i32.const 11)) - ) - - ;; Dispatch - - (func (export "dispatch") (param i32 i64) (result i64) - (call_indirect (type $over-i64) (get_local 1) (get_local 0)) - ) - - (func (export "dispatch-structural") (param i32) (result i64) - (call_indirect (type $over-i64-duplicate) (i64.const 9) (get_local 0)) - ) - - ;; Recursion - - (func $fac (export "fac") (type $over-i64) - (if (result i64) (i64.eqz (get_local 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local 0) - (call_indirect (type $over-i64) - (i64.sub (get_local 0) (i64.const 1)) - (i32.const 12) - ) - ) - ) - ) - ) - - (func $fib (export "fib") (type $over-i64) - (if (result i64) (i64.le_u (get_local 0) (i64.const 1)) - (then (i64.const 1)) - (else - (i64.add - (call_indirect (type $over-i64) - (i64.sub (get_local 0) (i64.const 2)) - (i32.const 13) - ) - (call_indirect (type $over-i64) - (i64.sub (get_local 0) (i64.const 1)) - (i32.const 13) - ) - ) - ) - ) - ) - - (func $even (export "even") (param i32) (result i32) - (if (result i32) (i32.eqz (get_local 0)) - (then (i32.const 44)) - (else - (call_indirect (type $over-i32) - (i32.sub (get_local 0) (i32.const 1)) - (i32.const 15) - ) - ) - ) - ) - (func $odd (export "odd") (param i32) (result i32) - (if (result i32) (i32.eqz (get_local 0)) - (then (i32.const 99)) - (else - (call_indirect (type $over-i32) - (i32.sub (get_local 0) (i32.const 1)) - (i32.const 14) - ) - ) - ) - ) - - ;; Stack exhaustion - - ;; Implementations are required to have every call consume some abstract - ;; resource towards exhausting some abstract finite limit, such that - ;; infinitely recursive test cases reliably trap in finite time. This is - ;; because otherwise applications could come to depend on it on those - ;; implementations and be incompatible with implementations that don't do - ;; it (or don't do it under the same circumstances). - - (func $runaway (export "runaway") (call_indirect (type $proc) (i32.const 16))) - - (func $mutual-runaway1 (export "mutual-runaway") (call_indirect (type $proc) (i32.const 18))) - (func $mutual-runaway2 (call_indirect (type $proc) (i32.const 17))) -) - -(assert_return (invoke "type-i32") (i32.const 0x132)) -(assert_return (invoke "type-i64") (i64.const 0x164)) -(assert_return (invoke "type-f32") (f32.const 0xf32)) -(assert_return (invoke "type-f64") (f64.const 0xf64)) - -(assert_return (invoke "type-index") (i64.const 100)) - -(assert_return (invoke "type-first-i32") (i32.const 32)) -(assert_return (invoke "type-first-i64") (i64.const 64)) -(assert_return (invoke "type-first-f32") (f32.const 1.32)) -(assert_return (invoke "type-first-f64") (f64.const 1.64)) - -(assert_return (invoke "type-second-i32") (i32.const 32)) -(assert_return (invoke "type-second-i64") (i64.const 64)) -(assert_return (invoke "type-second-f32") (f32.const 32)) -(assert_return (invoke "type-second-f64") (f64.const 64.1)) - -(assert_return (invoke "dispatch" (i32.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "dispatch" (i32.const 5) (i64.const 5)) (i64.const 5)) -(assert_return (invoke "dispatch" (i32.const 12) (i64.const 5)) (i64.const 120)) -(assert_return (invoke "dispatch" (i32.const 13) (i64.const 5)) (i64.const 8)) -(assert_return (invoke "dispatch" (i32.const 20) (i64.const 2)) (i64.const 2)) -(assert_trap (invoke "dispatch" (i32.const 0) (i64.const 2)) "indirect call type mismatch") -(assert_trap (invoke "dispatch" (i32.const 15) (i64.const 2)) "indirect call type mismatch") -(assert_trap (invoke "dispatch" (i32.const 23) (i64.const 2)) "undefined element") -(assert_trap (invoke "dispatch" (i32.const -1) (i64.const 2)) "undefined element") -(assert_trap (invoke "dispatch" (i32.const 1213432423) (i64.const 2)) "undefined element") - -(assert_return (invoke "dispatch-structural" (i32.const 5)) (i64.const 9)) -(assert_return (invoke "dispatch-structural" (i32.const 5)) (i64.const 9)) -(assert_return (invoke "dispatch-structural" (i32.const 12)) (i64.const 362880)) -(assert_return (invoke "dispatch-structural" (i32.const 20)) (i64.const 9)) -(assert_trap (invoke "dispatch-structural" (i32.const 11)) "indirect call type mismatch") -(assert_trap (invoke "dispatch-structural" (i32.const 22)) "indirect call type mismatch") - -(assert_return (invoke "fac" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fac" (i64.const 5)) (i64.const 120)) -(assert_return (invoke "fac" (i64.const 25)) (i64.const 7034535277573963776)) - -(assert_return (invoke "fib" (i64.const 0)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 1)) (i64.const 1)) -(assert_return (invoke "fib" (i64.const 2)) (i64.const 2)) -(assert_return (invoke "fib" (i64.const 5)) (i64.const 8)) -(assert_return (invoke "fib" (i64.const 20)) (i64.const 10946)) - -(assert_return (invoke "even" (i32.const 0)) (i32.const 44)) -(assert_return (invoke "even" (i32.const 1)) (i32.const 99)) -(assert_return (invoke "even" (i32.const 100)) (i32.const 44)) -(assert_return (invoke "even" (i32.const 77)) (i32.const 99)) -(assert_return (invoke "odd" (i32.const 0)) (i32.const 99)) -(assert_return (invoke "odd" (i32.const 1)) (i32.const 44)) -(assert_return (invoke "odd" (i32.const 200)) (i32.const 99)) -(assert_return (invoke "odd" (i32.const 77)) (i32.const 44)) - -(assert_exhaustion (invoke "runaway") "call stack exhausted") -(assert_exhaustion (invoke "mutual-runaway") "call stack exhausted") - - -;; Invalid syntax - -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (result i32) (param i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (param i32) (type $sig) (result i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (param i32) (result i32) (type $sig)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (result i32) (type $sig) (param i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (result i32) (param i32) (type $sig)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (result i32) (param i32) (i32.const 0) (i32.const 0))" - ")" - ) - "unexpected token" -) - -(assert_malformed - (module quote - "(table 0 anyfunc)" - "(func (call_indirect (param $x i32) (i32.const 0) (i32.const 0)))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (result i32) (i32.const 0))" - ")" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (result i32) (i32.const 0))" - ")" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(table 0 anyfunc)" - "(func" - " (call_indirect (type $sig) (param i32) (i32.const 0) (i32.const 0))" - ")" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32 i32) (result i32)))" - "(table 0 anyfunc)" - "(func (result i32)" - " (call_indirect (type $sig) (param i32) (result i32)" - " (i32.const 0) (i32.const 0)" - " )" - ")" - ) - "inline function type" -) - -;; Invalid typing - -(assert_invalid - (module - (type (func)) - (func $no-table (call_indirect (type 0) (i32.const 0))) - ) - "unknown table" -) - -(assert_invalid - (module - (type (func)) - (table 0 anyfunc) - (func $type-void-vs-num (i32.eqz (call_indirect (type 0) (i32.const 0)))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (result i64))) - (table 0 anyfunc) - (func $type-num-vs-num (i32.eqz (call_indirect (type 0) (i32.const 0)))) - ) - "type mismatch" -) - -(assert_invalid - (module - (type (func (param i32))) - (table 0 anyfunc) - (func $arity-0-vs-1 (call_indirect (type 0) (i32.const 0))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param f64 i32))) - (table 0 anyfunc) - (func $arity-0-vs-2 (call_indirect (type 0) (i32.const 0))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func)) - (table 0 anyfunc) - (func $arity-1-vs-0 (call_indirect (type 0) (i32.const 1) (i32.const 0))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func)) - (table 0 anyfunc) - (func $arity-2-vs-0 - (call_indirect (type 0) (f64.const 2) (i32.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) - -(assert_invalid - (module - (type (func (param i32))) - (table 0 anyfunc) - (func $type-func-void-vs-i32 (call_indirect (type 0) (i32.const 1) (nop))) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param i32))) - (table 0 anyfunc) - (func $type-func-num-vs-i32 (call_indirect (type 0) (i32.const 0) (i64.const 1))) - ) - "type mismatch" -) - -(assert_invalid - (module - (type (func (param i32 i32))) - (table 0 anyfunc) - (func $type-first-void-vs-num - (call_indirect (type 0) (nop) (i32.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param i32 i32))) - (table 0 anyfunc) - (func $type-second-void-vs-num - (call_indirect (type 0) (i32.const 1) (nop) (i32.const 0)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param i32 f64))) - (table 0 anyfunc) - (func $type-first-num-vs-num - (call_indirect (type 0) (f64.const 1) (i32.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) -(assert_invalid - (module - (type (func (param f64 i32))) - (table 0 anyfunc) - (func $type-second-num-vs-num - (call_indirect (type 0) (i32.const 1) (f64.const 1) (i32.const 0)) - ) - ) - "type mismatch" -) - - -;; Unbound type - -(assert_invalid - (module - (table 0 anyfunc) - (func $unbound-type (call_indirect (type 1) (i32.const 0))) - ) - "unknown type" -) -(assert_invalid - (module - (table 0 anyfunc) - (func $large-type (call_indirect (type 1012321300) (i32.const 0))) - ) - "unknown type" -) - - -;; Unbound function in table - -(assert_invalid - (module (table anyfunc (elem 0 0))) - "unknown function 0" -) diff --git a/tests/samples/comments.wast b/tests/samples/comments.wast deleted file mode 100644 index 90a64b42d9ec854f6522e940c0466eb6c1ca6de9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmcDvRtQNgE>TF%&&^HED^Vz}%qvN(;Nr5jhKhig)-b@urJ$gofF!4Z#L3N1Da}bm zNNOUOT-Mf_T-Fdm0nAj;u;${@0EuvEz^t;?1PehehVsxPVJ-pDVC5Qc05X_M!&(yo zAVxsVQ$ppTbHRLTYX!$(XHQQB0|Q+{Hys6YH!clp21X`k7FITP4o)s^9$r3v0YM>Q z5m7O52}vnw8Cf~`dWgXushNl8rz(UW-cwXulAMv62N8ZhW7hjgD 8000 0000 -(assert_return (invoke "i32.trunc_u_f32" (f32.const 4294967040.0)) (i32.const -256)) -(assert_return (invoke "i32.trunc_u_f32" (f32.const -0x1.ccccccp-1)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f32" (f32.const -0x1.fffffep-1)) (i32.const 0)) -(assert_trap (invoke "i32.trunc_u_f32" (f32.const 4294967296.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -1.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const nan:0x200000)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f32" (f32.const -nan:0x200000)) "invalid conversion to integer") - -(assert_return (invoke "i32.trunc_s_f64" (f64.const 0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 1.0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 0x1.199999999999ap+0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 1.5)) (i32.const 1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -1.0)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -0x1.199999999999ap+0)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -1.5)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -1.9)) (i32.const -1)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -2.0)) (i32.const -2)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const 2147483647.0)) (i32.const 2147483647)) -(assert_return (invoke "i32.trunc_s_f64" (f64.const -2147483648.0)) (i32.const -2147483648)) -(assert_trap (invoke "i32.trunc_s_f64" (f64.const 2147483648.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -2147483649.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_s_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "i32.trunc_u_f64" (f64.const 0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0.0)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1.0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 0x1.199999999999ap+0)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1.5)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1.9)) (i32.const 1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 2.0)) (i32.const 2)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 2147483648)) (i32.const -2147483648)) ;; 0x1.00000p+31 -> 8000 0000 -(assert_return (invoke "i32.trunc_u_f64" (f64.const 4294967295.0)) (i32.const -1)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0x1.ccccccccccccdp-1)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const -0x1.fffffffffffffp-1)) (i32.const 0)) -(assert_return (invoke "i32.trunc_u_f64" (f64.const 1e8)) (i32.const 100000000)) -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 4294967296.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -1.0)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 1e16)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 1e30)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const 9223372036854775808)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i32.trunc_u_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_s_f32" (f32.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 0x1.19999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -1.0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -0x1.19999ap+0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -1.5)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -1.9)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -2.0)) (i64.const -2)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const 4294967296)) (i64.const 4294967296)) ;; 0x1.00000p+32 -> 1 0000 0000 -(assert_return (invoke "i64.trunc_s_f32" (f32.const -4294967296)) (i64.const -4294967296)) ;; -0x1.00000p+32 -> ffff ffff 0000 0000 -(assert_return (invoke "i64.trunc_s_f32" (f32.const 9223371487098961920.0)) (i64.const 9223371487098961920)) -(assert_return (invoke "i64.trunc_s_f32" (f32.const -9223372036854775808.0)) (i64.const -9223372036854775808)) -(assert_trap (invoke "i64.trunc_s_f32" (f32.const 9223372036854775808.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -9223373136366403584.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const nan:0x200000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f32" (f32.const -nan:0x200000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_u_f32" (f32.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0x1p-149)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 0x1.19999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 4294967296)) (i64.const 4294967296)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const 18446742974197923840.0)) (i64.const -1099511627776)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0x1.ccccccp-1)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f32" (f32.const -0x1.fffffep-1)) (i64.const 0)) -(assert_trap (invoke "i64.trunc_u_f32" (f32.const 18446744073709551616.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -1.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const nan:0x200000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f32" (f32.const -nan:0x200000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_s_f64" (f64.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 0x1.199999999999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -1.0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -0x1.199999999999ap+0)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -1.5)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -1.9)) (i64.const -1)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -2.0)) (i64.const -2)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const 4294967296)) (i64.const 4294967296)) ;; 0x1.00000p+32 -> 1 0000 0000 -(assert_return (invoke "i64.trunc_s_f64" (f64.const -4294967296)) (i64.const -4294967296)) ;; -0x1.00000p+32 -> ffff ffff 0000 0000 -(assert_return (invoke "i64.trunc_s_f64" (f64.const 9223372036854774784.0)) (i64.const 9223372036854774784)) -(assert_return (invoke "i64.trunc_s_f64" (f64.const -9223372036854775808.0)) (i64.const -9223372036854775808)) -(assert_trap (invoke "i64.trunc_s_f64" (f64.const 9223372036854775808.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -9223372036854777856.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_s_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "i64.trunc_u_f64" (f64.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0.0)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0x0.0000000000001p-1022)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1.0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 0x1.199999999999ap+0)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1.5)) (i64.const 1)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 4294967295)) (i64.const 0xffffffff)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 4294967296)) (i64.const 0x100000000)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 18446744073709549568.0)) (i64.const -2048)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0x1.ccccccccccccdp-1)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const -0x1.fffffffffffffp-1)) (i64.const 0)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1e8)) (i64.const 100000000)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 1e16)) (i64.const 10000000000000000)) -(assert_return (invoke "i64.trunc_u_f64" (f64.const 9223372036854775808)) (i64.const -9223372036854775808)) -(assert_trap (invoke "i64.trunc_u_f64" (f64.const 18446744073709551616.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -1.0)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -inf)) "integer overflow") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const nan:0x4000000000000)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -nan)) "invalid conversion to integer") -(assert_trap (invoke "i64.trunc_u_f64" (f64.const -nan:0x4000000000000)) "invalid conversion to integer") - -(assert_return (invoke "f32.convert_s_i32" (i32.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -1)) (f32.const -1.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 2147483647)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -2147483648)) (f32.const -2147483648)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 1234567890)) (f32.const 0x1.26580cp+30)) -;; Test rounding directions. -(assert_return (invoke "f32.convert_s_i32" (i32.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -16777217)) (f32.const -16777216.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const 16777219)) (f32.const 16777220.0)) -(assert_return (invoke "f32.convert_s_i32" (i32.const -16777219)) (f32.const -16777220.0)) - -(assert_return (invoke "f32.convert_s_i64" (i64.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -1)) (f32.const -1.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 9223372036854775807)) (f32.const 9223372036854775807)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -9223372036854775808)) (f32.const -9223372036854775808)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 314159265358979)) (f32.const 0x1.1db9e8p+48)) ;; PI -;; Test rounding directions. -(assert_return (invoke "f32.convert_s_i64" (i64.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -16777217)) (f32.const -16777216.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const 16777219)) (f32.const 16777220.0)) -(assert_return (invoke "f32.convert_s_i64" (i64.const -16777219)) (f32.const -16777220.0)) - -(assert_return (invoke "f64.convert_s_i32" (i32.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_s_i32" (i32.const -1)) (f64.const -1.0)) -(assert_return (invoke "f64.convert_s_i32" (i32.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_s_i32" (i32.const 2147483647)) (f64.const 2147483647)) -(assert_return (invoke "f64.convert_s_i32" (i32.const -2147483648)) (f64.const -2147483648)) -(assert_return (invoke "f64.convert_s_i32" (i32.const 987654321)) (f64.const 987654321)) - -(assert_return (invoke "f64.convert_s_i64" (i64.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -1)) (f64.const -1.0)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 9223372036854775807)) (f64.const 9223372036854775807)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -9223372036854775808)) (f64.const -9223372036854775808)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 4669201609102990)) (f64.const 4669201609102990)) ;; Feigenbaum -;; Test rounding directions. -(assert_return (invoke "f64.convert_s_i64" (i64.const 9007199254740993)) (f64.const 9007199254740992)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -9007199254740993)) (f64.const -9007199254740992)) -(assert_return (invoke "f64.convert_s_i64" (i64.const 9007199254740995)) (f64.const 9007199254740996)) -(assert_return (invoke "f64.convert_s_i64" (i64.const -9007199254740995)) (f64.const -9007199254740996)) - -(assert_return (invoke "f32.convert_u_i32" (i32.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 2147483647)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_u_i32" (i32.const -2147483648)) (f32.const 2147483648)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x12345678)) (f32.const 0x1.234568p+28)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xffffffff)) (f32.const 4294967296.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x80000080)) (f32.const 0x1.000000p+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x80000081)) (f32.const 0x1.000002p+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0x80000082)) (f32.const 0x1.000002p+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xfffffe80)) (f32.const 0x1.fffffcp+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xfffffe81)) (f32.const 0x1.fffffep+31)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 0xfffffe82)) (f32.const 0x1.fffffep+31)) -;; Test rounding directions. -(assert_return (invoke "f32.convert_u_i32" (i32.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_u_i32" (i32.const 16777219)) (f32.const 16777220.0)) - -(assert_return (invoke "f32.convert_u_i64" (i64.const 1)) (f32.const 1.0)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 9223372036854775807)) (f32.const 9223372036854775807)) -(assert_return (invoke "f32.convert_u_i64" (i64.const -9223372036854775808)) (f32.const 9223372036854775808)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 0xffffffffffffffff)) (f32.const 18446744073709551616.0)) -;; Test rounding directions. -(assert_return (invoke "f32.convert_u_i64" (i64.const 16777217)) (f32.const 16777216.0)) -(assert_return (invoke "f32.convert_u_i64" (i64.const 16777219)) (f32.const 16777220.0)) - -(assert_return (invoke "f64.convert_u_i32" (i32.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_u_i32" (i32.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_u_i32" (i32.const 2147483647)) (f64.const 2147483647)) -(assert_return (invoke "f64.convert_u_i32" (i32.const -2147483648)) (f64.const 2147483648)) -(assert_return (invoke "f64.convert_u_i32" (i32.const 0xffffffff)) (f64.const 4294967295.0)) - -(assert_return (invoke "f64.convert_u_i64" (i64.const 1)) (f64.const 1.0)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 9223372036854775807)) (f64.const 9223372036854775807)) -(assert_return (invoke "f64.convert_u_i64" (i64.const -9223372036854775808)) (f64.const 9223372036854775808)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xffffffffffffffff)) (f64.const 18446744073709551616.0)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0x8000000000000400)) (f64.const 0x1.0000000000000p+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0x8000000000000401)) (f64.const 0x1.0000000000001p+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0x8000000000000402)) (f64.const 0x1.0000000000001p+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xfffffffffffff400)) (f64.const 0x1.ffffffffffffep+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xfffffffffffff401)) (f64.const 0x1.fffffffffffffp+63)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 0xfffffffffffff402)) (f64.const 0x1.fffffffffffffp+63)) -;; Test rounding directions. -(assert_return (invoke "f64.convert_u_i64" (i64.const 9007199254740993)) (f64.const 9007199254740992)) -(assert_return (invoke "f64.convert_u_i64" (i64.const 9007199254740995)) (f64.const 9007199254740996)) - -(assert_return (invoke "f64.promote_f32" (f32.const 0.0)) (f64.const 0.0)) -(assert_return (invoke "f64.promote_f32" (f32.const -0.0)) (f64.const -0.0)) -(assert_return (invoke "f64.promote_f32" (f32.const 0x1p-149)) (f64.const 0x1p-149)) -(assert_return (invoke "f64.promote_f32" (f32.const -0x1p-149)) (f64.const -0x1p-149)) -(assert_return (invoke "f64.promote_f32" (f32.const 1.0)) (f64.const 1.0)) -(assert_return (invoke "f64.promote_f32" (f32.const -1.0)) (f64.const -1.0)) -(assert_return (invoke "f64.promote_f32" (f32.const -0x1.fffffep+127)) (f64.const -0x1.fffffep+127)) -(assert_return (invoke "f64.promote_f32" (f32.const 0x1.fffffep+127)) (f64.const 0x1.fffffep+127)) -;; Generated randomly by picking a random int and reinterpret it to float. -(assert_return (invoke "f64.promote_f32" (f32.const 0x1p-119)) (f64.const 0x1p-119)) -;; Generated randomly by picking a random float. -(assert_return (invoke "f64.promote_f32" (f32.const 0x1.8f867ep+125)) (f64.const 6.6382536710104395e+37)) -(assert_return (invoke "f64.promote_f32" (f32.const inf)) (f64.const inf)) -(assert_return (invoke "f64.promote_f32" (f32.const -inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "f64.promote_f32" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "f64.promote_f32" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f64.promote_f32" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "f64.promote_f32" (f32.const -nan:0x200000))) - -(assert_return (invoke "f32.demote_f64" (f64.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0.0)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x0.0000000000001p-1022)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x0.0000000000001p-1022)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 1.0)) (f32.const 1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -1.0)) (f32.const -1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffe0000000p-127)) (f32.const 0x1p-126)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffe0000000p-127)) (f32.const -0x1p-126)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffdfffffffp-127)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffdfffffffp-127)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffd0000000p+127)) (f32.const 0x1.fffffcp+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffd0000000p+127)) (f32.const -0x1.fffffcp+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffd0000001p+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffd0000001p+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffefffffffp+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.fffffefffffffp+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.ffffffp+127)) (f32.const inf)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.ffffffp+127)) (f32.const -inf)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1p-119)) (f32.const 0x1p-119)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.8f867ep+125)) (f32.const 0x1.8f867ep+125)) -(assert_return (invoke "f32.demote_f64" (f64.const inf)) (f32.const inf)) -(assert_return (invoke "f32.demote_f64" (f64.const -inf)) (f32.const -inf)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000000000001p+0)) (f32.const 1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.fffffffffffffp-1)) (f32.const 1.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000000p+0)) (f32.const 0x1.000000p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000001p+0)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.000002fffffffp+0)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000030000000p+0)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000050000000p+0)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000000p+24)) (f32.const 0x1.0p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000010000001p+24)) (f32.const 0x1.000002p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.000002fffffffp+24)) (f32.const 0x1.000002p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000030000000p+24)) (f32.const 0x1.000004p+24)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.4eae4f7024c7p+108)) (f32.const 0x1.4eae5p+108)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.a12e71e358685p-113)) (f32.const 0x1.a12e72p-113)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.cb98354d521ffp-127)) (f32.const 0x1.cb9834p-127)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.6972b30cfb562p+1)) (f32.const -0x1.6972b4p+1)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.bedbe4819d4c4p+112)) (f32.const -0x1.bedbe4p+112)) -(assert_return_canonical_nan (invoke "f32.demote_f64" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f32.demote_f64" (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "f32.demote_f64" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "f32.demote_f64" (f64.const -nan:0x4000000000000))) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1p-1022)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1p-1022)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0p-150)) (f32.const 0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.0p-150)) (f32.const -0.0)) -(assert_return (invoke "f32.demote_f64" (f64.const 0x1.0000000000001p-150)) (f32.const 0x1p-149)) -(assert_return (invoke "f32.demote_f64" (f64.const -0x1.0000000000001p-150)) (f32.const -0x1p-149)) - -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0)) (f32.const 0.0)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x80000000)) (f32.const -0.0)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 1)) (f32.const 0x1p-149)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const -1)) (f32.const -nan:0x7fffff)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 123456789)) (f32.const 0x1.b79a2ap-113)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const -2147483647)) (f32.const -0x1p-149)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x7f800000)) (f32.const inf)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0xff800000)) (f32.const -inf)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x7fc00000)) (f32.const nan)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0xffc00000)) (f32.const -nan)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0x7fa00000)) (f32.const nan:0x200000)) -(assert_return (invoke "f32.reinterpret_i32" (i32.const 0xffa00000)) (f32.const -nan:0x200000)) - -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0)) (f64.const 0.0)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const -1)) (f64.const -nan:0xfffffffffffff)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x8000000000000000)) (f64.const -0.0)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 1234567890)) (f64.const 0x0.00000499602d2p-1022)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const -9223372036854775807)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x7ff0000000000000)) (f64.const inf)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0xfff0000000000000)) (f64.const -inf)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x7ff8000000000000)) (f64.const nan)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0xfff8000000000000)) (f64.const -nan)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0x7ff4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return (invoke "f64.reinterpret_i64" (i64.const 0xfff4000000000000)) (f64.const -nan:0x4000000000000)) - -(assert_return (invoke "i32.reinterpret_f32" (f32.const 0.0)) (i32.const 0)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -0.0)) (i32.const 0x80000000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -nan:0x7fffff)) (i32.const -1)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -0x1p-149)) (i32.const 0x80000001)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 1.0)) (i32.const 1065353216)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 3.1415926)) (i32.const 1078530010)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const 0x1.fffffep+127)) (i32.const 2139095039)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -0x1.fffffep+127)) (i32.const -8388609)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const inf)) (i32.const 0x7f800000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -inf)) (i32.const 0xff800000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const nan)) (i32.const 0x7fc00000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -nan)) (i32.const 0xffc00000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const nan:0x200000)) (i32.const 0x7fa00000)) -(assert_return (invoke "i32.reinterpret_f32" (f32.const -nan:0x200000)) (i32.const 0xffa00000)) - -(assert_return (invoke "i64.reinterpret_f64" (f64.const 0.0)) (i64.const 0)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -0.0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 0x0.0000000000001p-1022)) (i64.const 1)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -nan:0xfffffffffffff)) (i64.const -1)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -0x0.0000000000001p-1022)) (i64.const 0x8000000000000001)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 1.0)) (i64.const 4607182418800017408)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 3.14159265358979)) (i64.const 4614256656552045841)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const 0x1.fffffffffffffp+1023)) (i64.const 9218868437227405311)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -0x1.fffffffffffffp+1023)) (i64.const -4503599627370497)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const inf)) (i64.const 0x7ff0000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -inf)) (i64.const 0xfff0000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const nan)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -nan)) (i64.const 0xfff8000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const nan:0x4000000000000)) (i64.const 0x7ff4000000000000)) -(assert_return (invoke "i64.reinterpret_f64" (f64.const -nan:0x4000000000000)) (i64.const 0xfff4000000000000)) diff --git a/tests/samples/custom.wast b/tests/samples/custom.wast deleted file mode 100644 index fb04f2f..0000000 --- a/tests/samples/custom.wast +++ /dev/null @@ -1,120 +0,0 @@ -(module binary - "\00asm" "\01\00\00\00" - "\00\24\10" "a custom section" "this is the payload" - "\00\20\10" "a custom section" "this is payload" - "\00\11\10" "a custom section" "" - "\00\10\00" "" "this is payload" - "\00\01\00" "" "" - "\00\24\10" "\00\00custom sectio\00" "this is the payload" - "\00\24\10" "\ef\bb\bfa custom sect" "this is the payload" - "\00\24\10" "a custom sect\e2\8c\a3" "this is the payload" - "\00\1f\16" "module within a module" "\00asm" "\01\00\00\00" -) - -(module binary - "\00asm" "\01\00\00\00" - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\01\01\00" ;; type section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\02\01\00" ;; import section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\03\01\00" ;; function section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\04\01\00" ;; table section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\05\01\00" ;; memory section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\06\01\00" ;; global section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\07\01\00" ;; export section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\09\01\00" ;; element section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\0a\01\00" ;; code section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" - "\0b\01\00" ;; data section - "\00\0e\06" "custom" "payload" - "\00\0e\06" "custom" "payload" -) - -(module binary - "\00asm" "\01\00\00\00" - "\01\07\01\60\02\7f\7f\01\7f" ;; type section - "\00\1a\06" "custom" "this is the payload" ;; custom section - "\03\02\01\00" ;; function section - "\07\0a\01\06\61\64\64\54\77\6f\00\00" ;; export section - "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section - "\00\1b\07" "custom2" "this is the payload" ;; custom section -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\00" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\00\00\05\01\00\07\00\00" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\26\10" "a custom section" "this is the payload" - ) - "unexpected end" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\25\10" "a custom section" "this is the payload" - "\00\24\10" "a custom section" "this is the payload" - ) - "invalid section id" -) - -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\01\07\01\60\02\7f\7f\01\7f" ;; type section - "\00\25\10" "a custom section" "this is the payload" ;; invalid length! - "\03\02\01\00" ;; function section - "\0a\09\01\07\00\20\00\20\01\6a\0b" ;; code section - "\00\1b\07" "custom2" "this is the payload" ;; custom section - ) - "function and code section have inconsistent lengths" -) - -;; Test concatenated modules. -(assert_malformed - (module binary - "\00asm\01\00\00\00" - "\00asm\01\00\00\00" - ) - "length out of bounds" -) diff --git a/tests/samples/data.wast b/tests/samples/data.wast deleted file mode 100644 index 46b9543..0000000 --- a/tests/samples/data.wast +++ /dev/null @@ -1,335 +0,0 @@ -;; Test the data section - -;; Syntax - -(module - (memory $m 1) - (data (i32.const 0)) - (data (i32.const 1) "a" "" "bcd") - (data (offset (i32.const 0))) - (data (offset (i32.const 0)) "" "a" "bc" "") - (data 0 (i32.const 0)) - (data 0x0 (i32.const 1) "a" "" "bcd") - (data 0x000 (offset (i32.const 0))) - (data 0 (offset (i32.const 0)) "" "a" "bc" "") - (data $m (i32.const 0)) - (data $m (i32.const 1) "a" "" "bcd") - (data $m (offset (i32.const 0))) - (data $m (offset (i32.const 0)) "" "a" "bc" "") -) - -;; Basic use - -(module - (memory 1) - (data (i32.const 0) "a") -) -(module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0) "a") -) - -(module - (memory 1) - (data (i32.const 0) "a") - (data (i32.const 3) "b") - (data (i32.const 100) "cde") - (data (i32.const 5) "x") - (data (i32.const 3) "c") -) -(module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0) "a") - (data (i32.const 1) "b") - (data (i32.const 2) "cde") - (data (i32.const 3) "f") - (data (i32.const 2) "g") - (data (i32.const 1) "h") -) - -(module - (global (import "spectest" "global_i32") i32) - (memory 1) - (data (get_global 0) "a") -) -(module - (global (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 1)) - (data (get_global 0) "a") -) - -(module - (global $g (import "spectest" "global_i32") i32) - (memory 1) - (data (get_global $g) "a") -) -(module - (global $g (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 1)) - (data (get_global $g) "a") -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (module (memory 1) (data (get_global 0) "a") (global i32 (i32.const 0))) -;; (module (memory 1) (data (get_global $g) "a") (global $g i32 (i32.const 0))) - -;; Corner cases - -(module - (memory 1) - (data (i32.const 0) "a") - (data (i32.const 0xffff) "b") -) -(module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0) "a") - (data (i32.const 0xffff) "b") -) - -(module - (memory 2) - (data (i32.const 0x1_ffff) "a") -) - -(module - (memory 0) - (data (i32.const 0)) -) -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 0)) -) - -(module - (memory 0 0) - (data (i32.const 0)) -) - -(module - (memory 1) - (data (i32.const 0x1_0000) "") -) - -(module - (memory 0) - (data (i32.const 0) "" "") -) -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 0) "" "") -) - -(module - (memory 0 0) - (data (i32.const 0) "" "") -) - -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 0) "a") -) - -(module - (import "spectest" "memory" (memory 0 3)) - (data (i32.const 0) "a") -) - -(module - (global (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 0)) - (data (get_global 0) "a") -) - -(module - (global (import "spectest" "global_i32") i32) - (import "spectest" "memory" (memory 0 3)) - (data (get_global 0) "a") -) - -(module - (import "spectest" "memory" (memory 0)) - (data (i32.const 1) "a") -) - -(module - (import "spectest" "memory" (memory 0 3)) - (data (i32.const 1) "a") -) - -;; Invalid bounds for data - -(assert_unlinkable - (module - (memory 0) - (data (i32.const 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0 0) - (data (i32.const 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0 1) - (data (i32.const 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0) - (data (i32.const 1)) - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 0 1) - (data (i32.const 1)) - ) - "data segment does not fit" -) - -;; This seems to cause a time-out on Travis. -(;assert_unlinkable - (module - (memory 0x10000) - (data (i32.const 0xffffffff) "ab") - ) - "" ;; either out of memory or segment does not fit -;) - -(assert_unlinkable - (module - (global (import "spectest" "global_i32") i32) - (memory 0) - (data (get_global 0) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 1 2) - (data (i32.const 0x1_0000) "a") - ) - "data segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "memory" (memory 1)) - (data (i32.const 0x1_0000) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 2) - (data (i32.const 0x2_0000) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 2 3) - (data (i32.const 0x2_0000) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 1) - (data (i32.const -1) "a") - ) - "data segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "memory" (memory 1)) - (data (i32.const -1) "a") - ) - "data segment does not fit" -) - -(assert_unlinkable - (module - (memory 2) - (data (i32.const -100) "a") - ) - "data segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "memory" (memory 1)) - (data (i32.const -100) "a") - ) - "data segment does not fit" -) - -;; Data without memory - -(assert_invalid - (module - (data (i32.const 0) "") - ) - "unknown memory 0" -) - -;; Invalid offsets - -(assert_invalid - (module - (memory 1) - (data (i64.const 0)) - ) - "type mismatch" -) - -(assert_invalid - (module - (memory 1) - (data (i32.ctz (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (memory 1) - (data (nop)) - ) - "constant expression required" -) - -(assert_invalid - (module - (memory 1) - (data (offset (nop) (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (memory 1) - (data (offset (i32.const 0) (nop))) - ) - "constant expression required" -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (get_global $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) diff --git a/tests/samples/elem.wast b/tests/samples/elem.wast deleted file mode 100644 index 3c204c0..0000000 --- a/tests/samples/elem.wast +++ /dev/null @@ -1,381 +0,0 @@ -;; Test the element section - -;; Syntax -(module - (table $t 10 anyfunc) - (func $f) - (elem (i32.const 0)) - (elem (i32.const 0) $f $f) - (elem (offset (i32.const 0))) - (elem (offset (i32.const 0)) $f $f) - (elem 0 (i32.const 0)) - (elem 0x0 (i32.const 0) $f $f) - (elem 0x000 (offset (i32.const 0))) - (elem 0 (offset (i32.const 0)) $f $f) - (elem $t (i32.const 0)) - (elem $t (i32.const 0) $f $f) - (elem $t (offset (i32.const 0))) - (elem $t (offset (i32.const 0)) $f $f) -) - -;; Basic use - -(module - (table 10 anyfunc) - (func $f) - (elem (i32.const 0) $f) -) -(module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (table 10 anyfunc) - (func $f) - (elem (i32.const 0) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 5) $f) - (elem (i32.const 3) $f) -) -(module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 9) $f) - (elem (i32.const 3) $f) - (elem (i32.const 7) $f) - (elem (i32.const 3) $f) - (elem (i32.const 5) $f) -) - -(module - (global (import "spectest" "global_i32") i32) - (table 1000 anyfunc) - (func $f) - (elem (get_global 0) $f) -) - -(module - (global $g (import "spectest" "global_i32") i32) - (table 1000 anyfunc) - (func $f) - (elem (get_global $g) $f) -) - -(module - (type $out-i32 (func (result i32))) - (table 10 anyfunc) - (elem (i32.const 7) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-7") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 7)) - ) - (func (export "call-9") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-7") (i32.const 65)) -(assert_return (invoke "call-9") (i32.const 66)) - -;; Corner cases - -(module - (table 10 anyfunc) - (func $f) - (elem (i32.const 9) $f) -) -(module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 9) $f) -) - -(module - (table 0 anyfunc) - (elem (i32.const 0)) -) -(module - (import "spectest" "table" (table 0 anyfunc)) - (elem (i32.const 0)) -) - -(module - (table 0 0 anyfunc) - (elem (i32.const 0)) -) - -(module - (table 20 anyfunc) - (elem (i32.const 20)) -) - -(module - (import "spectest" "table" (table 0 anyfunc)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 100 anyfunc)) - (func $f) - (elem (i32.const 0) $f) -) - -(module - (import "spectest" "table" (table 0 anyfunc)) - (func $f) - (elem (i32.const 1) $f) -) - -(module - (import "spectest" "table" (table 0 30 anyfunc)) - (func $f) - (elem (i32.const 1) $f) -) - -;; Invalid bounds for elements - -(assert_unlinkable - (module - (table 0 anyfunc) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 0 anyfunc) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 1 anyfunc) - (func $f) - (elem (i32.const 0) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 0 anyfunc) - (elem (i32.const 1)) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 anyfunc) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 20 anyfunc) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const 10) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 anyfunc) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const -1) $f) - ) - "elements segment does not fit" -) - -(assert_unlinkable - (module - (table 10 anyfunc) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) -(assert_unlinkable - (module - (import "spectest" "table" (table 10 anyfunc)) - (func $f) - (elem (i32.const -10) $f) - ) - "elements segment does not fit" -) - -;; Element without table - -(assert_invalid - (module - (func $f) - (elem (i32.const 0) $f) - ) - "unknown table 0" -) - -;; Invalid offsets - -(assert_invalid - (module - (table 1 anyfunc) - (elem (i64.const 0)) - ) - "type mismatch" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (i32.ctz (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (nop)) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (offset (nop) (i32.const 0))) - ) - "constant expression required" -) - -(assert_invalid - (module - (table 1 anyfunc) - (elem (offset (i32.const 0) (nop))) - ) - "constant expression required" -) - -;; Use of internal globals in constant expressions is not allowed in MVP. -;; (assert_invalid -;; (module (memory 1) (data (get_global $g)) (global $g (mut i32) (i32.const 0))) -;; "constant expression required" -;; ) - -;; Two elements target the same slot - -(module - (type $out-i32 (func (result i32))) - (table 10 anyfunc) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten") (i32.const 66)) - -(module - (type $out-i32 (func (result i32))) - (import "spectest" "table" (table 10 anyfunc)) - (elem (i32.const 9) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-overwritten-element") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) -(assert_return (invoke "call-overwritten-element") (i32.const 66)) - -;; Element sections across multiple modules change the same table - -(module $module1 - (type $out-i32 (func (result i32))) - (table (export "shared-table") 10 anyfunc) - (elem (i32.const 8) $const-i32-a) - (elem (i32.const 9) $const-i32-b) - (func $const-i32-a (type $out-i32) (i32.const 65)) - (func $const-i32-b (type $out-i32) (i32.const 66)) - (func (export "call-7") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 7)) - ) - (func (export "call-8") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 8)) - ) - (func (export "call-9") (type $out-i32) - (call_indirect (type $out-i32) (i32.const 9)) - ) -) - -(register "module1" $module1) - -(assert_trap (invoke $module1 "call-7") "uninitialized element 7") -(assert_return (invoke $module1 "call-8") (i32.const 65)) -(assert_return (invoke $module1 "call-9") (i32.const 66)) - -(module $module2 - (type $out-i32 (func (result i32))) - (import "module1" "shared-table" (table 10 anyfunc)) - (elem (i32.const 7) $const-i32-c) - (elem (i32.const 8) $const-i32-d) - (func $const-i32-c (type $out-i32) (i32.const 67)) - (func $const-i32-d (type $out-i32) (i32.const 68)) -) - -(assert_return (invoke $module1 "call-7") (i32.const 67)) -(assert_return (invoke $module1 "call-8") (i32.const 68)) -(assert_return (invoke $module1 "call-9") (i32.const 66)) - -(module $module3 - (type $out-i32 (func (result i32))) - (import "module1" "shared-table" (table 10 anyfunc)) - (elem (i32.const 8) $const-i32-e) - (elem (i32.const 9) $const-i32-f) - (func $const-i32-e (type $out-i32) (i32.const 69)) - (func $const-i32-f (type $out-i32) (i32.const 70)) -) - -(assert_return (invoke $module1 "call-7") (i32.const 67)) -(assert_return (invoke $module1 "call-8") (i32.const 69)) -(assert_return (invoke $module1 "call-9") (i32.const 70)) diff --git a/tests/samples/endianess.wast b/tests/samples/endianess.wast deleted file mode 100644 index 4e52741..0000000 --- a/tests/samples/endianess.wast +++ /dev/null @@ -1,131 +0,0 @@ -(module - (memory 1) - - ;; Stores an i16 value in little-endian-format - (func $i16_store_little (param $address i32) (param $value i32) - (i32.store8 (get_local $address) (get_local $value)) - (i32.store8 (i32.add (get_local $address) (i32.const 1)) (i32.shr_u (get_local $value) (i32.const 8))) - ) - - ;; Stores an i32 value in little-endian format - (func $i32_store_little (param $address i32) (param $value i32) - (call $i16_store_little (get_local $address) (get_local $value)) - (call $i16_store_little (i32.add (get_local $address) (i32.const 2)) (i32.shr_u (get_local $value) (i32.const 16))) - ) - - ;; Stores an i64 value in little-endian format - (func $i64_store_little (param $address i32) (param $value i64) - (call $i32_store_little (get_local $address) (i32.wrap/i64 (get_local $value))) - (call $i32_store_little (i32.add (get_local $address) (i32.const 4)) (i32.wrap/i64 (i64.shr_u (get_local $value) (i64.const 32)))) - ) - - ;; Loads an i16 value in little-endian format - (func $i16_load_little (param $address i32) (result i32) - (i32.or - (i32.load8_u (get_local $address)) - (i32.shl (i32.load8_u (i32.add (get_local $address) (i32.const 1))) (i32.const 8)) - ) - ) - - ;; Loads an i32 value in little-endian format - (func $i32_load_little (param $address i32) (result i32) - (i32.or - (call $i16_load_little (get_local $address)) - (i32.shl (call $i16_load_little (i32.add (get_local $address) (i32.const 2))) (i32.const 16)) - ) - ) - - ;; Loads an i64 value in little-endian format - (func $i64_load_little (param $address i32) (result i64) - (i64.or - (i64.extend_u/i32 (call $i32_load_little (get_local $address))) - (i64.shl (i64.extend_u/i32 (call $i32_load_little (i32.add (get_local $address) (i32.const 4)))) (i64.const 32)) - ) - ) - - (func (export "i32_load16_s") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_s (i32.const 0)) - ) - - (func (export "i32_load16_u") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_u (i32.const 0)) - ) - - (func (export "i32_load") (param $value i32) (result i32) - (call $i32_store_little (i32.const 0) (get_local $value)) - (i32.load (i32.const 0)) - ) - - (func (export "i64_load16_s") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_s (i32.const 0)) - ) - - (func (export "i64_load16_u") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_u (i32.const 0)) - ) - - (func (export "i64_load32_s") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_s (i32.const 0)) - ) - - (func (export "i64_load32_u") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_u (i32.const 0)) - ) - - (func (export "i64_load") (param $value i64) (result i64) - (call $i64_store_little (i32.const 0) (get_local $value)) - (i64.load (i32.const 0)) - ) - - (func (export "f32_load") (param $value f32) (result f32) - (call $i32_store_little (i32.const 0) (i32.reinterpret/f32 (get_local $value))) - (f32.load (i32.const 0)) - ) - - (func (export "f64_load") (param $value f64) (result f64) - (call $i64_store_little (i32.const 0) (i64.reinterpret/f64 (get_local $value))) - (f64.load (i32.const 0)) - ) - - - (func (export "i32_store16") (param $value i32) (result i32) - (i32.store16 (i32.const 0) (get_local $value)) - (call $i16_load_little (i32.const 0)) - ) - - (func (export "i32_store") (param $value i32) (result i32) - (i32.store (i32.const 0) (get_local $value)) - (call $i32_load_little (i32.const 0)) - ) - - (func (export "i64_store16") (param $value i64) (result i64) - (i64.store16 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i16_load_little (i32.const 0))) - ) - - (func (export "i64_store32") (param $value i64) (result i64) - (i64.store32 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "i64_store") (param $value i64) (result i64) - (i64.store (i32.const 0) (get_local $value)) - (call $i64_load_little (i32.const 0)) - ) - - (func (export "f32_store") (param $value f32) (result f32) - (f32.store (i32.const 0) (get_local $value)) - (f32.reinterpret/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "f64_store") (param $value f64) (result f64) - (f64.store (i32.const 0) (get_local $value)) - (f64.reinterpret/i64 (call $i64_load_little (i32.const 0))) - ) -) \ No newline at end of file diff --git a/tests/samples/endianness.wast b/tests/samples/endianness.wast deleted file mode 100644 index 8dc0c2e..0000000 --- a/tests/samples/endianness.wast +++ /dev/null @@ -1,217 +0,0 @@ -(module - (memory 1) - - ;; Stores an i16 value in little-endian-format - (func $i16_store_little (param $address i32) (param $value i32) - (i32.store8 (get_local $address) (get_local $value)) - (i32.store8 (i32.add (get_local $address) (i32.const 1)) (i32.shr_u (get_local $value) (i32.const 8))) - ) - - ;; Stores an i32 value in little-endian format - (func $i32_store_little (param $address i32) (param $value i32) - (call $i16_store_little (get_local $address) (get_local $value)) - (call $i16_store_little (i32.add (get_local $address) (i32.const 2)) (i32.shr_u (get_local $value) (i32.const 16))) - ) - - ;; Stores an i64 value in little-endian format - (func $i64_store_little (param $address i32) (param $value i64) - (call $i32_store_little (get_local $address) (i32.wrap/i64 (get_local $value))) - (call $i32_store_little (i32.add (get_local $address) (i32.const 4)) (i32.wrap/i64 (i64.shr_u (get_local $value) (i64.const 32)))) - ) - - ;; Loads an i16 value in little-endian format - (func $i16_load_little (param $address i32) (result i32) - (i32.or - (i32.load8_u (get_local $address)) - (i32.shl (i32.load8_u (i32.add (get_local $address) (i32.const 1))) (i32.const 8)) - ) - ) - - ;; Loads an i32 value in little-endian format - (func $i32_load_little (param $address i32) (result i32) - (i32.or - (call $i16_load_little (get_local $address)) - (i32.shl (call $i16_load_little (i32.add (get_local $address) (i32.const 2))) (i32.const 16)) - ) - ) - - ;; Loads an i64 value in little-endian format - (func $i64_load_little (param $address i32) (result i64) - (i64.or - (i64.extend_u/i32 (call $i32_load_little (get_local $address))) - (i64.shl (i64.extend_u/i32 (call $i32_load_little (i32.add (get_local $address) (i32.const 4)))) (i64.const 32)) - ) - ) - - (func (export "i32_load16_s") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_s (i32.const 0)) - ) - - (func (export "i32_load16_u") (param $value i32) (result i32) - (call $i16_store_little (i32.const 0) (get_local $value)) - (i32.load16_u (i32.const 0)) - ) - - (func (export "i32_load") (param $value i32) (result i32) - (call $i32_store_little (i32.const 0) (get_local $value)) - (i32.load (i32.const 0)) - ) - - (func (export "i64_load16_s") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_s (i32.const 0)) - ) - - (func (export "i64_load16_u") (param $value i64) (result i64) - (call $i16_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load16_u (i32.const 0)) - ) - - (func (export "i64_load32_s") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_s (i32.const 0)) - ) - - (func (export "i64_load32_u") (param $value i64) (result i64) - (call $i32_store_little (i32.const 0) (i32.wrap/i64 (get_local $value))) - (i64.load32_u (i32.const 0)) - ) - - (func (export "i64_load") (param $value i64) (result i64) - (call $i64_store_little (i32.const 0) (get_local $value)) - (i64.load (i32.const 0)) - ) - - (func (export "f32_load") (param $value f32) (result f32) - (call $i32_store_little (i32.const 0) (i32.reinterpret/f32 (get_local $value))) - (f32.load (i32.const 0)) - ) - - (func (export "f64_load") (param $value f64) (result f64) - (call $i64_store_little (i32.const 0) (i64.reinterpret/f64 (get_local $value))) - (f64.load (i32.const 0)) - ) - - - (func (export "i32_store16") (param $value i32) (result i32) - (i32.store16 (i32.const 0) (get_local $value)) - (call $i16_load_little (i32.const 0)) - ) - - (func (export "i32_store") (param $value i32) (result i32) - (i32.store (i32.const 0) (get_local $value)) - (call $i32_load_little (i32.const 0)) - ) - - (func (export "i64_store16") (param $value i64) (result i64) - (i64.store16 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i16_load_little (i32.const 0))) - ) - - (func (export "i64_store32") (param $value i64) (result i64) - (i64.store32 (i32.const 0) (get_local $value)) - (i64.extend_u/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "i64_store") (param $value i64) (result i64) - (i64.store (i32.const 0) (get_local $value)) - (call $i64_load_little (i32.const 0)) - ) - - (func (export "f32_store") (param $value f32) (result f32) - (f32.store (i32.const 0) (get_local $value)) - (f32.reinterpret/i32 (call $i32_load_little (i32.const 0))) - ) - - (func (export "f64_store") (param $value f64) (result f64) - (f64.store (i32.const 0) (get_local $value)) - (f64.reinterpret/i64 (call $i64_load_little (i32.const 0))) - ) -) - -(assert_return (invoke "i32_load16_s" (i32.const -1)) (i32.const -1)) -(assert_return (invoke "i32_load16_s" (i32.const -4242)) (i32.const -4242)) -(assert_return (invoke "i32_load16_s" (i32.const 42)) (i32.const 42)) -(assert_return (invoke "i32_load16_s" (i32.const 0x3210)) (i32.const 0x3210)) - -(assert_return (invoke "i32_load16_u" (i32.const -1)) (i32.const 0xFFFF)) -(assert_return (invoke "i32_load16_u" (i32.const -4242)) (i32.const 61294)) -(assert_return (invoke "i32_load16_u" (i32.const 42)) (i32.const 42)) -(assert_return (invoke "i32_load16_u" (i32.const 0xCAFE)) (i32.const 0xCAFE)) - -(assert_return (invoke "i32_load" (i32.const -1)) (i32.const -1)) -(assert_return (invoke "i32_load" (i32.const -42424242)) (i32.const -42424242)) -(assert_return (invoke "i32_load" (i32.const 42424242)) (i32.const 42424242)) -(assert_return (invoke "i32_load" (i32.const 0xABAD1DEA)) (i32.const 0xABAD1DEA)) - -(assert_return (invoke "i64_load16_s" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_load16_s" (i64.const -4242)) (i64.const -4242)) -(assert_return (invoke "i64_load16_s" (i64.const 42)) (i64.const 42)) -(assert_return (invoke "i64_load16_s" (i64.const 0x3210)) (i64.const 0x3210)) - -(assert_return (invoke "i64_load16_u" (i64.const -1)) (i64.const 0xFFFF)) -(assert_return (invoke "i64_load16_u" (i64.const -4242)) (i64.const 61294)) -(assert_return (invoke "i64_load16_u" (i64.const 42)) (i64.const 42)) -(assert_return (invoke "i64_load16_u" (i64.const 0xCAFE)) (i64.const 0xCAFE)) - -(assert_return (invoke "i64_load32_s" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_load32_s" (i64.const -42424242)) (i64.const -42424242)) -(assert_return (invoke "i64_load32_s" (i64.const 42424242)) (i64.const 42424242)) -(assert_return (invoke "i64_load32_s" (i64.const 0x12345678)) (i64.const 0x12345678)) - -(assert_return (invoke "i64_load32_u" (i64.const -1)) (i64.const 0xFFFFFFFF)) -(assert_return (invoke "i64_load32_u" (i64.const -42424242)) (i64.const 4252543054)) -(assert_return (invoke "i64_load32_u" (i64.const 42424242)) (i64.const 42424242)) -(assert_return (invoke "i64_load32_u" (i64.const 0xABAD1DEA)) (i64.const 0xABAD1DEA)) - -(assert_return (invoke "i64_load" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_load" (i64.const -42424242)) (i64.const -42424242)) -(assert_return (invoke "i64_load" (i64.const 0xABAD1DEA)) (i64.const 0xABAD1DEA)) -(assert_return (invoke "i64_load" (i64.const 0xABADCAFEDEAD1DEA)) (i64.const 0xABADCAFEDEAD1DEA)) - -(assert_return (invoke "f32_load" (f32.const -1)) (f32.const -1)) -(assert_return (invoke "f32_load" (f32.const 1234e-5)) (f32.const 1234e-5)) -(assert_return (invoke "f32_load" (f32.const 4242.4242)) (f32.const 4242.4242)) -(assert_return (invoke "f32_load" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) - -(assert_return (invoke "f64_load" (f64.const -1)) (f64.const -1)) -(assert_return (invoke "f64_load" (f64.const 123456789e-5)) (f64.const 123456789e-5)) -(assert_return (invoke "f64_load" (f64.const 424242.424242)) (f64.const 424242.424242)) -(assert_return (invoke "f64_load" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) - - -(assert_return (invoke "i32_store16" (i32.const -1)) (i32.const 0xFFFF)) -(assert_return (invoke "i32_store16" (i32.const -4242)) (i32.const 61294)) -(assert_return (invoke "i32_store16" (i32.const 42)) (i32.const 42)) -(assert_return (invoke "i32_store16" (i32.const 0xCAFE)) (i32.const 0xCAFE)) - -(assert_return (invoke "i32_store" (i32.const -1)) (i32.const -1)) -(assert_return (invoke "i32_store" (i32.const -4242)) (i32.const -4242)) -(assert_return (invoke "i32_store" (i32.const 42424242)) (i32.const 42424242)) -(assert_return (invoke "i32_store" (i32.const 0xDEADCAFE)) (i32.const 0xDEADCAFE)) - -(assert_return (invoke "i64_store16" (i64.const -1)) (i64.const 0xFFFF)) -(assert_return (invoke "i64_store16" (i64.const -4242)) (i64.const 61294)) -(assert_return (invoke "i64_store16" (i64.const 42)) (i64.const 42)) -(assert_return (invoke "i64_store16" (i64.const 0xCAFE)) (i64.const 0xCAFE)) - -(assert_return (invoke "i64_store32" (i64.const -1)) (i64.const 0xFFFFFFFF)) -(assert_return (invoke "i64_store32" (i64.const -4242)) (i64.const 4294963054)) -(assert_return (invoke "i64_store32" (i64.const 42424242)) (i64.const 42424242)) -(assert_return (invoke "i64_store32" (i64.const 0xDEADCAFE)) (i64.const 0xDEADCAFE)) - -(assert_return (invoke "i64_store" (i64.const -1)) (i64.const -1)) -(assert_return (invoke "i64_store" (i64.const -42424242)) (i64.const -42424242)) -(assert_return (invoke "i64_store" (i64.const 0xABAD1DEA)) (i64.const 0xABAD1DEA)) -(assert_return (invoke "i64_store" (i64.const 0xABADCAFEDEAD1DEA)) (i64.const 0xABADCAFEDEAD1DEA)) - -(assert_return (invoke "f32_store" (f32.const -1)) (f32.const -1)) -(assert_return (invoke "f32_store" (f32.const 1234e-5)) (f32.const 1234e-5)) -(assert_return (invoke "f32_store" (f32.const 4242.4242)) (f32.const 4242.4242)) -(assert_return (invoke "f32_store" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) - -(assert_return (invoke "f64_store" (f64.const -1)) (f64.const -1)) -(assert_return (invoke "f64_store" (f64.const 123456789e-5)) (f64.const 123456789e-5)) -(assert_return (invoke "f64_store" (f64.const 424242.424242)) (f64.const 424242.424242)) -(assert_return (invoke "f64_store" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) diff --git a/tests/samples/exports.wast b/tests/samples/exports.wast deleted file mode 100644 index 6841aa8..0000000 --- a/tests/samples/exports.wast +++ /dev/null @@ -1,198 +0,0 @@ -;; Functions - -(module (func) (export "a" (func 0))) -(module (func) (export "a" (func 0)) (export "b" (func 0))) -(module (func) (func) (export "a" (func 0)) (export "b" (func 1))) - -(module (func (export "a"))) -(module (func (export "a") (export "b") (export "c"))) -(module (func (export "a") (export "b") (param i32))) -(module (func) (export "a" (func 0))) -(module (func $a (export "a"))) -(module (func $a) (export "a" (func $a))) -(module (export "a" (func 0)) (func)) -(module (export "a" (func $a)) (func $a)) - -(module $Func - (export "e" (func $f)) - (func $f (param $n i32) (result i32) - (return (i32.add (get_local $n) (i32.const 1))) - ) -) -(assert_return (invoke "e" (i32.const 42)) (i32.const 43)) -(assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) -(module) -(module $Other1) -(assert_return (invoke $Func "e" (i32.const 42)) (i32.const 43)) - -(assert_invalid - (module (func) (export "a" (func 1))) - "unknown function" -) -(assert_invalid - (module (func) (export "a" (func 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (func) (func) (export "a" (func 0)) (export "a" (func 1))) - "duplicate export name" -) -(assert_invalid - (module (func) (global i32 (i32.const 0)) (export "a" (func 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (func) (table 0 anyfunc) (export "a" (func 0)) (export "a" (table 0))) - "duplicate export name" -) -(assert_invalid - (module (func) (memory 0) (export "a" (func 0)) (export "a" (memory 0))) - "duplicate export name" -) - - -;; Globals - -(module (global i32 (i32.const 0)) (export "a" (global 0))) -(module (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 0))) -(module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "b" (global 1))) - -(module (global (export "a") i32 (i32.const 0))) -(module (global i32 (i32.const 0)) (export "a" (global 0))) -(module (global $a (export "a") i32 (i32.const 0))) -(module (global $a i32 (i32.const 0)) (export "a" (global $a))) -(module (export "a" (global 0)) (global i32 (i32.const 0))) -(module (export "a" (global $a)) (global $a i32 (i32.const 0))) - -(module $Global - (export "e" (global $g)) - (global $g i32 (i32.const 42)) -) -(assert_return (get "e") (i32.const 42)) -(assert_return (get $Global "e") (i32.const 42)) -(module) -(module $Other2) -(assert_return (get $Global "e") (i32.const 42)) - -(assert_invalid - (module (global i32 (i32.const 0)) (export "a" (global 1))) - "unknown global" -) -(assert_invalid - (module (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (global i32 (i32.const 0)) (export "a" (global 0)) (export "a" (global 1))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (func) (export "a" (global 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (table 0 anyfunc) (export "a" (global 0)) (export "a" (table 0))) - "duplicate export name" -) -(assert_invalid - (module (global i32 (i32.const 0)) (memory 0) (export "a" (global 0)) (export "a" (memory 0))) - "duplicate export name" -) - - -;; Tables - -(module (table 0 anyfunc) (export "a" (table 0))) -(module (table 0 anyfunc) (export "a" (table 0)) (export "b" (table 0))) -;; No multiple tables yet. -;; (module (table 0 anyfunc) (table 0 anyfunc) (export "a" (table 0)) (export "b" (table 1))) - -(module (table (export "a") 0 anyfunc)) -(module (table (export "a") 0 1 anyfunc)) -(module (table 0 anyfunc) (export "a" (table 0))) -(module (table 0 1 anyfunc) (export "a" (table 0))) -(module (table $a (export "a") 0 anyfunc)) -(module (table $a (export "a") 0 1 anyfunc)) -(module (table $a 0 anyfunc) (export "a" (table $a))) -(module (table $a 0 1 anyfunc) (export "a" (table $a))) -(module (export "a" (table 0)) (table 0 anyfunc)) -(module (export "a" (table 0)) (table 0 1 anyfunc)) -(module (export "a" (table $a)) (table $a 0 anyfunc)) -(module (export "a" (table $a)) (table $a 0 1 anyfunc)) - -(; TODO: access table ;) - -(assert_invalid - (module (table 0 anyfunc) (export "a" (table 1))) - "unknown table" -) -(assert_invalid - (module (table 0 anyfunc) (export "a" (table 0)) (export "a" (table 0))) - "duplicate export name" -) -;; No multiple tables yet. -;; (assert_invalid -;; (module (table 0 anyfunc) (table 0 anyfunc) (export "a" (table 0)) (export "a" (table 1))) -;; "duplicate export name" -;; ) -(assert_invalid - (module (table 0 anyfunc) (func) (export "a" (table 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (table 0 anyfunc) (global i32 (i32.const 0)) (export "a" (table 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (table 0 anyfunc) (memory 0) (export "a" (table 0)) (export "a" (memory 0))) - "duplicate export name" -) - - -;; Memories - -(module (memory 0) (export "a" (memory 0))) -(module (memory 0) (export "a" (memory 0)) (export "b" (memory 0))) -;; No multiple memories yet. -;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "b" (memory 1))) - -(module (memory (export "a") 0)) -(module (memory (export "a") 0 1)) -(module (memory 0) (export "a" (memory 0))) -(module (memory 0 1) (export "a" (memory 0))) -(module (memory $a (export "a") 0)) -(module (memory $a (export "a") 0 1)) -(module (memory $a 0) (export "a" (memory $a))) -(module (memory $a 0 1) (export "a" (memory $a))) -(module (export "a" (memory 0)) (memory 0)) -(module (export "a" (memory 0)) (memory 0 1)) -(module (export "a" (memory $a)) (memory $a 0)) -(module (export "a" (memory $a)) (memory $a 0 1)) - -(; TODO: access memory ;) - -(assert_invalid - (module (memory 0) (export "a" (memory 1))) - "unknown memory" -) -(assert_invalid - (module (memory 0) (export "a" (memory 0)) (export "a" (memory 0))) - "duplicate export name" -) -;; No multiple memories yet. -;; (assert_invalid -;; (module (memory 0) (memory 0) (export "a" (memory 0)) (export "a" (memory 1))) -;; "duplicate export name" -;; ) -(assert_invalid - (module (memory 0) (func) (export "a" (memory 0)) (export "a" (func 0))) - "duplicate export name" -) -(assert_invalid - (module (memory 0) (global i32 (i32.const 0)) (export "a" (memory 0)) (export "a" (global 0))) - "duplicate export name" -) -(assert_invalid - (module (memory 0) (table 0 anyfunc) (export "a" (memory 0)) (export "a" (table 0))) - "duplicate export name" -) diff --git a/tests/samples/f32.wast b/tests/samples/f32.wast deleted file mode 100644 index 2595a4a..0000000 --- a/tests/samples/f32.wast +++ /dev/null @@ -1,2518 +0,0 @@ -;; Test all the f32 operators on major boundary values and all special -;; values (except comparison and bitwise operators, which are tested in -;; f32_bitwise.wast and f32_cmp.wast). - -(module - (func (export "add") (param $x f32) (param $y f32) (result f32) (f32.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x f32) (param $y f32) (result f32) (f32.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x f32) (param $y f32) (result f32) (f32.mul (get_local $x) (get_local $y))) - (func (export "div") (param $x f32) (param $y f32) (result f32) (f32.div (get_local $x) (get_local $y))) - (func (export "sqrt") (param $x f32) (result f32) (f32.sqrt (get_local $x))) - (func (export "min") (param $x f32) (param $y f32) (result f32) (f32.min (get_local $x) (get_local $y))) - (func (export "max") (param $x f32) (param $y f32) (result f32) (f32.max (get_local $x) (get_local $y))) - (func (export "ceil") (param $x f32) (result f32) (f32.ceil (get_local $x))) - (func (export "floor") (param $x f32) (result f32) (f32.floor (get_local $x))) - (func (export "trunc") (param $x f32) (result f32) (f32.trunc (get_local $x))) - (func (export "nearest") (param $x f32) (result f32) (f32.nearest (get_local $x))) -) - -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-148)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-148)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-125)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-125)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1.8p+0)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+1)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+1)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "add" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "add" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const -inf))) -(assert_return (invoke "add" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p-148)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p-148)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1.000002p-126)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x1p-125)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const 0x1p-125)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1.8p+0)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+1)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+1)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.b21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.721fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.d21fb6p+2)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.521fb6p+2)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const -inf))) -(assert_return (invoke "sub" (f32.const -inf) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "sub" (f32.const inf) (f32.const -inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-127)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-127)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p-2)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p-2)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-2)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-2)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.8p-147)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.8p-147)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p-124)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+1)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.3bd3cep+5)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep-22)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+1)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+126)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const 0x0p+0))) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "mul" (f32.const -inf) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "mul" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const 0x0p+0))) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1p-23)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1p-23)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-23)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-23)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-148)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-148)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-148)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-148)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1p+23)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1p+23)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p+23)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p+23)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-125)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-125)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-125)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-125)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f3p-129)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p+125)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p+125)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p+125)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p+125)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f306p-4)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-129)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-129)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-129)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-129)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+126)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+126)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+126)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+126)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p+1)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p+1)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+1)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+1)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f306p-3)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-128)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-128)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-128)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-128)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+3)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb8p-126)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.45f304p+125)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "div" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const inf)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const inf)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x1p-149)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const inf)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x1p-126)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const inf)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x1p-1)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const inf)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x1p+0)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127)) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "min" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const -inf) (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "min" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "min" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -inf)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -inf)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -inf)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -inf)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -inf)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000))) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "max" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "max" (f32.const -inf) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "max" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "max" (f32.const -inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const inf) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const inf) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const inf) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const inf) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-149))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-126))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -inf))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const inf))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const -nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const nan:0x200000))) -(assert_return (invoke "sqrt" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "sqrt" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-149))) -(assert_return (invoke "sqrt" (f32.const 0x1p-149)) (f32.const 0x1.6a09e6p-75)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-126))) -(assert_return (invoke "sqrt" (f32.const 0x1p-126)) (f32.const 0x1p-63)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-1))) -(assert_return (invoke "sqrt" (f32.const 0x1p-1)) (f32.const 0x1.6a09e6p-1)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p+0))) -(assert_return (invoke "sqrt" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1.921fb6p+2))) -(assert_return (invoke "sqrt" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.40d932p+1)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1.fffffep+127))) -(assert_return (invoke "sqrt" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+63)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -inf))) -(assert_return (invoke "sqrt" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "sqrt" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "sqrt" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f32.const nan:0x200000))) -(assert_return (invoke "floor" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "floor" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "floor" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "floor" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "floor" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.cp+2)) -(assert_return (invoke "floor" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2)) -(assert_return (invoke "floor" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "floor" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "floor" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "floor" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "floor" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "floor" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "floor" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "floor" (f32.const nan:0x200000))) -(assert_return (invoke "ceil" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "ceil" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "ceil" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p+2)) -(assert_return (invoke "ceil" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.cp+2)) -(assert_return (invoke "ceil" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "ceil" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "ceil" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "ceil" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "ceil" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "ceil" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f32.const nan:0x200000))) -(assert_return (invoke "trunc" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "trunc" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "trunc" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "trunc" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p+2)) -(assert_return (invoke "trunc" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2)) -(assert_return (invoke "trunc" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "trunc" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "trunc" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "trunc" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "trunc" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "trunc" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f32.const nan:0x200000))) -(assert_return (invoke "nearest" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "nearest" (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "nearest" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "nearest" (f32.const -0x1.921fb6p+2)) (f32.const -0x1.8p+2)) -(assert_return (invoke "nearest" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2)) -(assert_return (invoke "nearest" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "nearest" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "nearest" (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "nearest" (f32.const inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "nearest" (f32.const -nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f32.const -nan:0x200000))) -(assert_return_canonical_nan (invoke "nearest" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f32.const nan:0x200000))) diff --git a/tests/samples/f32_bitwise.wast b/tests/samples/f32_bitwise.wast deleted file mode 100644 index 12bdb86..0000000 --- a/tests/samples/f32_bitwise.wast +++ /dev/null @@ -1,369 +0,0 @@ -;; Test all the f32 bitwise operators on major boundary values and all special -;; values. - -(module - (func (export "abs") (param $x f32) (result f32) (f32.abs (get_local $x))) - (func (export "neg") (param $x f32) (result f32) (f32.neg (get_local $x))) - (func (export "copysign") (param $x f32) (param $y f32) (result f32) (f32.copysign (get_local $x) (get_local $y))) -) - -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const nan)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -0x0p+0)) -(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const nan)) (f32.const 0x0p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const inf)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const nan)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -0x1p-149)) -(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const nan)) (f32.const 0x1p-149)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const inf)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const nan)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -0x1p-126)) -(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const nan)) (f32.const 0x1p-126)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const inf)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const nan)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -0x1p-1)) -(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const nan)) (f32.const 0x1p-1)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const inf)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const nan)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -0x1p+0)) -(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const nan)) (f32.const 0x1p+0)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x0p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -inf)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const inf)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const -nan)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const -inf) (f32.const nan)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const -nan)) (f32.const -inf)) -(assert_return (invoke "copysign" (f32.const inf) (f32.const nan)) (f32.const inf)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -inf)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const inf)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -inf)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const inf)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const -nan) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "copysign" (f32.const nan) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "abs" (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "abs" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "abs" (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "abs" (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "abs" (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "abs" (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "abs" (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "abs" (f32.const 0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "abs" (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "abs" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "abs" (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "abs" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "abs" (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "abs" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "abs" (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "abs" (f32.const inf)) (f32.const inf)) -(assert_return (invoke "abs" (f32.const -nan)) (f32.const nan)) -(assert_return (invoke "abs" (f32.const nan)) (f32.const nan)) -(assert_return (invoke "neg" (f32.const -0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "neg" (f32.const 0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "neg" (f32.const -0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "neg" (f32.const 0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "neg" (f32.const -0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "neg" (f32.const 0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "neg" (f32.const -0x1p-1)) (f32.const 0x1p-1)) -(assert_return (invoke "neg" (f32.const 0x1p-1)) (f32.const -0x1p-1)) -(assert_return (invoke "neg" (f32.const -0x1p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "neg" (f32.const 0x1p+0)) (f32.const -0x1p+0)) -(assert_return (invoke "neg" (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2)) -(assert_return (invoke "neg" (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2)) -(assert_return (invoke "neg" (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "neg" (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "neg" (f32.const -inf)) (f32.const inf)) -(assert_return (invoke "neg" (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "neg" (f32.const -nan)) (f32.const nan)) -(assert_return (invoke "neg" (f32.const nan)) (f32.const -nan)) diff --git a/tests/samples/f32_cmp.wast b/tests/samples/f32_cmp.wast deleted file mode 100644 index 5bae18b..0000000 --- a/tests/samples/f32_cmp.wast +++ /dev/null @@ -1,2412 +0,0 @@ -;; Test all the f32 comparison operators on major boundary values and all -;; special values. - -(module - (func (export "eq") (param $x f32) (param $y f32) (result i32) (f32.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x f32) (param $y f32) (result i32) (f32.ne (get_local $x) (get_local $y))) - (func (export "lt") (param $x f32) (param $y f32) (result i32) (f32.lt (get_local $x) (get_local $y))) - (func (export "le") (param $x f32) (param $y f32) (result i32) (f32.le (get_local $x) (get_local $y))) - (func (export "gt") (param $x f32) (param $y f32) (result i32) (f32.gt (get_local $x) (get_local $y))) - (func (export "ge") (param $x f32) (param $y f32) (result i32) (f32.ge (get_local $x) (get_local $y))) -) - -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "eq" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const inf) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "ne" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "lt" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "le" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f32.const inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "gt" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x0p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-149) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-126) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p-1) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1p+0) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p-149)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p-126)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1.921fb6p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const 0x1.fffffep+127)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const inf) (f32.const inf)) (i32.const 1)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const inf) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p-149)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p-126)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const -nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const -nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan) (f32.const nan:0x200000)) (i32.const 0)) -(assert_return (invoke "ge" (f32.const nan:0x200000) (f32.const nan:0x200000)) (i32.const 0)) diff --git a/tests/samples/f64.wast b/tests/samples/f64.wast deleted file mode 100644 index 50db4e7..0000000 --- a/tests/samples/f64.wast +++ /dev/null @@ -1,2518 +0,0 @@ -;; Test all the f64 operators on major boundary values and all special -;; values (except comparison and bitwise operators, which are tested in -;; f64_bitwise.wast and f64_cmp.wast). - -(module - (func (export "add") (param $x f64) (param $y f64) (result f64) (f64.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x f64) (param $y f64) (result f64) (f64.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x f64) (param $y f64) (result f64) (f64.mul (get_local $x) (get_local $y))) - (func (export "div") (param $x f64) (param $y f64) (result f64) (f64.div (get_local $x) (get_local $y))) - (func (export "sqrt") (param $x f64) (result f64) (f64.sqrt (get_local $x))) - (func (export "min") (param $x f64) (param $y f64) (result f64) (f64.min (get_local $x) (get_local $y))) - (func (export "max") (param $x f64) (param $y f64) (result f64) (f64.max (get_local $x) (get_local $y))) - (func (export "ceil") (param $x f64) (result f64) (f64.ceil (get_local $x))) - (func (export "floor") (param $x f64) (result f64) (f64.floor (get_local $x))) - (func (export "trunc") (param $x f64) (result f64) (f64.trunc (get_local $x))) - (func (export "nearest") (param $x f64) (result f64) (f64.nearest (get_local $x))) -) - -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1021)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1021)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1.8p+0)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+1)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+1)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "add" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "add" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "add" (f64.const inf) (f64.const -inf))) -(assert_return (invoke "add" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "add" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "add" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.0000000000001p-1022)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p-1021)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p-1021)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1.8p+0)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+1)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+1)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.b21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.721fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.d21fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.521fb54442d18p+2)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const -inf) (f64.const -inf))) -(assert_return (invoke "sub" (f64.const -inf) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "sub" (f64.const inf) (f64.const -inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "sub" (f64.const inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "sub" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x0.8p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p-2)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p-2)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-2)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-2)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000006p-1022)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p-1020)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+1)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.3bd3cc9be45dep+5)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp-51)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1022)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const 0x0p+0))) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "mul" (f64.const -inf) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "mul" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "mul" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const 0x0p+0))) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p-52)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p-52)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-52)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-52)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000002p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+52)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+52)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+52)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+52)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1021)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1021)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1021)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1021)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.28be60db9391p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p+1021)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p+1021)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p+1021)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p+1021)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-4)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0.2p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0.2p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.2p-1022)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.2p-1022)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p+1)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p+1)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+1)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+1)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c883p-3)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0.4p-1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0.4p-1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.4p-1022)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.4p-1022)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+3)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d19p-1022)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.45f306dc9c882p+1021)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "div" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "div" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "div" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x0p+0) (f64.const inf)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const inf)) (f64.const 0x1p-1022)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1p-1) (f64.const inf)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1p-1) (f64.const inf)) (f64.const 0x1p-1)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1p+0) (f64.const inf)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1p+0) (f64.const inf)) (f64.const 0x1p+0)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x0p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1p-1)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1p+0)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "min" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const -inf) (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "min" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "min" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -inf)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1022) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -inf)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p-1) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p-1) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p-1) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -inf)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1p+0) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1p+0) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1p+0) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000))) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x0p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1p-1)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "max" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "max" (f64.const -inf) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "max" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "max" (f64.const -inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const inf) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const inf) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const inf) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const inf) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x0p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1p-1))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1p+0))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -inf))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const inf))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const inf))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan) (f64.const -nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const nan))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan) (f64.const nan:0x4000000000000))) -(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000))) -(assert_return (invoke "sqrt" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "sqrt" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x0.0000000000001p-1022))) -(assert_return (invoke "sqrt" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-537)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p-1022))) -(assert_return (invoke "sqrt" (f64.const 0x1p-1022)) (f64.const 0x1p-511)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p-1))) -(assert_return (invoke "sqrt" (f64.const 0x1p-1)) (f64.const 0x1.6a09e667f3bcdp-1)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p+0))) -(assert_return (invoke "sqrt" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1.921fb54442d18p+2))) -(assert_return (invoke "sqrt" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.40d931ff62705p+1)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1.fffffffffffffp+1023))) -(assert_return (invoke "sqrt" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+511)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -inf))) -(assert_return (invoke "sqrt" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "sqrt" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "sqrt" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "sqrt" (f64.const nan:0x4000000000000))) -(assert_return (invoke "floor" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "floor" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "floor" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "floor" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "floor" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.cp+2)) -(assert_return (invoke "floor" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.8p+2)) -(assert_return (invoke "floor" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "floor" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "floor" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "floor" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "floor" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "floor" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "floor" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "floor" (f64.const nan:0x4000000000000))) -(assert_return (invoke "ceil" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "ceil" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "ceil" (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "ceil" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "ceil" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.8p+2)) -(assert_return (invoke "ceil" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.cp+2)) -(assert_return (invoke "ceil" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "ceil" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "ceil" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "ceil" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "ceil" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "ceil" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "ceil" (f64.const nan:0x4000000000000))) -(assert_return (invoke "trunc" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "trunc" (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "trunc" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "trunc" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "trunc" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.8p+2)) -(assert_return (invoke "trunc" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.8p+2)) -(assert_return (invoke "trunc" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "trunc" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "trunc" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "trunc" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "trunc" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "trunc" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "trunc" (f64.const nan:0x4000000000000))) -(assert_return (invoke "nearest" (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "nearest" (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "nearest" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "nearest" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "nearest" (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.8p+2)) -(assert_return (invoke "nearest" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.8p+2)) -(assert_return (invoke "nearest" (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "nearest" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "nearest" (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "nearest" (f64.const inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "nearest" (f64.const -nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f64.const -nan:0x4000000000000))) -(assert_return_canonical_nan (invoke "nearest" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "nearest" (f64.const nan:0x4000000000000))) diff --git a/tests/samples/f64_bitwise.wast b/tests/samples/f64_bitwise.wast deleted file mode 100644 index 86c64b5..0000000 --- a/tests/samples/f64_bitwise.wast +++ /dev/null @@ -1,369 +0,0 @@ -;; Test all the f64 bitwise operators on major boundary values and all special -;; values. - -(module - (func (export "abs") (param $x f64) (result f64) (f64.abs (get_local $x))) - (func (export "neg") (param $x f64) (result f64) (f64.neg (get_local $x))) - (func (export "copysign") (param $x f64) (param $y f64) (result f64) (f64.copysign (get_local $x) (get_local $y))) -) - -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1p-1)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1p-1)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -inf)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const inf)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const -nan)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0p+0) (f64.const nan)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const -nan)) (f64.const -0x0p+0)) -(assert_return (invoke "copysign" (f64.const 0x0p+0) (f64.const nan)) (f64.const 0x0p+0)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const inf)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -inf)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const inf)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const -nan)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1022) (f64.const nan)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const -nan)) (f64.const -0x1p-1022)) -(assert_return (invoke "copysign" (f64.const 0x1p-1022) (f64.const nan)) (f64.const 0x1p-1022)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x0p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1p+0)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1p+0)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -inf)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const inf)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -inf)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const inf)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const -nan)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p-1) (f64.const nan)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const -nan)) (f64.const -0x1p-1)) -(assert_return (invoke "copysign" (f64.const 0x1p-1) (f64.const nan)) (f64.const 0x1p-1)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x0p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1p-1)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1p-1)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -inf)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const inf)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -inf)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const inf)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const -nan)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1p+0) (f64.const nan)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const -nan)) (f64.const -0x1p+0)) -(assert_return (invoke "copysign" (f64.const 0x1p+0) (f64.const nan)) (f64.const 0x1p+0)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x0p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x0p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1p-1022)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1p-1022)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1p-1)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1p-1)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1p+0)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1p+0)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -inf)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const inf)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const -nan)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const -inf) (f64.const nan)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const -nan)) (f64.const -inf)) -(assert_return (invoke "copysign" (f64.const inf) (f64.const nan)) (f64.const inf)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -inf)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const inf)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -inf)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const inf)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const -nan) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "copysign" (f64.const nan) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "abs" (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "abs" (f64.const 0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "abs" (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "abs" (f64.const 0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "abs" (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "abs" (f64.const 0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "abs" (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "abs" (f64.const 0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "abs" (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "abs" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "abs" (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "abs" (f64.const 0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "abs" (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "abs" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "abs" (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "abs" (f64.const inf)) (f64.const inf)) -(assert_return (invoke "abs" (f64.const -nan)) (f64.const nan)) -(assert_return (invoke "abs" (f64.const nan)) (f64.const nan)) -(assert_return (invoke "neg" (f64.const -0x0p+0)) (f64.const 0x0p+0)) -(assert_return (invoke "neg" (f64.const 0x0p+0)) (f64.const -0x0p+0)) -(assert_return (invoke "neg" (f64.const -0x0.0000000000001p-1022)) (f64.const 0x0.0000000000001p-1022)) -(assert_return (invoke "neg" (f64.const 0x0.0000000000001p-1022)) (f64.const -0x0.0000000000001p-1022)) -(assert_return (invoke "neg" (f64.const -0x1p-1022)) (f64.const 0x1p-1022)) -(assert_return (invoke "neg" (f64.const 0x1p-1022)) (f64.const -0x1p-1022)) -(assert_return (invoke "neg" (f64.const -0x1p-1)) (f64.const 0x1p-1)) -(assert_return (invoke "neg" (f64.const 0x1p-1)) (f64.const -0x1p-1)) -(assert_return (invoke "neg" (f64.const -0x1p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "neg" (f64.const 0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "neg" (f64.const -0x1.921fb54442d18p+2)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return (invoke "neg" (f64.const 0x1.921fb54442d18p+2)) (f64.const -0x1.921fb54442d18p+2)) -(assert_return (invoke "neg" (f64.const -0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "neg" (f64.const 0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) -(assert_return (invoke "neg" (f64.const -inf)) (f64.const inf)) -(assert_return (invoke "neg" (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "neg" (f64.const -nan)) (f64.const nan)) -(assert_return (invoke "neg" (f64.const nan)) (f64.const -nan)) diff --git a/tests/samples/f64_cmp.wast b/tests/samples/f64_cmp.wast deleted file mode 100644 index 8fe9be4..0000000 --- a/tests/samples/f64_cmp.wast +++ /dev/null @@ -1,2412 +0,0 @@ -;; Test all the f64 comparison operators on major boundary values and all -;; special values. - -(module - (func (export "eq") (param $x f64) (param $y f64) (result i32) (f64.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x f64) (param $y f64) (result i32) (f64.ne (get_local $x) (get_local $y))) - (func (export "lt") (param $x f64) (param $y f64) (result i32) (f64.lt (get_local $x) (get_local $y))) - (func (export "le") (param $x f64) (param $y f64) (result i32) (f64.le (get_local $x) (get_local $y))) - (func (export "gt") (param $x f64) (param $y f64) (result i32) (f64.gt (get_local $x) (get_local $y))) - (func (export "ge") (param $x f64) (param $y f64) (result i32) (f64.ge (get_local $x) (get_local $y))) -) - -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "lt" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "le" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "gt" (f64.const inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "gt" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x0.0000000000001p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1022) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p-1) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1p+0) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.921fb54442d18p+2) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x0p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x0.0000000000001p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1p-1022)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1p-1)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1p+0)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1.921fb54442d18p+2)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const inf) (f64.const inf)) (i32.const 1)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const inf) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x0p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x0.0000000000001p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1p-1022)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1p-1)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1p+0)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1.921fb54442d18p+2)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const inf)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const -nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const -nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan) (f64.const nan:0x4000000000000)) (i32.const 0)) -(assert_return (invoke "ge" (f64.const nan:0x4000000000000) (f64.const nan:0x4000000000000)) (i32.const 0)) diff --git a/tests/samples/fac.wast b/tests/samples/fac.wast deleted file mode 100644 index acc8962..0000000 --- a/tests/samples/fac.wast +++ /dev/null @@ -1,89 +0,0 @@ -(module - ;; Recursive factorial - (func (export "fac-rec") (param i64) (result i64) - (if (result i64) (i64.eq (get_local 0) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul (get_local 0) (call 0 (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - ) - - ;; Recursive factorial named - (func $fac-rec-named (export "fac-rec-named") (param $n i64) (result i64) - (if (result i64) (i64.eq (get_local $n) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local $n) - (call $fac-rec-named (i64.sub (get_local $n) (i64.const 1))) - ) - ) - ) - ) - - ;; Iterative factorial - (func (export "fac-iter") (param i64) (result i64) - (local i64 i64) - (set_local 1 (get_local 0)) - (set_local 2 (i64.const 1)) - (block - (loop - (if - (i64.eq (get_local 1) (i64.const 0)) - (then (br 2)) - (else - (set_local 2 (i64.mul (get_local 1) (get_local 2))) - (set_local 1 (i64.sub (get_local 1) (i64.const 1))) - ) - ) - (br 0) - ) - ) - (get_local 2) - ) - - ;; Iterative factorial named - (func (export "fac-iter-named") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (if - (i64.eq (get_local $i) (i64.const 0)) - (then (br $done)) - (else - (set_local $res (i64.mul (get_local $i) (get_local $res))) - (set_local $i (i64.sub (get_local $i) (i64.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - ;; Optimized factorial. - (func (export "fac-opt") (param i64) (result i64) - (local i64) - (set_local 1 (i64.const 1)) - (block - (br_if 0 (i64.lt_s (get_local 0) (i64.const 2))) - (loop - (set_local 1 (i64.mul (get_local 1) (get_local 0))) - (set_local 0 (i64.add (get_local 0) (i64.const -1))) - (br_if 0 (i64.gt_s (get_local 0) (i64.const 1))) - ) - ) - (get_local 1) - ) -) - -(assert_return (invoke "fac-rec" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-iter" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-rec-named" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-iter-named" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-opt" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_exhaustion (invoke "fac-rec" (i64.const 1073741824)) "call stack exhausted") diff --git a/tests/samples/fact.wast b/tests/samples/fact.wast deleted file mode 100644 index 6550937..0000000 --- a/tests/samples/fact.wast +++ /dev/null @@ -1,117 +0,0 @@ -(module - ;; Recursive factorial - (func (export "fac-rec") (param i64) (result i64) - (if (result i64) (i64.eq (get_local 0) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul (get_local 0) (call 0 (i64.sub (get_local 0) (i64.const 1)))) - ) - ) - ) - - ;; Recursive factorial named - (func $fac-rec-named (export "fac-rec-named") (param $n i64) (result i64) - (if (result i64) (i64.eq (get_local $n) (i64.const 0)) - (then (i64.const 1)) - (else - (i64.mul - (get_local $n) - (call $fac-rec-named (i64.sub (get_local $n) (i64.const 1))) - ) - ) - ) - ) - - ;; Recursive factorial named - (func $fac-rec-named-32 (export "fac-rec-named-32") (param $n i32) (result i32) - (if (result i32) (i32.eq (get_local $n) (i32.const 0)) - (then (i32.const 1)) - (else - (i32.mul - (get_local $n) - (call $fac-rec-named-32 (i32.sub (get_local $n) (i32.const 1))) - ) - ) - ) - ) - - ;; Iterative factorial - (func (export "fac-iter") (param i64) (result i64) - (local i64 i64) - (set_local 1 (get_local 0)) - (set_local 2 (i64.const 1)) - (block - (loop - (if - (i64.eq (get_local 1) (i64.const 0)) - (then (br 2)) - (else - (set_local 2 (i64.mul (get_local 1) (get_local 2))) - (set_local 1 (i64.sub (get_local 1) (i64.const 1))) - ) - ) - (br 0) - ) - ) - (get_local 2) - ) - - ;; Iterative factorial named - (func (export "fac-iter-named") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (if - (i64.eq (get_local $i) (i64.const 0)) - (then (br $done)) - (else - (set_local $res (i64.mul (get_local $i) (get_local $res))) - (set_local $i (i64.sub (get_local $i) (i64.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - ;; Iterative factorial named - (func (export "fac-iter-named-32") (param $n i32) (result i32) - (local $i i32) - (local $res i32) - (set_local $i (get_local $n)) - (set_local $res (i32.const 1)) - (block $done - (loop $loop - (if - (i32.eq (get_local $i) (i32.const 0)) - (then (br $done)) - (else - (set_local $res (i32.mul (get_local $i) (get_local $res))) - (set_local $i (i32.sub (get_local $i) (i32.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - ;; Optimized factorial. - (func (export "fac-opt") (param i64) (result i64) - (local i64) - (set_local 1 (i64.const 1)) - (block - (br_if 0 (i64.lt_s (get_local 0) (i64.const 2))) - (loop - (set_local 1 (i64.mul (get_local 1) (get_local 0))) - (set_local 0 (i64.add (get_local 0) (i64.const -1))) - (br_if 0 (i64.gt_s (get_local 0) (i64.const 1))) - ) - ) - (get_local 1) - ) -) \ No newline at end of file diff --git a/tests/samples/float_exprs.wast b/tests/samples/float_exprs.wast deleted file mode 100644 index 5cee2d4..0000000 --- a/tests/samples/float_exprs.wast +++ /dev/null @@ -1,2570 +0,0 @@ -;; Test interesting floating-point "expressions". These tests contain code -;; patterns which tempt common value-changing optimizations. - -;; Test that x*y+z is not done with x87-style intermediate precision. - -(module - (func (export "f64.no_contraction") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.add (f64.mul (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f64.no_contraction" (f64.const -0x1.9e87ce14273afp-103) (f64.const 0x1.2515ad31db63ep+664) (f64.const 0x1.868c6685e6185p+533)) (f64.const -0x1.da94885b11493p+561)) -(assert_return (invoke "f64.no_contraction" (f64.const 0x1.da21c460a6f44p+52) (f64.const 0x1.60859d2e7714ap-321) (f64.const 0x1.e63f1b7b660e1p-302)) (f64.const 0x1.4672f256d1794p-268)) -(assert_return (invoke "f64.no_contraction" (f64.const -0x1.f3eaf43f327cp-594) (f64.const 0x1.dfcc009906b57p+533) (f64.const 0x1.5984e03c520a1p-104)) (f64.const -0x1.d4797fb3db166p-60)) -(assert_return (invoke "f64.no_contraction" (f64.const 0x1.dab6c772cb2e2p-69) (f64.const -0x1.d761663679a84p-101) (f64.const 0x1.f22f92c843226p-218)) (f64.const -0x1.b50d72dfcef68p-169)) -(assert_return (invoke "f64.no_contraction" (f64.const -0x1.87c5def1e4d3dp-950) (f64.const -0x1.50cd5dab2207fp+935) (f64.const 0x1.e629bd0da8c5dp-54)) (f64.const 0x1.01b6feb4e78a7p-14)) - -;; Test that x*y+z is not folded to fma. - -(module - (func (export "f32.no_fma") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.add (f32.mul (get_local $x) (get_local $y)) (get_local $z))) - (func (export "f64.no_fma") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.add (f64.mul (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f32.no_fma" (f32.const 0x1.a78402p+124) (f32.const 0x1.cf8548p-23) (f32.const 0x1.992adap+107)) (f32.const 0x1.a5262cp+107)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.ed15a4p-28) (f32.const -0x1.613c72p-50) (f32.const 0x1.4757bp-88)) (f32.const -0x1.5406b8p-77)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.ae63a2p+37) (f32.const 0x1.b3a59ap-13) (f32.const 0x1.c16918p+10)) (f32.const 0x1.6e385cp+25)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.2a77fap-8) (f32.const -0x1.bb7356p+22) (f32.const -0x1.32be2ap+1)) (f32.const -0x1.0286d4p+15)) -(assert_return (invoke "f32.no_fma" (f32.const 0x1.298fb6p+126) (f32.const -0x1.03080cp-70) (f32.const -0x1.418de6p+34)) (f32.const -0x1.2d15c6p+56)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.ac357ff46eed4p+557) (f64.const 0x1.852c01a5e7297p+430) (f64.const -0x1.05995704eda8ap+987)) (f64.const 0x1.855d905d338ep+987)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.e2fd6bf32010cp+749) (f64.const 0x1.01c2238d405e4p-130) (f64.const 0x1.2ecc0db4b9f94p+573)) (f64.const 0x1.e64eb07e063bcp+619)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.92b7c7439ede3p-721) (f64.const -0x1.6aa97586d3de6p+1011) (f64.const 0x1.8de4823f6358ap+237)) (f64.const -0x1.1d4139fd20ecdp+291)) -(assert_return (invoke "f64.no_fma" (f64.const -0x1.466d30bddb453p-386) (f64.const -0x1.185a4d739c7aap+443) (f64.const 0x1.5f9c436fbfc7bp+55)) (f64.const 0x1.bd61a350fcc1ap+57)) -(assert_return (invoke "f64.no_fma" (f64.const 0x1.7e2c44058a799p+52) (f64.const 0x1.c73b71765b8b2p+685) (f64.const -0x1.16c641df0b108p+690)) (f64.const 0x1.53ccb53de0bd1p+738)) - -;; Test that x+0.0 is not folded to x. -;; See IEEE 754-2008 10.4 "Literal meaning and value-changing optimizations". - -(module - (func (export "f32.no_fold_add_zero") (param $x f32) (result f32) - (f32.add (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_add_zero") (param $x f64) (result f64) - (f64.add (get_local $x) (f64.const 0.0))) -) - -(assert_return (invoke "f32.no_fold_add_zero" (f32.const -0.0)) (f32.const 0.0)) -(assert_return (invoke "f64.no_fold_add_zero" (f64.const -0.0)) (f64.const 0.0)) -(assert_return_arithmetic_nan (invoke "f32.no_fold_add_zero" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_add_zero" (f64.const nan:0x4000000000000))) - -;; Test that 0.0 - x is not folded to -x. - -(module - (func (export "f32.no_fold_zero_sub") (param $x f32) (result f32) - (f32.sub (f32.const 0.0) (get_local $x))) - (func (export "f64.no_fold_zero_sub") (param $x f64) (result f64) - (f64.sub (f64.const 0.0) (get_local $x))) -) - -(assert_return (invoke "f32.no_fold_zero_sub" (f32.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f64.no_fold_zero_sub" (f64.const 0.0)) (f64.const 0.0)) -(assert_return_arithmetic_nan (invoke "f32.no_fold_zero_sub" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_zero_sub" (f64.const nan:0x4000000000000))) - -;; Test that x - 0.0 is not folded to x. - -(module - (func (export "f32.no_fold_sub_zero") (param $x f32) (result f32) - (f32.sub (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_sub_zero") (param $x f64) (result f64) - (f64.sub (get_local $x) (f64.const 0.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_sub_zero" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_sub_zero" (f64.const nan:0x4000000000000))) - -;; Test that x*0.0 is not folded to 0.0. - -(module - (func (export "f32.no_fold_mul_zero") (param $x f32) (result f32) - (f32.mul (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_mul_zero") (param $x f64) (result f64) - (f64.mul (get_local $x) (f64.const 0.0))) -) - -(assert_return (invoke "f32.no_fold_mul_zero" (f32.const -0.0)) (f32.const -0.0)) -(assert_return (invoke "f32.no_fold_mul_zero" (f32.const -1.0)) (f32.const -0.0)) -(assert_return (invoke "f32.no_fold_mul_zero" (f32.const -2.0)) (f32.const -0.0)) -(assert_return_arithmetic_nan (invoke "f32.no_fold_mul_zero" (f32.const nan:0x200000))) -(assert_return (invoke "f64.no_fold_mul_zero" (f64.const -0.0)) (f64.const -0.0)) -(assert_return (invoke "f64.no_fold_mul_zero" (f64.const -1.0)) (f64.const -0.0)) -(assert_return (invoke "f64.no_fold_mul_zero" (f64.const -2.0)) (f64.const -0.0)) -(assert_return_arithmetic_nan (invoke "f64.no_fold_mul_zero" (f64.const nan:0x4000000000000))) - -;; Test that x*1.0 is not folded to x. -;; See IEEE 754-2008 10.4 "Literal meaning and value-changing optimizations". - -(module - (func (export "f32.no_fold_mul_one") (param $x f32) (result f32) - (f32.mul (get_local $x) (f32.const 1.0))) - (func (export "f64.no_fold_mul_one") (param $x f64) (result f64) - (f64.mul (get_local $x) (f64.const 1.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_mul_one" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_mul_one" (f64.const nan:0x4000000000000))) - -;; Test that 0.0/x is not folded to 0.0. - -(module - (func (export "f32.no_fold_zero_div") (param $x f32) (result f32) - (f32.div (f32.const 0.0) (get_local $x))) - (func (export "f64.no_fold_zero_div") (param $x f64) (result f64) - (f64.div (f64.const 0.0) (get_local $x))) -) - -(assert_return_canonical_nan (invoke "f32.no_fold_zero_div" (f32.const 0.0))) -(assert_return_canonical_nan (invoke "f32.no_fold_zero_div" (f32.const -0.0))) -(assert_return_canonical_nan (invoke "f32.no_fold_zero_div" (f32.const nan))) -(assert_return_arithmetic_nan (invoke "f32.no_fold_zero_div" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f64.no_fold_zero_div" (f64.const 0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_zero_div" (f64.const -0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_zero_div" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_zero_div" (f64.const nan:0x4000000000000))) - -;; Test that x/1.0 is not folded to x. - -(module - (func (export "f32.no_fold_div_one") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const 1.0))) - (func (export "f64.no_fold_div_one") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const 1.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_one" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_one" (f64.const nan:0x4000000000000))) - -;; Test that x/-1.0 is not folded to -x. - -(module - (func (export "f32.no_fold_div_neg1") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const -1.0))) - (func (export "f64.no_fold_div_neg1") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const -1.0))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_neg1" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_neg1" (f64.const nan:0x4000000000000))) - -;; Test that -0.0 - x is not folded to -x. - -(module - (func (export "f32.no_fold_neg0_sub") (param $x f32) (result f32) - (f32.sub (f32.const -0.0) (get_local $x))) - (func (export "f64.no_fold_neg0_sub") (param $x f64) (result f64) - (f64.sub (f64.const -0.0) (get_local $x))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_neg0_sub" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_neg0_sub" (f64.const nan:0x4000000000000))) - -;; Test that -1.0 * x is not folded to -x. - -(module - (func (export "f32.no_fold_neg1_mul") (param $x f32) (result f32) - (f32.mul (f32.const -1.0) (get_local $x))) - (func (export "f64.no_fold_neg1_mul") (param $x f64) (result f64) - (f64.mul (f64.const -1.0) (get_local $x))) -) - -(assert_return_arithmetic_nan (invoke "f32.no_fold_neg1_mul" (f32.const nan:0x200000))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_neg1_mul" (f64.const nan:0x4000000000000))) - -;; Test that x == x is not folded to true. - -(module - (func (export "f32.no_fold_eq_self") (param $x f32) (result i32) - (f32.eq (get_local $x) (get_local $x))) - (func (export "f64.no_fold_eq_self") (param $x f64) (result i32) - (f64.eq (get_local $x) (get_local $x))) -) - -(assert_return (invoke "f32.no_fold_eq_self" (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_fold_eq_self" (f64.const nan)) (i32.const 0)) - -;; Test that x != x is not folded to false. - -(module - (func (export "f32.no_fold_ne_self") (param $x f32) (result i32) - (f32.ne (get_local $x) (get_local $x))) - (func (export "f64.no_fold_ne_self") (param $x f64) (result i32) - (f64.ne (get_local $x) (get_local $x))) -) - -(assert_return (invoke "f32.no_fold_ne_self" (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f64.no_fold_ne_self" (f64.const nan)) (i32.const 1)) - -;; Test that x - x is not folded to 0.0. - -(module - (func (export "f32.no_fold_sub_self") (param $x f32) (result f32) - (f32.sub (get_local $x) (get_local $x))) - (func (export "f64.no_fold_sub_self") (param $x f64) (result f64) - (f64.sub (get_local $x) (get_local $x))) -) - -(assert_return_canonical_nan (invoke "f32.no_fold_sub_self" (f32.const inf))) -(assert_return_canonical_nan (invoke "f32.no_fold_sub_self" (f32.const nan))) -(assert_return_canonical_nan (invoke "f64.no_fold_sub_self" (f64.const inf))) -(assert_return_canonical_nan (invoke "f64.no_fold_sub_self" (f64.const nan))) - -;; Test that x / x is not folded to 1.0. - -(module - (func (export "f32.no_fold_div_self") (param $x f32) (result f32) - (f32.div (get_local $x) (get_local $x))) - (func (export "f64.no_fold_div_self") (param $x f64) (result f64) - (f64.div (get_local $x) (get_local $x))) -) - -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const inf))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const nan))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const 0.0))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_self" (f32.const -0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const inf))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const nan))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const 0.0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_self" (f64.const -0.0))) - -;; Test that x/3 is not folded to x*(1/3). - -(module - (func (export "f32.no_fold_div_3") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const 3.0))) - (func (export "f64.no_fold_div_3") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const 3.0))) -) - -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.359c26p+50)) (f32.const -0x1.9cd032p+48)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.e45646p+93)) (f32.const -0x1.42e42ep+92)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.2a3916p-83)) (f32.const -0x1.8da172p-85)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.1f8b38p-124)) (f32.const -0x1.7f644ap-126)) -(assert_return (invoke "f32.no_fold_div_3" (f32.const -0x1.d64f64p-56)) (f32.const -0x1.398a42p-57)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const -0x1.a8a88d29e2cc3p+632)) (f64.const -0x1.1b1b08c69732dp+631)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const -0x1.bcf52dc950972p-167)) (f64.const -0x1.28a373db8b0f7p-168)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const 0x1.bd3c0d989f7a4p-874)) (f64.const 0x1.28d2b3bb14fc3p-875)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const -0x1.0138bf530a53cp+1007)) (f64.const -0x1.56f6546eb86fbp+1005)) -(assert_return (invoke "f64.no_fold_div_3" (f64.const 0x1.052b87f9d794dp+415)) (f64.const 0x1.5c3a0aa274c67p+413)) - -;; Test that (x*z)+(y*z) is not folded to (x+y)*z. - -(module - (func (export "f32.no_factor") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.add (f32.mul (get_local $x) (get_local $z)) (f32.mul (get_local $y) (get_local $z)))) - (func (export "f64.no_factor") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.add (f64.mul (get_local $x) (get_local $z)) (f64.mul (get_local $y) (get_local $z)))) -) - -(assert_return (invoke "f32.no_factor" (f32.const -0x1.4e2352p+40) (f32.const -0x1.842e2cp+49) (f32.const 0x1.eea602p+59)) (f32.const -0x1.77a7dp+109)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.b4e7f6p-6) (f32.const 0x1.8c990cp-5) (f32.const -0x1.70cc02p-9)) (f32.const -0x1.00a342p-14)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.06722ep-41) (f32.const 0x1.eed3cep-64) (f32.const 0x1.5c5558p+123)) (f32.const -0x1.651aaep+82)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.f8c6a4p-64) (f32.const 0x1.08c806p-83) (f32.const 0x1.b5ceccp+118)) (f32.const -0x1.afa15p+55)) -(assert_return (invoke "f32.no_factor" (f32.const -0x1.3aaa1ep-84) (f32.const 0x1.c6d5eep-71) (f32.const 0x1.8d2924p+20)) (f32.const 0x1.60c9cep-50)) -(assert_return (invoke "f64.no_factor" (f64.const 0x1.3adeda9144977p-424) (f64.const 0x1.c15af887049e1p-462) (f64.const -0x1.905179c4c4778p-225)) (f64.const -0x1.ec606bcb87b1ap-649)) -(assert_return (invoke "f64.no_factor" (f64.const 0x1.3c84821c1d348p-662) (f64.const -0x1.4ffd4c77ad037p-1009) (f64.const -0x1.dd275335c6f4p-957)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.no_factor" (f64.const -0x1.074f372347051p-334) (f64.const -0x1.aaeef661f4c96p-282) (f64.const -0x1.9bd34abe8696dp+479)) (f64.const 0x1.5767029593e2p+198)) -(assert_return (invoke "f64.no_factor" (f64.const -0x1.c4ded58a6f389p-289) (f64.const 0x1.ba6fdef5d59c9p-260) (f64.const -0x1.c1201c0470205p-253)) (f64.const -0x1.841ada2e0f184p-512)) -(assert_return (invoke "f64.no_factor" (f64.const 0x1.9d3688f8e375ap-608) (f64.const 0x1.bf91311588256p-579) (f64.const -0x1.1605a6b5d5ff8p+489)) (f64.const -0x1.e6118ca76af53p-90)) - -;; Test that (x+y)*z is not folded to (x*z)+(y*z). - -(module - (func (export "f32.no_distribute") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.mul (f32.add (get_local $x) (get_local $y)) (get_local $z))) - (func (export "f64.no_distribute") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.mul (f64.add (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.4e2352p+40) (f32.const -0x1.842e2cp+49) (f32.const 0x1.eea602p+59)) (f32.const -0x1.77a7d2p+109)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.b4e7f6p-6) (f32.const 0x1.8c990cp-5) (f32.const -0x1.70cc02p-9)) (f32.const -0x1.00a34p-14)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.06722ep-41) (f32.const 0x1.eed3cep-64) (f32.const 0x1.5c5558p+123)) (f32.const -0x1.651abp+82)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.f8c6a4p-64) (f32.const 0x1.08c806p-83) (f32.const 0x1.b5ceccp+118)) (f32.const -0x1.afa14ep+55)) -(assert_return (invoke "f32.no_distribute" (f32.const -0x1.3aaa1ep-84) (f32.const 0x1.c6d5eep-71) (f32.const 0x1.8d2924p+20)) (f32.const 0x1.60c9ccp-50)) -(assert_return (invoke "f64.no_distribute" (f64.const 0x1.3adeda9144977p-424) (f64.const 0x1.c15af887049e1p-462) (f64.const -0x1.905179c4c4778p-225)) (f64.const -0x1.ec606bcb87b1bp-649)) -(assert_return (invoke "f64.no_distribute" (f64.const 0x1.3c84821c1d348p-662) (f64.const -0x1.4ffd4c77ad037p-1009) (f64.const -0x1.dd275335c6f4p-957)) (f64.const -0x0p+0)) -(assert_return (invoke "f64.no_distribute" (f64.const -0x1.074f372347051p-334) (f64.const -0x1.aaeef661f4c96p-282) (f64.const -0x1.9bd34abe8696dp+479)) (f64.const 0x1.5767029593e1fp+198)) -(assert_return (invoke "f64.no_distribute" (f64.const -0x1.c4ded58a6f389p-289) (f64.const 0x1.ba6fdef5d59c9p-260) (f64.const -0x1.c1201c0470205p-253)) (f64.const -0x1.841ada2e0f183p-512)) -(assert_return (invoke "f64.no_distribute" (f64.const 0x1.9d3688f8e375ap-608) (f64.const 0x1.bf91311588256p-579) (f64.const -0x1.1605a6b5d5ff8p+489)) (f64.const -0x1.e6118ca76af52p-90)) - -;; Test that x*(y/z) is not folded to (x*y)/z. - -(module - (func (export "f32.no_regroup_div_mul") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.mul (get_local $x) (f32.div (get_local $y) (get_local $z)))) - (func (export "f64.no_regroup_div_mul") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.mul (get_local $x) (f64.div (get_local $y) (get_local $z)))) -) - -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.2d14a6p-115) (f32.const -0x1.575a6cp-64) (f32.const 0x1.5cee0ep-116)) (f32.const 0x1.2844cap-63)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.454738p+91) (f32.const -0x1.b28a66p-115) (f32.const -0x1.f53908p+72)) (f32.const -0x0p+0)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.6be56ep+16) (f32.const -0x1.b46fc6p-21) (f32.const -0x1.a51df6p-123)) (f32.const -0x1.792258p+118)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const -0x1.c343f8p-94) (f32.const 0x1.e4d906p+73) (f32.const 0x1.be69f8p+68)) (f32.const -0x1.ea1df2p-89)) -(assert_return (invoke "f32.no_regroup_div_mul" (f32.const 0x1.c6ae76p+112) (f32.const 0x1.fc953cp+24) (f32.const -0x1.60b3e8p+71)) (f32.const -0x1.47d0eap+66)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.3c04b815e30bp-423) (f64.const -0x1.379646fd98127p-119) (f64.const 0x1.bddb158506031p-642)) (f64.const -0x1.b9b3301f2dd2dp+99)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.46b3a402f86d5p+337) (f64.const 0x1.6fbf1b9e1798dp-447) (f64.const -0x1.bd9704a5a6a06p+797)) (f64.const -0x0p+0)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.6c9765bb4347fp-479) (f64.const 0x1.a4af42e34a141p+902) (f64.const 0x1.d2dde70eb68f9p-448)) (f64.const inf)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const -0x1.706023645be72p+480) (f64.const -0x1.6c229f7d9101dp+611) (f64.const -0x1.4d50fa68d3d9ep+836)) (f64.const -0x1.926fa3cacc651p+255)) -(assert_return (invoke "f64.no_regroup_div_mul" (f64.const 0x1.8cc63d8caf4c7p-599) (f64.const 0x1.8671ac4c35753p-878) (f64.const -0x1.ef35b1695e659p-838)) (f64.const -0x1.38d55f56406dp-639)) - -;; Test that (x*y)/z is not folded to x*(y/z). - -(module - (func (export "f32.no_regroup_mul_div") (param $x f32) (param $y f32) (param $z f32) (result f32) - (f32.div (f32.mul (get_local $x) (get_local $y)) (get_local $z))) - (func (export "f64.no_regroup_mul_div") (param $x f64) (param $y f64) (param $z f64) (result f64) - (f64.div (f64.mul (get_local $x) (get_local $y)) (get_local $z))) -) - -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.2d14a6p-115) (f32.const -0x1.575a6cp-64) (f32.const 0x1.5cee0ep-116)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.454738p+91) (f32.const -0x1.b28a66p-115) (f32.const -0x1.f53908p+72)) (f32.const -0x1.1a00e8p-96)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.6be56ep+16) (f32.const -0x1.b46fc6p-21) (f32.const -0x1.a51df6p-123)) (f32.const -0x1.79225ap+118)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const -0x1.c343f8p-94) (f32.const 0x1.e4d906p+73) (f32.const 0x1.be69f8p+68)) (f32.const -0x1.ea1df4p-89)) -(assert_return (invoke "f32.no_regroup_mul_div" (f32.const 0x1.c6ae76p+112) (f32.const 0x1.fc953cp+24) (f32.const -0x1.60b3e8p+71)) (f32.const -inf)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.3c04b815e30bp-423) (f64.const -0x1.379646fd98127p-119) (f64.const 0x1.bddb158506031p-642)) (f64.const -0x1.b9b3301f2dd2ep+99)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.46b3a402f86d5p+337) (f64.const 0x1.6fbf1b9e1798dp-447) (f64.const -0x1.bd9704a5a6a06p+797)) (f64.const -0x1.0da0b6328e09p-907)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.6c9765bb4347fp-479) (f64.const 0x1.a4af42e34a141p+902) (f64.const 0x1.d2dde70eb68f9p-448)) (f64.const 0x1.4886b6d9a9a79p+871)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const -0x1.706023645be72p+480) (f64.const -0x1.6c229f7d9101dp+611) (f64.const -0x1.4d50fa68d3d9ep+836)) (f64.const -inf)) -(assert_return (invoke "f64.no_regroup_mul_div" (f64.const 0x1.8cc63d8caf4c7p-599) (f64.const 0x1.8671ac4c35753p-878) (f64.const -0x1.ef35b1695e659p-838)) (f64.const -0x0p+0)) - -;; Test that x+y+z+w is not reassociated. - -(module - (func (export "f32.no_reassociate_add") (param $x f32) (param $y f32) (param $z f32) (param $w f32) (result f32) - (f32.add (f32.add (f32.add (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) - (func (export "f64.no_reassociate_add") (param $x f64) (param $y f64) (param $z f64) (param $w f64) (result f64) - (f64.add (f64.add (f64.add (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) -) - -(assert_return (invoke "f32.no_reassociate_add" (f32.const -0x1.5f7ddcp+44) (f32.const 0x1.854e1p+34) (f32.const -0x1.b2068cp+47) (f32.const -0x1.209692p+41)) (f32.const -0x1.e26c76p+47)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const 0x1.da3b78p-9) (f32.const -0x1.4312fap-7) (f32.const 0x1.0395e6p-4) (f32.const -0x1.6d5ea6p-7)) (f32.const 0x1.78b31ap-5)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const -0x1.fdb93ap+34) (f32.const -0x1.b6fce6p+41) (f32.const 0x1.c131d8p+44) (f32.const 0x1.8835b6p+38)) (f32.const 0x1.8ff3a2p+44)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const 0x1.1739fcp+47) (f32.const 0x1.a4b186p+49) (f32.const -0x1.0c623cp+35) (f32.const 0x1.16a102p+51)) (f32.const 0x1.913ff6p+51)) -(assert_return (invoke "f32.no_reassociate_add" (f32.const 0x1.733cfap+108) (f32.const -0x1.38d30cp+108) (f32.const 0x1.2f5854p+105) (f32.const -0x1.ccb058p+94)) (f32.const 0x1.813716p+106)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.697a4d9ff19a6p+841) (f64.const 0x1.b305466238397p+847) (f64.const 0x1.e0b2d9bfb4e72p+855) (f64.const -0x1.6e1f3ae2b06bbp+857)) (f64.const -0x1.eb0e5936f087ap+856)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const 0x1.00ef6746b30e1p-543) (f64.const 0x1.cc1cfafdf3fe1p-544) (f64.const -0x1.f7726df3ecba6p-543) (f64.const -0x1.b26695f99d307p-594)) (f64.const -0x1.074892e3fad76p-547)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.e807b3bd6d854p+440) (f64.const 0x1.cedae26c2c5fp+407) (f64.const -0x1.00ab6e1442541p+437) (f64.const 0x1.28538a55997bdp+397)) (f64.const -0x1.040e90bf871ebp+441)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.ba2b6f35a2402p-317) (f64.const 0x1.ad1c3fea7cd9ep-307) (f64.const -0x1.93aace2bf1261p-262) (f64.const 0x1.9fddbe472847ep-260)) (f64.const 0x1.3af30abc2c01bp-260)) -(assert_return (invoke "f64.no_reassociate_add" (f64.const -0x1.ccb9c6092fb1dp+641) (f64.const -0x1.4b7c28c108244p+614) (f64.const 0x1.8a7cefef4bde1p+646) (f64.const -0x1.901b28b08b482p+644)) (f64.const 0x1.1810579194126p+646)) - -;; Test that x*y*z*w is not reassociated. - -(module - (func (export "f32.no_reassociate_mul") (param $x f32) (param $y f32) (param $z f32) (param $w f32) (result f32) - (f32.mul (f32.mul (f32.mul (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) - (func (export "f64.no_reassociate_mul") (param $x f64) (param $y f64) (param $z f64) (param $w f64) (result f64) - (f64.mul (f64.mul (f64.mul (get_local $x) (get_local $y)) (get_local $z)) (get_local $w))) -) - -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.950ba8p-116) (f32.const 0x1.efdacep-33) (f32.const -0x1.5f9bcp+102) (f32.const 0x1.f04508p-56)) (f32.const -0x1.ff356ep-101)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.5990aep-56) (f32.const -0x1.7dfb04p+102) (f32.const -0x1.4f774ap-125) (f32.const -0x1.595fe6p+70)) (f32.const -0x1.c7c8fcp-8)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.6ad9a4p-48) (f32.const -0x1.9138aap+55) (f32.const -0x1.4a774ep-40) (f32.const 0x1.1ff08p+76)) (f32.const 0x1.9cd8ecp+44)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const 0x1.e1caecp-105) (f32.const 0x1.af0dd2p+77) (f32.const -0x1.016eep+56) (f32.const -0x1.ab70d6p+59)) (f32.const 0x1.54870ep+89)) -(assert_return (invoke "f32.no_reassociate_mul" (f32.const -0x1.3b1dcp-99) (f32.const 0x1.4e5a34p-49) (f32.const -0x1.38ba5ap+3) (f32.const 0x1.7fb8eep+59)) (f32.const 0x1.5bbf98p-85)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const -0x1.e7842ab7181p-667) (f64.const -0x1.fabf40ceeceafp+990) (f64.const -0x1.1a38a825ab01ap-376) (f64.const -0x1.27e8ea469b14fp+664)) (f64.const 0x1.336eb428af4f3p+613)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.4ca2292a6acbcp+454) (f64.const 0x1.6ffbab850089ap-516) (f64.const -0x1.547c32e1f5b93p-899) (f64.const -0x1.c7571d9388375p+540)) (f64.const 0x1.1ac796954fc1p-419)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.73881a52e0401p-501) (f64.const -0x1.1b68dd9efb1a7p+788) (f64.const 0x1.d1c5e6a3eb27cp-762) (f64.const -0x1.56cb2fcc7546fp+88)) (f64.const 0x1.f508db92c34efp-386)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.2efa87859987cp+692) (f64.const 0x1.68e4373e241p-423) (f64.const 0x1.4e2d0fb383a57p+223) (f64.const -0x1.301d3265c737bp-23)) (f64.const -0x1.4b2b6c393f30cp+470)) -(assert_return (invoke "f64.no_reassociate_mul" (f64.const 0x1.1013f7498b95fp-234) (f64.const 0x1.d2d1c36fff138p-792) (f64.const -0x1.cbf1824ea7bfdp+728) (f64.const -0x1.440da9c8b836dp-599)) (f64.const 0x1.1a16512881c91p-895)) - -;; Test that x/0 is not folded away. - -(module - (func (export "f32.no_fold_div_0") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const 0.0))) - (func (export "f64.no_fold_div_0") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const 0.0))) -) - -(assert_return (invoke "f32.no_fold_div_0" (f32.const 1.0)) (f32.const inf)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const -1.0)) (f32.const -inf)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const inf)) (f32.const inf)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const -inf)) (f32.const -inf)) -(assert_return_canonical_nan (invoke "f32.no_fold_div_0" (f32.const 0))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_0" (f32.const -0))) -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_0" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_0" (f32.const nan))) -(assert_return (invoke "f64.no_fold_div_0" (f64.const 1.0)) (f64.const inf)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const -1.0)) (f64.const -inf)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const inf)) (f64.const inf)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const -inf)) (f64.const -inf)) -(assert_return_canonical_nan (invoke "f64.no_fold_div_0" (f64.const 0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_0" (f64.const -0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_0" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_0" (f64.const nan:0x4000000000000))) - -;; Test that x/-0 is not folded away. - -(module - (func (export "f32.no_fold_div_neg0") (param $x f32) (result f32) - (f32.div (get_local $x) (f32.const -0.0))) - (func (export "f64.no_fold_div_neg0") (param $x f64) (result f64) - (f64.div (get_local $x) (f64.const -0.0))) -) - -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const 1.0)) (f32.const -inf)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const -1.0)) (f32.const inf)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const inf)) (f32.const -inf)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const -inf)) (f32.const inf)) -(assert_return_canonical_nan (invoke "f32.no_fold_div_neg0" (f32.const 0))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_neg0" (f32.const -0))) -(assert_return_arithmetic_nan (invoke "f32.no_fold_div_neg0" (f32.const nan:0x200000))) -(assert_return_canonical_nan (invoke "f32.no_fold_div_neg0" (f32.const nan))) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const 1.0)) (f64.const -inf)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const -1.0)) (f64.const inf)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const inf)) (f64.const -inf)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const -inf)) (f64.const inf)) -(assert_return_canonical_nan (invoke "f64.no_fold_div_neg0" (f64.const 0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_neg0" (f64.const -0))) -(assert_return_canonical_nan (invoke "f64.no_fold_div_neg0" (f64.const nan))) -(assert_return_arithmetic_nan (invoke "f64.no_fold_div_neg0" (f64.const nan:0x4000000000000))) - -;; Test that sqrt(x*x+y*y) is not folded to hypot. - -(module - (func (export "f32.no_fold_to_hypot") (param $x f32) (param $y f32) (result f32) - (f32.sqrt (f32.add (f32.mul (get_local $x) (get_local $x)) - (f32.mul (get_local $y) (get_local $y))))) - (func (export "f64.no_fold_to_hypot") (param $x f64) (param $y f64) (result f64) - (f64.sqrt (f64.add (f64.mul (get_local $x) (get_local $x)) - (f64.mul (get_local $y) (get_local $y))))) -) - -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const 0x1.c2f338p-81) (f32.const 0x1.401b5ep-68)) (f32.const 0x1.401cccp-68)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const -0x1.c38d1p-71) (f32.const -0x1.359ddp-107)) (f32.const 0x1.c36a62p-71)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const -0x1.99e0cap-114) (f32.const -0x1.ed0c6cp-69)) (f32.const 0x1.ed0e48p-69)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const -0x1.1b6ceap+5) (f32.const 0x1.5440bep+17)) (f32.const 0x1.5440cp+17)) -(assert_return (invoke "f32.no_fold_to_hypot" (f32.const 0x1.8f019ep-76) (f32.const -0x1.182308p-71)) (f32.const 0x1.17e2bcp-71)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.1a0ac4f7c8711p-636) (f64.const 0x1.1372ebafff551p-534)) (f64.const 0x1.13463fa37014ep-534)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.b793512167499p+395) (f64.const -0x1.11cbc52af4c36p+410)) (f64.const 0x1.11cbc530783a2p+410)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.76777f44ff40bp-536) (f64.const -0x1.c3896e4dc1fbp-766)) (f64.const 0x1.8p-536)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const -0x1.889ac72cc6b5dp-521) (f64.const 0x1.8d7084e659f3bp-733)) (f64.const 0x1.889ac72ca843ap-521)) -(assert_return (invoke "f64.no_fold_to_hypot" (f64.const 0x1.5ee588c02cb08p-670) (f64.const -0x1.05ce25788d9ecp-514)) (f64.const 0x1.05ce25788d9dfp-514)) - -;; Test that 1.0/x isn't approximated. - -(module - (func (export "f32.no_approximate_reciprocal") (param $x f32) (result f32) - (f32.div (f32.const 1.0) (get_local $x))) -) - -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const -0x1.2900b6p-10)) (f32.const -0x1.b950d4p+9)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const 0x1.e7212p+127)) (f32.const 0x1.0d11f8p-128)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const -0x1.42a466p-93)) (f32.const -0x1.963ee6p+92)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const 0x1.5d0c32p+76)) (f32.const 0x1.778362p-77)) -(assert_return (invoke "f32.no_approximate_reciprocal" (f32.const -0x1.601de2p-82)) (f32.const -0x1.743d7ep+81)) - -;; Test that 1.0/sqrt(x) isn't approximated or fused. - -(module - (func (export "f32.no_approximate_reciprocal_sqrt") (param $x f32) (result f32) - (f32.div (f32.const 1.0) (f32.sqrt (get_local $x)))) - (func (export "f64.no_fuse_reciprocal_sqrt") (param $x f64) (result f64) - (f64.div (f64.const 1.0) (f64.sqrt (get_local $x)))) -) - -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.6af12ap-43)) (f32.const 0x1.300ed4p+21)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.e82fc6p-8)) (f32.const 0x1.72c376p+3)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.b9fa9cp-66)) (f32.const 0x1.85a9bap+32)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.f4f546p-44)) (f32.const 0x1.6e01c2p+21)) -(assert_return (invoke "f32.no_approximate_reciprocal_sqrt" (f32.const 0x1.5da7aap-86)) (f32.const 0x1.b618cap+42)) - -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.1568a63b55fa3p+889)) (f64.const 0x1.5bc9c74c9952p-445)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.239fcd0939cafp+311)) (f64.const 0x1.5334a922b4818p-156)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.6e36a24e11054p+104)) (f64.const 0x1.ac13f20977f29p-53)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.23ee173219f83p+668)) (f64.const 0x1.df753e055862dp-335)) -(assert_return (invoke "f64.no_fuse_reciprocal_sqrt" (f64.const 0x1.b30f74caf9babp+146)) (f64.const 0x1.88bfc3d1764a9p-74)) - -;; Test that sqrt(1.0/x) isn't approximated. - -(module - (func (export "f32.no_approximate_sqrt_reciprocal") (param $x f32) (result f32) - (f32.sqrt (f32.div (f32.const 1.0) (get_local $x)))) -) - -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.a4c986p+60)) (f32.const 0x1.8f5ac6p-31)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.50511ep-9)) (f32.const 0x1.3bdd46p+4)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.125ec2p+69)) (f32.const 0x1.5db572p-35)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.ba4c5p+13)) (f32.const 0x1.136f16p-7)) -(assert_return (invoke "f32.no_approximate_sqrt_reciprocal" (f32.const 0x1.4a5be2p+104)) (f32.const 0x1.c2b5bp-53)) - -;; Test that converting i32/i64 to f32/f64 and back isn't folded away. - -(module - (func (export "i32.no_fold_f32_s") (param i32) (result i32) - (i32.trunc_s/f32 (f32.convert_s/i32 (get_local 0)))) - (func (export "i32.no_fold_f32_u") (param i32) (result i32) - (i32.trunc_u/f32 (f32.convert_u/i32 (get_local 0)))) - (func (export "i64.no_fold_f64_s") (param i64) (result i64) - (i64.trunc_s/f64 (f64.convert_s/i64 (get_local 0)))) - (func (export "i64.no_fold_f64_u") (param i64) (result i64) - (i64.trunc_u/f64 (f64.convert_u/i64 (get_local 0)))) -) - -(assert_return (invoke "i32.no_fold_f32_s" (i32.const 0x1000000)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_s" (i32.const 0x1000001)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_s" (i32.const 0xf0000010)) (i32.const 0xf0000010)) - -(assert_return (invoke "i32.no_fold_f32_u" (i32.const 0x1000000)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_u" (i32.const 0x1000001)) (i32.const 0x1000000)) -(assert_return (invoke "i32.no_fold_f32_u" (i32.const 0xf0000010)) (i32.const 0xf0000000)) - -(assert_return (invoke "i64.no_fold_f64_s" (i64.const 0x20000000000000)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_s" (i64.const 0x20000000000001)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_s" (i64.const 0xf000000000000400)) (i64.const 0xf000000000000400)) - -(assert_return (invoke "i64.no_fold_f64_u" (i64.const 0x20000000000000)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_u" (i64.const 0x20000000000001)) (i64.const 0x20000000000000)) -(assert_return (invoke "i64.no_fold_f64_u" (i64.const 0xf000000000000400)) (i64.const 0xf000000000000000)) - -;; Test that x+y-y is not folded to x. - -(module - (func (export "f32.no_fold_add_sub") (param $x f32) (param $y f32) (result f32) - (f32.sub (f32.add (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_add_sub") (param $x f64) (param $y f64) (result f64) - (f64.sub (f64.add (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_add_sub" (f32.const 0x1.b553e4p-47) (f32.const -0x1.67db2cp-26)) (f32.const 0x1.cp-47)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const -0x1.a884dp-23) (f32.const 0x1.f2ae1ep-19)) (f32.const -0x1.a884ep-23)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const -0x1.fc04fp+82) (f32.const -0x1.65403ap+101)) (f32.const -0x1p+83)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const 0x1.870fa2p-78) (f32.const 0x1.c54916p-56)) (f32.const 0x1.8p-78)) -(assert_return (invoke "f32.no_fold_add_sub" (f32.const -0x1.17e966p-108) (f32.const -0x1.5fa61ap-84)) (f32.const -0x1p-107)) - -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.1053ea172dba8p-874) (f64.const 0x1.113c413408ac8p-857)) (f64.const -0x1.1053ea172p-874)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const 0x1.e377d54807972p-546) (f64.const 0x1.040a0a4d1ff7p-526)) (f64.const 0x1.e377d548p-546)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.75f53cd926b62p-30) (f64.const -0x1.66b176e602bb5p-3)) (f64.const -0x1.75f53dp-30)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.c450ff28332ap-341) (f64.const 0x1.15a5855023baep-305)) (f64.const -0x1.c451p-341)) -(assert_return (invoke "f64.no_fold_add_sub" (f64.const -0x1.1ad4a596d3ea8p-619) (f64.const -0x1.17d81a41c0ea8p-588)) (f64.const -0x1.1ad4a8p-619)) - -;; Test that x-y+y is not folded to x. - -(module - (func (export "f32.no_fold_sub_add") (param $x f32) (param $y f32) (result f32) - (f32.add (f32.sub (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_sub_add") (param $x f64) (param $y f64) (result f64) - (f64.add (f64.sub (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_sub_add" (f32.const -0x1.523cb8p+9) (f32.const 0x1.93096cp+8)) (f32.const -0x1.523cbap+9)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const -0x1.a31a1p-111) (f32.const 0x1.745efp-95)) (f32.const -0x1.a4p-111)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const 0x1.3d5328p+26) (f32.const 0x1.58567p+35)) (f32.const 0x1.3d54p+26)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const 0x1.374e26p-39) (f32.const -0x1.66a5p-27)) (f32.const 0x1.374p-39)) -(assert_return (invoke "f32.no_fold_sub_add" (f32.const 0x1.320facp-3) (f32.const -0x1.ac069ap+14)) (f32.const 0x1.34p-3)) - -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.8f92aad2c9b8dp+255) (f64.const -0x1.08cd4992266cbp+259)) (f64.const 0x1.8f92aad2c9b9p+255)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.5aaff55742c8bp-666) (f64.const 0x1.8f5f47181f46dp-647)) (f64.const 0x1.5aaff5578p-666)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.21bc52967a98dp+251) (f64.const -0x1.fcffaa32d0884p+300)) (f64.const 0x1.2p+251)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.9c78361f47374p-26) (f64.const -0x1.69d69f4edc61cp-13)) (f64.const 0x1.9c78361f48p-26)) -(assert_return (invoke "f64.no_fold_sub_add" (f64.const 0x1.4dbe68e4afab2p-367) (f64.const -0x1.dc24e5b39cd02p-361)) (f64.const 0x1.4dbe68e4afacp-367)) - -;; Test that x*y/y is not folded to x. - -(module - (func (export "f32.no_fold_mul_div") (param $x f32) (param $y f32) (result f32) - (f32.div (f32.mul (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_mul_div") (param $x f64) (param $y f64) (result f64) - (f64.div (f64.mul (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.cd859ap+54) (f32.const 0x1.6ca936p-47)) (f32.const -0x1.cd8598p+54)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.0b56b8p-26) (f32.const 0x1.48264cp-106)) (f32.const -0x1.0b56a4p-26)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.e7555cp-48) (f32.const -0x1.9161cp+48)) (f32.const -0x1.e7555ap-48)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const 0x1.aaa50ep+52) (f32.const -0x1.dfb39ep+60)) (f32.const 0x1.aaa50cp+52)) -(assert_return (invoke "f32.no_fold_mul_div" (f32.const -0x1.2b7dfap-92) (f32.const -0x1.7c4ca6p-37)) (f32.const -0x1.2b7dfep-92)) - -(assert_return (invoke "f64.no_fold_mul_div" (f64.const -0x1.3d79ff4118a1ap-837) (f64.const -0x1.b8b5dda31808cp-205)) (f64.const -0x1.3d79ff412263ep-837)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const 0x1.f894d1ee6b3a4p+384) (f64.const 0x1.8c2606d03d58ap+585)) (f64.const 0x1.f894d1ee6b3a5p+384)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const -0x1.a022260acc993p+238) (f64.const -0x1.5fbc128fc8e3cp-552)) (f64.const -0x1.a022260acc992p+238)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const 0x1.9d4b8ed174f54p-166) (f64.const 0x1.ee3d467aeeac6p-906)) (f64.const 0x1.8dcc95a053b2bp-166)) -(assert_return (invoke "f64.no_fold_mul_div" (f64.const -0x1.e95ea897cdcd4p+660) (f64.const -0x1.854d5df085f2ep-327)) (f64.const -0x1.e95ea897cdcd5p+660)) - -;; Test that x/y*y is not folded to x. - -(module - (func (export "f32.no_fold_div_mul") (param $x f32) (param $y f32) (result f32) - (f32.mul (f32.div (get_local $x) (get_local $y)) (get_local $y))) - (func (export "f64.no_fold_div_mul") (param $x f64) (param $y f64) (result f64) - (f64.mul (f64.div (get_local $x) (get_local $y)) (get_local $y))) -) - -(assert_return (invoke "f32.no_fold_div_mul" (f32.const -0x1.dc6364p+38) (f32.const 0x1.d630ecp+29)) (f32.const -0x1.dc6362p+38)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const -0x1.1f9836p-52) (f32.const -0x1.16c4e4p-18)) (f32.const -0x1.1f9838p-52)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const 0x1.c5972cp-126) (f32.const -0x1.d6659ep+7)) (f32.const 0x1.c5980ep-126)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const -0x1.2e3a9ep-74) (f32.const -0x1.353994p+59)) (f32.const -0x1.2e3a4p-74)) -(assert_return (invoke "f32.no_fold_div_mul" (f32.const 0x1.d96b82p-98) (f32.const 0x1.95d908p+27)) (f32.const 0x1.d96b84p-98)) - -(assert_return (invoke "f64.no_fold_div_mul" (f64.const 0x1.d01f913a52481p-876) (f64.const -0x1.2cd0668b28344p+184)) (f64.const 0x1.d020daf71cdcp-876)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.81cb7d400918dp-714) (f64.const 0x1.7caa643586d6ep-53)) (f64.const -0x1.81cb7d400918ep-714)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.66904c97b5c8ep-145) (f64.const 0x1.5c3481592ad4cp+428)) (f64.const -0x1.66904c97b5c8dp-145)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.e75859d2f0765p-278) (f64.const -0x1.5f19b6ab497f9p+283)) (f64.const -0x1.e75859d2f0764p-278)) -(assert_return (invoke "f64.no_fold_div_mul" (f64.const -0x1.515fe9c3b5f5p+620) (f64.const 0x1.36be869c99f7ap+989)) (f64.const -0x1.515fe9c3b5f4fp+620)) - -;; Test that x/2*2 is not folded to x. - -(module - (func (export "f32.no_fold_div2_mul2") (param $x f32) (result f32) - (f32.mul (f32.div (get_local $x) (f32.const 2.0)) (f32.const 2.0))) - (func (export "f64.no_fold_div2_mul2") (param $x f64) (result f64) - (f64.mul (f64.div (get_local $x) (f64.const 2.0)) (f64.const 2.0))) -) - -(assert_return (invoke "f32.no_fold_div2_mul2" (f32.const 0x1.fffffep-126)) (f32.const 0x1p-125)) -(assert_return (invoke "f64.no_fold_div2_mul2" (f64.const 0x1.fffffffffffffp-1022)) (f64.const 0x1p-1021)) - -;; Test that promote(demote(x)) is not folded to x. - -(module - (func (export "no_fold_demote_promote") (param $x f64) (result f64) - (f64.promote/f32 (f32.demote/f64 (get_local $x)))) -) - -(assert_return (invoke "no_fold_demote_promote" (f64.const -0x1.dece272390f5dp-133)) (f64.const -0x1.decep-133)) -(assert_return (invoke "no_fold_demote_promote" (f64.const -0x1.19e6c79938a6fp-85)) (f64.const -0x1.19e6c8p-85)) -(assert_return (invoke "no_fold_demote_promote" (f64.const 0x1.49b297ec44dc1p+107)) (f64.const 0x1.49b298p+107)) -(assert_return (invoke "no_fold_demote_promote" (f64.const -0x1.74f5bd865163p-88)) (f64.const -0x1.74f5bep-88)) -(assert_return (invoke "no_fold_demote_promote" (f64.const 0x1.26d675662367ep+104)) (f64.const 0x1.26d676p+104)) - -;; Test that demote(promote(x)) is not folded to x, and aside from NaN is -;; bit-preserving. - -(module - (func (export "no_fold_promote_demote") (param $x f32) (result f32) - (f32.demote/f64 (f64.promote/f32 (get_local $x)))) -) - -(assert_return_arithmetic_nan (invoke "no_fold_promote_demote" (f32.const nan:0x200000))) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x0p+0)) (f32.const 0x0p+0)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x0p+0)) (f32.const -0x0p+0)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1p-149)) (f32.const 0x1p-149)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1p-149)) (f32.const -0x1p-149)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1.fffffcp-127)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1.fffffcp-127)) (f32.const -0x1.fffffcp-127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1p-126)) (f32.const 0x1p-126)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1p-126)) (f32.const -0x1p-126)) -(assert_return (invoke "no_fold_promote_demote" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127)) -(assert_return (invoke "no_fold_promote_demote" (f32.const inf)) (f32.const inf)) -(assert_return (invoke "no_fold_promote_demote" (f32.const -inf)) (f32.const -inf)) - -;; Test that demote(x+promote(y)) is not folded to demote(x)+y. - -(module - (func (export "no_demote_mixed_add") (param $x f64) (param $y f32) (result f32) - (f32.demote/f64 (f64.add (get_local $x) (f64.promote/f32 (get_local $y))))) - (func (export "no_demote_mixed_add_commuted") (param $y f32) (param $x f64) (result f32) - (f32.demote/f64 (f64.add (f64.promote/f32 (get_local $y)) (get_local $x)))) -) - -(assert_return (invoke "no_demote_mixed_add" (f64.const 0x1.f51a9d04854f9p-95) (f32.const 0x1.3f4e9cp-119)) (f32.const 0x1.f51a9ep-95)) -(assert_return (invoke "no_demote_mixed_add" (f64.const 0x1.065b3d81ad8dp+37) (f32.const 0x1.758cd8p+38)) (f32.const 0x1.f8ba76p+38)) -(assert_return (invoke "no_demote_mixed_add" (f64.const 0x1.626c80963bd17p-119) (f32.const -0x1.9bbf86p-121)) (f32.const 0x1.f6f93ep-120)) -(assert_return (invoke "no_demote_mixed_add" (f64.const -0x1.0d5110e3385bbp-20) (f32.const 0x1.096f4ap-29)) (f32.const -0x1.0ccc5ap-20)) -(assert_return (invoke "no_demote_mixed_add" (f64.const -0x1.73852db4e5075p-20) (f32.const -0x1.24e474p-41)) (f32.const -0x1.738536p-20)) - -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.3f4e9cp-119) (f64.const 0x1.f51a9d04854f9p-95)) (f32.const 0x1.f51a9ep-95)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.758cd8p+38) (f64.const 0x1.065b3d81ad8dp+37)) (f32.const 0x1.f8ba76p+38)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const -0x1.9bbf86p-121) (f64.const 0x1.626c80963bd17p-119)) (f32.const 0x1.f6f93ep-120)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const 0x1.096f4ap-29) (f64.const -0x1.0d5110e3385bbp-20)) (f32.const -0x1.0ccc5ap-20)) -(assert_return (invoke "no_demote_mixed_add_commuted" (f32.const -0x1.24e474p-41) (f64.const -0x1.73852db4e5075p-20)) (f32.const -0x1.738536p-20)) - -;; Test that demote(x-promote(y)) is not folded to demote(x)-y. - -(module - (func (export "no_demote_mixed_sub") (param $x f64) (param $y f32) (result f32) - (f32.demote/f64 (f64.sub (get_local $x) (f64.promote/f32 (get_local $y))))) -) - -(assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a0a183220e9b1p+82) (f32.const 0x1.c5acf8p+61)) (f32.const 0x1.a0a174p+82)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const -0x1.6e2c5ac39f63ep+30) (f32.const 0x1.d48ca4p+17)) (f32.const -0x1.6e3bp+30)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const -0x1.98c74350dde6ap+6) (f32.const 0x1.9d69bcp-12)) (f32.const -0x1.98c7aap+6)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.0459f34091dbfp-54) (f32.const 0x1.61ad08p-71)) (f32.const 0x1.045942p-54)) -(assert_return (invoke "no_demote_mixed_sub" (f64.const 0x1.a7498dca3fdb7p+14) (f32.const 0x1.ed21c8p+15)) (f32.const -0x1.197d02p+15)) - -;; Test that converting between integer and float and back isn't folded away. - -(module - (func (export "f32.i32.no_fold_trunc_s_convert_s") (param $x f32) (result f32) - (f32.convert_s/i32 (i32.trunc_s/f32 (get_local $x)))) - (func (export "f32.i32.no_fold_trunc_u_convert_s") (param $x f32) (result f32) - (f32.convert_s/i32 (i32.trunc_u/f32 (get_local $x)))) - (func (export "f32.i32.no_fold_trunc_s_convert_u") (param $x f32) (result f32) - (f32.convert_u/i32 (i32.trunc_s/f32 (get_local $x)))) - (func (export "f32.i32.no_fold_trunc_u_convert_u") (param $x f32) (result f32) - (f32.convert_u/i32 (i32.trunc_u/f32 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_s_convert_s") (param $x f64) (result f64) - (f64.convert_s/i32 (i32.trunc_s/f64 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_u_convert_s") (param $x f64) (result f64) - (f64.convert_s/i32 (i32.trunc_u/f64 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_s_convert_u") (param $x f64) (result f64) - (f64.convert_u/i32 (i32.trunc_s/f64 (get_local $x)))) - (func (export "f64.i32.no_fold_trunc_u_convert_u") (param $x f64) (result f64) - (f64.convert_u/i32 (i32.trunc_u/f64 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_s_convert_s") (param $x f32) (result f32) - (f32.convert_s/i64 (i64.trunc_s/f32 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_u_convert_s") (param $x f32) (result f32) - (f32.convert_s/i64 (i64.trunc_u/f32 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_s_convert_u") (param $x f32) (result f32) - (f32.convert_u/i64 (i64.trunc_s/f32 (get_local $x)))) - (func (export "f32.i64.no_fold_trunc_u_convert_u") (param $x f32) (result f32) - (f32.convert_u/i64 (i64.trunc_u/f32 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_s_convert_s") (param $x f64) (result f64) - (f64.convert_s/i64 (i64.trunc_s/f64 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_u_convert_s") (param $x f64) (result f64) - (f64.convert_s/i64 (i64.trunc_u/f64 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_s_convert_u") (param $x f64) (result f64) - (f64.convert_u/i64 (i64.trunc_s/f64 (get_local $x)))) - (func (export "f64.i64.no_fold_trunc_u_convert_u") (param $x f64) (result f64) - (f64.convert_u/i64 (i64.trunc_u/f64 (get_local $x)))) -) - -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_s" (f32.const -1.5)) (f32.const -1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_s" (f32.const -0.5)) (f32.const 0.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_s_convert_u" (f32.const -1.5)) (f32.const 0x1p+32)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i32.no_fold_trunc_u_convert_u" (f32.const -0.5)) (f32.const 0.0)) - -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_s" (f64.const -1.5)) (f64.const -1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_s" (f64.const -0.5)) (f64.const 0.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_s_convert_u" (f64.const -1.5)) (f64.const 0x1.fffffffep+31)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i32.no_fold_trunc_u_convert_u" (f64.const -0.5)) (f64.const 0.0)) - -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_s" (f32.const -1.5)) (f32.const -1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_s" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_s" (f32.const -0.5)) (f32.const 0.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_s_convert_u" (f32.const -1.5)) (f32.const 0x1p+64)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_u" (f32.const 1.5)) (f32.const 1.0)) -(assert_return (invoke "f32.i64.no_fold_trunc_u_convert_u" (f32.const -0.5)) (f32.const 0.0)) - -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_s" (f64.const -1.5)) (f64.const -1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_s" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_s" (f64.const -0.5)) (f64.const 0.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_s_convert_u" (f64.const -1.5)) (f64.const 0x1p+64)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_u" (f64.const 1.5)) (f64.const 1.0)) -(assert_return (invoke "f64.i64.no_fold_trunc_u_convert_u" (f64.const -0.5)) (f64.const 0.0)) - -;; Test that dividing by a loop-invariant constant isn't optimized to be a -;; multiplication by a reciprocal, which would be particularly tempting since -;; the reciprocal computation could be hoisted. - -(module - (memory 1 1) - (func (export "init") (param $i i32) (param $x f32) (f32.store (get_local $i) (get_local $x))) - - (func (export "run") (param $n i32) (param $z f32) - (local $i i32) - (block $exit - (loop $cont - (f32.store - (get_local $i) - (f32.div (f32.load (get_local $i)) (get_local $z)) - ) - (set_local $i (i32.add (get_local $i) (i32.const 4))) - (br_if $cont (i32.lt_u (get_local $i) (get_local $n))) - ) - ) - ) - - (func (export "check") (param $i i32) (result f32) (f32.load (get_local $i))) -) - -(invoke "init" (i32.const 0) (f32.const 15.1)) -(invoke "init" (i32.const 4) (f32.const 15.2)) -(invoke "init" (i32.const 8) (f32.const 15.3)) -(invoke "init" (i32.const 12) (f32.const 15.4)) -(assert_return (invoke "check" (i32.const 0)) (f32.const 15.1)) -(assert_return (invoke "check" (i32.const 4)) (f32.const 15.2)) -(assert_return (invoke "check" (i32.const 8)) (f32.const 15.3)) -(assert_return (invoke "check" (i32.const 12)) (f32.const 15.4)) -(invoke "run" (i32.const 16) (f32.const 3.0)) -(assert_return (invoke "check" (i32.const 0)) (f32.const 0x1.422222p+2)) -(assert_return (invoke "check" (i32.const 4)) (f32.const 0x1.444444p+2)) -(assert_return (invoke "check" (i32.const 8)) (f32.const 0x1.466666p+2)) -(assert_return (invoke "check" (i32.const 12)) (f32.const 0x1.488888p+2)) - -(module - (memory 1 1) - (func (export "init") (param $i i32) (param $x f64) (f64.store (get_local $i) (get_local $x))) - - (func (export "run") (param $n i32) (param $z f64) - (local $i i32) - (block $exit - (loop $cont - (f64.store - (get_local $i) - (f64.div (f64.load (get_local $i)) (get_local $z)) - ) - (set_local $i (i32.add (get_local $i) (i32.const 8))) - (br_if $cont (i32.lt_u (get_local $i) (get_local $n))) - ) - ) - ) - - (func (export "check") (param $i i32) (result f64) (f64.load (get_local $i))) -) - -(invoke "init" (i32.const 0) (f64.const 15.1)) -(invoke "init" (i32.const 8) (f64.const 15.2)) -(invoke "init" (i32.const 16) (f64.const 15.3)) -(invoke "init" (i32.const 24) (f64.const 15.4)) -(assert_return (invoke "check" (i32.const 0)) (f64.const 15.1)) -(assert_return (invoke "check" (i32.const 8)) (f64.const 15.2)) -(assert_return (invoke "check" (i32.const 16)) (f64.const 15.3)) -(assert_return (invoke "check" (i32.const 24)) (f64.const 15.4)) -(invoke "run" (i32.const 32) (f64.const 3.0)) -(assert_return (invoke "check" (i32.const 0)) (f64.const 0x1.4222222222222p+2)) -(assert_return (invoke "check" (i32.const 8)) (f64.const 0x1.4444444444444p+2)) -(assert_return (invoke "check" (i32.const 16)) (f64.const 0x1.4666666666667p+2)) -(assert_return (invoke "check" (i32.const 24)) (f64.const 0x1.4888888888889p+2)) - -;; Test that ult/ugt/etc. aren't folded to olt/ogt/etc. - -(module - (func (export "f32.ult") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.ge (get_local $x) (get_local $y)))) - (func (export "f32.ule") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.gt (get_local $x) (get_local $y)))) - (func (export "f32.ugt") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.le (get_local $x) (get_local $y)))) - (func (export "f32.uge") (param $x f32) (param $y f32) (result i32) (i32.eqz (f32.lt (get_local $x) (get_local $y)))) - - (func (export "f64.ult") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.ge (get_local $x) (get_local $y)))) - (func (export "f64.ule") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.gt (get_local $x) (get_local $y)))) - (func (export "f64.ugt") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.le (get_local $x) (get_local $y)))) - (func (export "f64.uge") (param $x f64) (param $y f64) (result i32) (i32.eqz (f64.lt (get_local $x) (get_local $y)))) -) - -(assert_return (invoke "f32.ult" (f32.const 3.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ult" (f32.const 2.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ult" (f32.const 2.0) (f32.const 3.0)) (i32.const 1)) -(assert_return (invoke "f32.ult" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f32.ule" (f32.const 3.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ule" (f32.const 2.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.ule" (f32.const 2.0) (f32.const 3.0)) (i32.const 1)) -(assert_return (invoke "f32.ule" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f32.ugt" (f32.const 3.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.ugt" (f32.const 2.0) (f32.const 2.0)) (i32.const 0)) -(assert_return (invoke "f32.ugt" (f32.const 2.0) (f32.const 3.0)) (i32.const 0)) -(assert_return (invoke "f32.ugt" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f32.uge" (f32.const 3.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.uge" (f32.const 2.0) (f32.const 2.0)) (i32.const 1)) -(assert_return (invoke "f32.uge" (f32.const 2.0) (f32.const 3.0)) (i32.const 0)) -(assert_return (invoke "f32.uge" (f32.const 2.0) (f32.const nan)) (i32.const 1)) -(assert_return (invoke "f64.ult" (f64.const 3.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ult" (f64.const 2.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ult" (f64.const 2.0) (f64.const 3.0)) (i32.const 1)) -(assert_return (invoke "f64.ult" (f64.const 2.0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "f64.ule" (f64.const 3.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ule" (f64.const 2.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.ule" (f64.const 2.0) (f64.const 3.0)) (i32.const 1)) -(assert_return (invoke "f64.ule" (f64.const 2.0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "f64.ugt" (f64.const 3.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.ugt" (f64.const 2.0) (f64.const 2.0)) (i32.const 0)) -(assert_return (invoke "f64.ugt" (f64.const 2.0) (f64.const 3.0)) (i32.const 0)) -(assert_return (invoke "f64.ugt" (f64.const 2.0) (f64.const nan)) (i32.const 1)) -(assert_return (invoke "f64.uge" (f64.const 3.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.uge" (f64.const 2.0) (f64.const 2.0)) (i32.const 1)) -(assert_return (invoke "f64.uge" (f64.const 2.0) (f64.const 3.0)) (i32.const 0)) -(assert_return (invoke "f64.uge" (f64.const 2.0) (f64.const nan)) (i32.const 1)) - -;; Test that x= y+z is not optimized to x >= y (monotonicity). -;; http://cs.nyu.edu/courses/spring13/CSCI-UA.0201-003/lecture6.pdf - -(module - (func (export "f32.no_fold_add_le_monotonicity") (param $x f32) (param $y f32) (param $z f32) (result i32) - (f32.le (f32.add (get_local $x) (get_local $z)) (f32.add (get_local $y) (get_local $z)))) - - (func (export "f32.no_fold_add_ge_monotonicity") (param $x f32) (param $y f32) (param $z f32) (result i32) - (f32.ge (f32.add (get_local $x) (get_local $z)) (f32.add (get_local $y) (get_local $z)))) - - (func (export "f64.no_fold_add_le_monotonicity") (param $x f64) (param $y f64) (param $z f64) (result i32) - (f64.le (f64.add (get_local $x) (get_local $z)) (f64.add (get_local $y) (get_local $z)))) - - (func (export "f64.no_fold_add_ge_monotonicity") (param $x f64) (param $y f64) (param $z f64) (result i32) - (f64.ge (f64.add (get_local $x) (get_local $z)) (f64.add (get_local $y) (get_local $z)))) -) - -(assert_return (invoke "f32.no_fold_add_le_monotonicity" (f32.const 0.0) (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_fold_add_le_monotonicity" (f32.const inf) (f32.const -inf) (f32.const inf)) (i32.const 0)) -(assert_return (invoke "f64.no_fold_add_le_monotonicity" (f64.const 0.0) (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_fold_add_le_monotonicity" (f64.const inf) (f64.const -inf) (f64.const inf)) (i32.const 0)) - -;; Test that !(x < y) and friends are not optimized to x >= y and friends. - -(module - (func (export "f32.not_lt") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.lt (get_local $x) (get_local $y)))) - - (func (export "f32.not_le") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.le (get_local $x) (get_local $y)))) - - (func (export "f32.not_gt") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.gt (get_local $x) (get_local $y)))) - - (func (export "f32.not_ge") (param $x f32) (param $y f32) (result i32) - (i32.eqz (f32.ge (get_local $x) (get_local $y)))) - - (func (export "f64.not_lt") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.lt (get_local $x) (get_local $y)))) - - (func (export "f64.not_le") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.le (get_local $x) (get_local $y)))) - - (func (export "f64.not_gt") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.gt (get_local $x) (get_local $y)))) - - (func (export "f64.not_ge") (param $x f64) (param $y f64) (result i32) - (i32.eqz (f64.ge (get_local $x) (get_local $y)))) -) - -(assert_return (invoke "f32.not_lt" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f32.not_le" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f32.not_gt" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f32.not_ge" (f32.const nan) (f32.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_lt" (f64.const nan) (f64.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_le" (f64.const nan) (f64.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_gt" (f64.const nan) (f64.const 0.0)) (i32.const 1)) -(assert_return (invoke "f64.not_ge" (f64.const nan) (f64.const 0.0)) (i32.const 1)) - -;; Test that a method for approximating a "machine epsilon" produces the expected -;; approximation. -;; http://blogs.mathworks.com/cleve/2014/07/07/floating-point-numbers/#24cb4f4d-b8a9-4c19-b22b-9d2a9f7f3812 - -(module - (func (export "f32.epsilon") (result f32) - (f32.sub (f32.const 1.0) (f32.mul (f32.const 3.0) (f32.sub (f32.div (f32.const 4.0) (f32.const 3.0)) (f32.const 1.0))))) - - (func (export "f64.epsilon") (result f64) - (f64.sub (f64.const 1.0) (f64.mul (f64.const 3.0) (f64.sub (f64.div (f64.const 4.0) (f64.const 3.0)) (f64.const 1.0))))) -) - -(assert_return (invoke "f32.epsilon") (f32.const -0x1p-23)) -(assert_return (invoke "f64.epsilon") (f64.const 0x1p-52)) - -;; Test that a method for computing a "machine epsilon" produces the expected -;; result. -;; https://www.math.utah.edu/~beebe/software/ieee/ - -(module - (func (export "f32.epsilon") (result f32) - (local $x f32) - (local $result f32) - (set_local $x (f32.const 1)) - (loop $loop - (br_if $loop - (f32.gt - (f32.add - (tee_local $x - (f32.mul - (tee_local $result (get_local $x)) - (f32.const 0.5) - ) - ) - (f32.const 1) - ) - (f32.const 1) - ) - ) - ) - (get_local $result) - ) - - (func (export "f64.epsilon") (result f64) - (local $x f64) - (local $result f64) - (set_local $x (f64.const 1)) - (loop $loop - (br_if $loop - (f64.gt - (f64.add - (tee_local $x - (f64.mul - (tee_local $result (get_local $x)) - (f64.const 0.5) - ) - ) - (f64.const 1) - ) - (f64.const 1) - ) - ) - ) - (get_local $result) - ) -) - -(assert_return (invoke "f32.epsilon") (f32.const 0x1p-23)) -(assert_return (invoke "f64.epsilon") (f64.const 0x1p-52)) - -;; Test that floating-point numbers are not optimized as if they form a -;; trichotomy. - -(module - (func (export "f32.no_trichotomy_lt") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.lt (get_local $x) (get_local $y)) (f32.ge (get_local $x) (get_local $y)))) - (func (export "f32.no_trichotomy_le") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.le (get_local $x) (get_local $y)) (f32.gt (get_local $x) (get_local $y)))) - (func (export "f32.no_trichotomy_gt") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.gt (get_local $x) (get_local $y)) (f32.le (get_local $x) (get_local $y)))) - (func (export "f32.no_trichotomy_ge") (param $x f32) (param $y f32) (result i32) - (i32.or (f32.ge (get_local $x) (get_local $y)) (f32.lt (get_local $x) (get_local $y)))) - - (func (export "f64.no_trichotomy_lt") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.lt (get_local $x) (get_local $y)) (f64.ge (get_local $x) (get_local $y)))) - (func (export "f64.no_trichotomy_le") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.le (get_local $x) (get_local $y)) (f64.gt (get_local $x) (get_local $y)))) - (func (export "f64.no_trichotomy_gt") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.gt (get_local $x) (get_local $y)) (f64.le (get_local $x) (get_local $y)))) - (func (export "f64.no_trichotomy_ge") (param $x f64) (param $y f64) (result i32) - (i32.or (f64.ge (get_local $x) (get_local $y)) (f64.lt (get_local $x) (get_local $y)))) -) - -(assert_return (invoke "f32.no_trichotomy_lt" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_trichotomy_le" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_trichotomy_gt" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f32.no_trichotomy_ge" (f32.const 0.0) (f32.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_lt" (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_le" (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_gt" (f64.const 0.0) (f64.const nan)) (i32.const 0)) -(assert_return (invoke "f64.no_trichotomy_ge" (f64.const 0.0) (f64.const nan)) (i32.const 0)) - -;; Some test harnesses which can run this testsuite are unable to perform tests -;; of NaN bitpatterns. The following tests whether the underlying platform is -;; generally producing the kinds of NaNs expected. -(module - (func (export "f32.arithmetic_nan_bitpattern") - (param $x i32) (param $y i32) (result i32) - (i32.and (i32.reinterpret/f32 - (f32.div - (f32.reinterpret/i32 (get_local $x)) - (f32.reinterpret/i32 (get_local $y)))) - (i32.const 0x7fc00000))) - (func (export "f32.canonical_nan_bitpattern") - (param $x i32) (param $y i32) (result i32) - (i32.and (i32.reinterpret/f32 - (f32.div - (f32.reinterpret/i32 (get_local $x)) - (f32.reinterpret/i32 (get_local $y)))) - (i32.const 0x7fffffff))) - (func (export "f32.nonarithmetic_nan_bitpattern") - (param $x i32) (result i32) - (i32.reinterpret/f32 (f32.neg (f32.reinterpret/i32 (get_local $x))))) - - (func (export "f64.arithmetic_nan_bitpattern") - (param $x i64) (param $y i64) (result i64) - (i64.and (i64.reinterpret/f64 - (f64.div - (f64.reinterpret/i64 (get_local $x)) - (f64.reinterpret/i64 (get_local $y)))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.canonical_nan_bitpattern") - (param $x i64) (param $y i64) (result i64) - (i64.and (i64.reinterpret/f64 - (f64.div - (f64.reinterpret/i64 (get_local $x)) - (f64.reinterpret/i64 (get_local $y)))) - (i64.const 0x7fffffffffffffff))) - (func (export "f64.nonarithmetic_nan_bitpattern") - (param $x i64) (result i64) - (i64.reinterpret/f64 (f64.neg (f64.reinterpret/i64 (get_local $x))))) - - ;; Versions of no_fold testcases that only care about NaN bitpatterns. - (func (export "f32.no_fold_sub_zero") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.sub (f32.reinterpret/i32 (get_local $x)) (f32.const 0.0))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_neg0_sub") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.sub (f32.const -0.0) (f32.reinterpret/i32 (get_local $x)))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_mul_one") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.mul (f32.reinterpret/i32 (get_local $x)) (f32.const 1.0))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_neg1_mul") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.mul (f32.const -1.0) (f32.reinterpret/i32 (get_local $x)))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_div_one") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.div (f32.reinterpret/i32 (get_local $x)) (f32.const 1.0))) - (i32.const 0x7fc00000))) - (func (export "f32.no_fold_div_neg1") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.div (f32.reinterpret/i32 (get_local $x)) (f32.const -1.0))) - (i32.const 0x7fc00000))) - (func (export "f64.no_fold_sub_zero") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.sub (f64.reinterpret/i64 (get_local $x)) (f64.const 0.0))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_neg0_sub") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.sub (f64.const -0.0) (f64.reinterpret/i64 (get_local $x)))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_mul_one") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.mul (f64.reinterpret/i64 (get_local $x)) (f64.const 1.0))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_neg1_mul") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.mul (f64.const -1.0) (f64.reinterpret/i64 (get_local $x)))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_div_one") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.div (f64.reinterpret/i64 (get_local $x)) (f64.const 1.0))) - (i64.const 0x7ff8000000000000))) - (func (export "f64.no_fold_div_neg1") (param $x i64) (result i64) - (i64.and (i64.reinterpret/f64 (f64.div (f64.reinterpret/i64 (get_local $x)) (f64.const -1.0))) - (i64.const 0x7ff8000000000000))) - (func (export "no_fold_promote_demote") (param $x i32) (result i32) - (i32.and (i32.reinterpret/f32 (f32.demote/f64 (f64.promote/f32 (f32.reinterpret/i32 (get_local $x))))) - (i32.const 0x7fc00000))) -) - -(assert_return (invoke "f32.arithmetic_nan_bitpattern" (i32.const 0x7f803210) (i32.const 0x7f803210)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0) (i32.const 0)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0x7fc00000) (i32.const 0x7fc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0xffc00000) (i32.const 0x7fc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0x7fc00000) (i32.const 0xffc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.canonical_nan_bitpattern" (i32.const 0xffc00000) (i32.const 0xffc00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0x7fc03210)) (i32.const 0xffc03210)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0xffc03210)) (i32.const 0x7fc03210)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0x7f803210)) (i32.const 0xff803210)) -(assert_return (invoke "f32.nonarithmetic_nan_bitpattern" (i32.const 0xff803210)) (i32.const 0x7f803210)) -(assert_return (invoke "f64.arithmetic_nan_bitpattern" (i64.const 0x7ff0000000003210) (i64.const 0x7ff0000000003210)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0) (i64.const 0)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0x7ff8000000000000) (i64.const 0x7ff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0xfff8000000000000) (i64.const 0x7ff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0x7ff8000000000000) (i64.const 0xfff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.canonical_nan_bitpattern" (i64.const 0xfff8000000000000) (i64.const 0xfff8000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0x7ff8000000003210)) (i64.const 0xfff8000000003210)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0xfff8000000003210)) (i64.const 0x7ff8000000003210)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0x7ff0000000003210)) (i64.const 0xfff0000000003210)) -(assert_return (invoke "f64.nonarithmetic_nan_bitpattern" (i64.const 0xfff0000000003210)) (i64.const 0x7ff0000000003210)) -(assert_return (invoke "f32.no_fold_sub_zero" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_neg0_sub" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_mul_one" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_neg1_mul" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_div_one" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f32.no_fold_div_neg1" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) -(assert_return (invoke "f64.no_fold_sub_zero" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_neg0_sub" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_mul_one" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_neg1_mul" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_div_one" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.no_fold_div_neg1" (i64.const 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) -(assert_return (invoke "no_fold_promote_demote" (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) - -;; Test that IEEE 754 double precision does, in fact, compute a certain dot -;; product correctly. - -(module - (func (export "dot_product_example") - (param $x0 f64) (param $x1 f64) (param $x2 f64) (param $x3 f64) - (param $y0 f64) (param $y1 f64) (param $y2 f64) (param $y3 f64) - (result f64) - (f64.add (f64.add (f64.add - (f64.mul (get_local $x0) (get_local $y0)) - (f64.mul (get_local $x1) (get_local $y1))) - (f64.mul (get_local $x2) (get_local $y2))) - (f64.mul (get_local $x3) (get_local $y3))) - ) - - (func (export "with_binary_sum_collapse") - (param $x0 f64) (param $x1 f64) (param $x2 f64) (param $x3 f64) - (param $y0 f64) (param $y1 f64) (param $y2 f64) (param $y3 f64) - (result f64) - (f64.add (f64.add (f64.mul (get_local $x0) (get_local $y0)) - (f64.mul (get_local $x1) (get_local $y1))) - (f64.add (f64.mul (get_local $x2) (get_local $y2)) - (f64.mul (get_local $x3) (get_local $y3)))) - ) -) - -(assert_return (invoke "dot_product_example" - (f64.const 3.2e7) (f64.const 1.0) (f64.const -1.0) (f64.const 8.0e7) - (f64.const 4.0e7) (f64.const 1.0) (f64.const -1.0) (f64.const -1.6e7)) - (f64.const 2.0)) -(assert_return (invoke "with_binary_sum_collapse" - (f64.const 3.2e7) (f64.const 1.0) (f64.const -1.0) (f64.const 8.0e7) - (f64.const 4.0e7) (f64.const 1.0) (f64.const -1.0) (f64.const -1.6e7)) - (f64.const 2.0)) - -;; http://www.vinc17.org/research/fptest.en.html#contract2fma - -(module - (func (export "f32.contract2fma") - (param $x f32) (param $y f32) (result f32) - (f32.sqrt (f32.sub (f32.mul (get_local $x) (get_local $x)) - (f32.mul (get_local $y) (get_local $y))))) - (func (export "f64.contract2fma") - (param $x f64) (param $y f64) (result f64) - (f64.sqrt (f64.sub (f64.mul (get_local $x) (get_local $x)) - (f64.mul (get_local $y) (get_local $y))))) -) - -(assert_return (invoke "f32.contract2fma" (f32.const 1.0) (f32.const 1.0)) (f32.const 0.0)) -(assert_return (invoke "f32.contract2fma" (f32.const 0x1.19999ap+0) (f32.const 0x1.19999ap+0)) (f32.const 0.0)) -(assert_return (invoke "f32.contract2fma" (f32.const 0x1.333332p+0) (f32.const 0x1.333332p+0)) (f32.const 0.0)) -(assert_return (invoke "f64.contract2fma" (f64.const 1.0) (f64.const 1.0)) (f64.const 0.0)) -(assert_return (invoke "f64.contract2fma" (f64.const 0x1.199999999999ap+0) (f64.const 0x1.199999999999ap+0)) (f64.const 0.0)) -(assert_return (invoke "f64.contract2fma" (f64.const 0x1.3333333333333p+0) (f64.const 0x1.3333333333333p+0)) (f64.const 0.0)) - -;; Test that floating-point isn't implemented with QuickBasic for MS-DOS. -;; https://support.microsoft.com/en-us/help/42980/-complete-tutorial-to-understand-ieee-floating-point-errors - -(module - (func (export "f32.division_by_small_number") - (param $a f32) (param $b f32) (param $c f32) (result f32) - (f32.sub (get_local $a) (f32.div (get_local $b) (get_local $c)))) - (func (export "f64.division_by_small_number") - (param $a f64) (param $b f64) (param $c f64) (result f64) - (f64.sub (get_local $a) (f64.div (get_local $b) (get_local $c)))) -) - -(assert_return (invoke "f32.division_by_small_number" (f32.const 112000000) (f32.const 100000) (f32.const 0.0009)) (f32.const 888888)) -(assert_return (invoke "f64.division_by_small_number" (f64.const 112000000) (f64.const 100000) (f64.const 0.0009)) (f64.const 888888.8888888806)) - -;; Test a simple golden ratio computation. -;; http://mathworld.wolfram.com/GoldenRatio.html - -(module - (func (export "f32.golden_ratio") (param $a f32) (param $b f32) (param $c f32) (result f32) - (f32.mul (get_local 0) (f32.add (get_local 1) (f32.sqrt (get_local 2))))) - (func (export "f64.golden_ratio") (param $a f64) (param $b f64) (param $c f64) (result f64) - (f64.mul (get_local 0) (f64.add (get_local 1) (f64.sqrt (get_local 2))))) -) - -(assert_return (invoke "f32.golden_ratio" (f32.const 0.5) (f32.const 1.0) (f32.const 5.0)) (f32.const 1.618034)) -(assert_return (invoke "f64.golden_ratio" (f64.const 0.5) (f64.const 1.0) (f64.const 5.0)) (f64.const 1.618033988749895)) - -;; Test some silver means computations. -;; http://mathworld.wolfram.com/SilverRatio.html - -(module - (func (export "f32.silver_means") (param $n f32) (result f32) - (f32.mul (f32.const 0.5) - (f32.add (get_local $n) - (f32.sqrt (f32.add (f32.mul (get_local $n) (get_local $n)) - (f32.const 4.0)))))) - (func (export "f64.silver_means") (param $n f64) (result f64) - (f64.mul (f64.const 0.5) - (f64.add (get_local $n) - (f64.sqrt (f64.add (f64.mul (get_local $n) (get_local $n)) - (f64.const 4.0)))))) -) - -(assert_return (invoke "f32.silver_means" (f32.const 0.0)) (f32.const 1.0)) -(assert_return (invoke "f32.silver_means" (f32.const 1.0)) (f32.const 1.6180340)) -(assert_return (invoke "f32.silver_means" (f32.const 2.0)) (f32.const 2.4142136)) -(assert_return (invoke "f32.silver_means" (f32.const 3.0)) (f32.const 3.3027756)) -(assert_return (invoke "f32.silver_means" (f32.const 4.0)) (f32.const 4.2360680)) -(assert_return (invoke "f32.silver_means" (f32.const 5.0)) (f32.const 5.1925821)) -(assert_return (invoke "f64.silver_means" (f64.const 0.0)) (f64.const 1.0)) -(assert_return (invoke "f64.silver_means" (f64.const 1.0)) (f64.const 1.618033988749895)) -(assert_return (invoke "f64.silver_means" (f64.const 2.0)) (f64.const 2.414213562373095)) -(assert_return (invoke "f64.silver_means" (f64.const 3.0)) (f64.const 3.302775637731995)) -(assert_return (invoke "f64.silver_means" (f64.const 4.0)) (f64.const 4.236067977499790)) -(assert_return (invoke "f64.silver_means" (f64.const 5.0)) (f64.const 5.192582403567252)) - -;; Test that an f64 0.4 isn't double-rounded as via extended precision. -;; https://bugs.llvm.org/show_bug.cgi?id=11200 - -(module - (func (export "point_four") (param $four f64) (param $ten f64) (result i32) - (f64.lt (f64.div (get_local $four) (get_local $ten)) (f64.const 0.4))) -) - -(assert_return (invoke "point_four" (f64.const 4.0) (f64.const 10.0)) (i32.const 0)) - -;; Test an approximation function for tau; it should produces the correctly -;; rounded result after (and only after) the expected number of iterations. - -(module - (func (export "tau") (param i32) (result f64) - (local f64 f64 f64 f64) - f64.const 0x0p+0 - set_local 1 - block - get_local 0 - i32.const 1 - i32.lt_s - br_if 0 - f64.const 0x1p+0 - set_local 2 - f64.const 0x0p+0 - set_local 3 - loop - get_local 1 - get_local 2 - f64.const 0x1p+3 - get_local 3 - f64.const 0x1p+3 - f64.mul - tee_local 4 - f64.const 0x1p+0 - f64.add - f64.div - f64.const 0x1p+2 - get_local 4 - f64.const 0x1p+2 - f64.add - f64.div - f64.sub - f64.const 0x1p+1 - get_local 4 - f64.const 0x1.4p+2 - f64.add - f64.div - f64.sub - f64.const 0x1p+1 - get_local 4 - f64.const 0x1.8p+2 - f64.add - f64.div - f64.sub - f64.mul - f64.add - set_local 1 - get_local 3 - f64.const 0x1p+0 - f64.add - set_local 3 - get_local 2 - f64.const 0x1p-4 - f64.mul - set_local 2 - get_local 0 - i32.const -1 - i32.add - tee_local 0 - br_if 0 - end - end - get_local 1 - ) -) - -(assert_return (invoke "tau" (i32.const 10)) (f64.const 0x1.921fb54442d14p+2)) -(assert_return (invoke "tau" (i32.const 11)) (f64.const 0x1.921fb54442d18p+2)) - -;; Test that y < 0 ? x : (x + 1) is not folded to x + (y < 0). - -(module - (func (export "f32.no_fold_conditional_inc") (param $x f32) (param $y f32) (result f32) - (select (get_local $x) - (f32.add (get_local $x) (f32.const 1.0)) - (f32.lt (get_local $y) (f32.const 0.0)))) - (func (export "f64.no_fold_conditional_inc") (param $x f64) (param $y f64) (result f64) - (select (get_local $x) - (f64.add (get_local $x) (f64.const 1.0)) - (f64.lt (get_local $y) (f64.const 0.0)))) -) - -(assert_return (invoke "f32.no_fold_conditional_inc" (f32.const -0.0) (f32.const -1.0)) (f32.const -0.0)) -(assert_return (invoke "f64.no_fold_conditional_inc" (f64.const -0.0) (f64.const -1.0)) (f64.const -0.0)) diff --git a/tests/samples/float_literals.wast b/tests/samples/float_literals.wast deleted file mode 100644 index ed5969b..0000000 --- a/tests/samples/float_literals.wast +++ /dev/null @@ -1,499 +0,0 @@ -;; Test floating-point literal parsing. - -(module - ;; f32 special values - (func (export "f32.nan") (result i32) (i32.reinterpret/f32 (f32.const nan))) - (func (export "f32.positive_nan") (result i32) (i32.reinterpret/f32 (f32.const +nan))) - (func (export "f32.negative_nan") (result i32) (i32.reinterpret/f32 (f32.const -nan))) - (func (export "f32.plain_nan") (result i32) (i32.reinterpret/f32 (f32.const nan:0x400000))) - (func (export "f32.informally_known_as_plain_snan") (result i32) (i32.reinterpret/f32 (f32.const nan:0x200000))) - (func (export "f32.all_ones_nan") (result i32) (i32.reinterpret/f32 (f32.const -nan:0x7fffff))) - (func (export "f32.misc_nan") (result i32) (i32.reinterpret/f32 (f32.const nan:0x012345))) - (func (export "f32.misc_positive_nan") (result i32) (i32.reinterpret/f32 (f32.const +nan:0x304050))) - (func (export "f32.misc_negative_nan") (result i32) (i32.reinterpret/f32 (f32.const -nan:0x2abcde))) - (func (export "f32.infinity") (result i32) (i32.reinterpret/f32 (f32.const inf))) - (func (export "f32.positive_infinity") (result i32) (i32.reinterpret/f32 (f32.const +inf))) - (func (export "f32.negative_infinity") (result i32) (i32.reinterpret/f32 (f32.const -inf))) - - ;; f32 numbers - (func (export "f32.zero") (result i32) (i32.reinterpret/f32 (f32.const 0x0.0p0))) - (func (export "f32.positive_zero") (result i32) (i32.reinterpret/f32 (f32.const +0x0.0p0))) - (func (export "f32.negative_zero") (result i32) (i32.reinterpret/f32 (f32.const -0x0.0p0))) - (func (export "f32.misc") (result i32) (i32.reinterpret/f32 (f32.const 0x1.921fb6p+2))) - (func (export "f32.min_positive") (result i32) (i32.reinterpret/f32 (f32.const 0x1p-149))) - (func (export "f32.min_normal") (result i32) (i32.reinterpret/f32 (f32.const 0x1p-126))) - (func (export "f32.max_finite") (result i32) (i32.reinterpret/f32 (f32.const 0x1.fffffep+127))) - (func (export "f32.max_subnormal") (result i32) (i32.reinterpret/f32 (f32.const 0x1.fffffcp-127))) - (func (export "f32.trailing_dot") (result i32) (i32.reinterpret/f32 (f32.const 0x1.p10))) - - ;; f32 in decimal format - (func (export "f32_dec.zero") (result i32) (i32.reinterpret/f32 (f32.const 0.0e0))) - (func (export "f32_dec.positive_zero") (result i32) (i32.reinterpret/f32 (f32.const +0.0e0))) - (func (export "f32_dec.negative_zero") (result i32) (i32.reinterpret/f32 (f32.const -0.0e0))) - (func (export "f32_dec.misc") (result i32) (i32.reinterpret/f32 (f32.const 6.28318548202514648))) - (func (export "f32_dec.min_positive") (result i32) (i32.reinterpret/f32 (f32.const 1.4013e-45))) - (func (export "f32_dec.min_normal") (result i32) (i32.reinterpret/f32 (f32.const 1.1754944e-38))) - (func (export "f32_dec.max_subnormal") (result i32) (i32.reinterpret/f32 (f32.const 1.1754942e-38))) - (func (export "f32_dec.max_finite") (result i32) (i32.reinterpret/f32 (f32.const 3.4028234e+38))) - (func (export "f32_dec.trailing_dot") (result i32) (i32.reinterpret/f32 (f32.const 1.e10))) - - ;; f64 special values - (func (export "f64.nan") (result i64) (i64.reinterpret/f64 (f64.const nan))) - (func (export "f64.positive_nan") (result i64) (i64.reinterpret/f64 (f64.const +nan))) - (func (export "f64.negative_nan") (result i64) (i64.reinterpret/f64 (f64.const -nan))) - (func (export "f64.plain_nan") (result i64) (i64.reinterpret/f64 (f64.const nan:0x8000000000000))) - (func (export "f64.informally_known_as_plain_snan") (result i64) (i64.reinterpret/f64 (f64.const nan:0x4000000000000))) - (func (export "f64.all_ones_nan") (result i64) (i64.reinterpret/f64 (f64.const -nan:0xfffffffffffff))) - (func (export "f64.misc_nan") (result i64) (i64.reinterpret/f64 (f64.const nan:0x0123456789abc))) - (func (export "f64.misc_positive_nan") (result i64) (i64.reinterpret/f64 (f64.const +nan:0x3040506070809))) - (func (export "f64.misc_negative_nan") (result i64) (i64.reinterpret/f64 (f64.const -nan:0x2abcdef012345))) - (func (export "f64.infinity") (result i64) (i64.reinterpret/f64 (f64.const inf))) - (func (export "f64.positive_infinity") (result i64) (i64.reinterpret/f64 (f64.const +inf))) - (func (export "f64.negative_infinity") (result i64) (i64.reinterpret/f64 (f64.const -inf))) - - ;; f64 numbers - (func (export "f64.zero") (result i64) (i64.reinterpret/f64 (f64.const 0x0.0p0))) - (func (export "f64.positive_zero") (result i64) (i64.reinterpret/f64 (f64.const +0x0.0p0))) - (func (export "f64.negative_zero") (result i64) (i64.reinterpret/f64 (f64.const -0x0.0p0))) - (func (export "f64.misc") (result i64) (i64.reinterpret/f64 (f64.const 0x1.921fb54442d18p+2))) - (func (export "f64.min_positive") (result i64) (i64.reinterpret/f64 (f64.const 0x0.0000000000001p-1022))) - (func (export "f64.min_normal") (result i64) (i64.reinterpret/f64 (f64.const 0x1p-1022))) - (func (export "f64.max_subnormal") (result i64) (i64.reinterpret/f64 (f64.const 0x0.fffffffffffffp-1022))) - (func (export "f64.max_finite") (result i64) (i64.reinterpret/f64 (f64.const 0x1.fffffffffffffp+1023))) - (func (export "f64.trailing_dot") (result i64) (i64.reinterpret/f64 (f64.const 0x1.p100))) - - ;; f64 numbers in decimal format - (func (export "f64_dec.zero") (result i64) (i64.reinterpret/f64 (f64.const 0.0e0))) - (func (export "f64_dec.positive_zero") (result i64) (i64.reinterpret/f64 (f64.const +0.0e0))) - (func (export "f64_dec.negative_zero") (result i64) (i64.reinterpret/f64 (f64.const -0.0e0))) - (func (export "f64_dec.misc") (result i64) (i64.reinterpret/f64 (f64.const 6.28318530717958623))) - (func (export "f64_dec.min_positive") (result i64) (i64.reinterpret/f64 (f64.const 4.94066e-324))) - (func (export "f64_dec.min_normal") (result i64) (i64.reinterpret/f64 (f64.const 2.2250738585072012e-308))) - (func (export "f64_dec.max_subnormal") (result i64) (i64.reinterpret/f64 (f64.const 2.2250738585072011e-308))) - (func (export "f64_dec.max_finite") (result i64) (i64.reinterpret/f64 (f64.const 1.7976931348623157e+308))) - (func (export "f64_dec.trailing_dot") (result i64) (i64.reinterpret/f64 (f64.const 1.e100))) - - (func (export "f32-dec-sep1") (result f32) (f32.const 1_000_000)) - (func (export "f32-dec-sep2") (result f32) (f32.const 1_0_0_0)) - (func (export "f32-dec-sep3") (result f32) (f32.const 100_3.141_592)) - (func (export "f32-dec-sep4") (result f32) (f32.const 99e+1_3)) - (func (export "f32-dec-sep5") (result f32) (f32.const 122_000.11_3_54E0_2_3)) - (func (export "f32-hex-sep1") (result f32) (f32.const 0xa_0f_00_99)) - (func (export "f32-hex-sep2") (result f32) (f32.const 0x1_a_A_0_f)) - (func (export "f32-hex-sep3") (result f32) (f32.const 0xa0_ff.f141_a59a)) - (func (export "f32-hex-sep4") (result f32) (f32.const 0xf0P+1_3)) - (func (export "f32-hex-sep5") (result f32) (f32.const 0x2a_f00a.1f_3_eep2_3)) - - (func (export "f64-dec-sep1") (result f64) (f64.const 1_000_000)) - (func (export "f64-dec-sep2") (result f64) (f64.const 1_0_0_0)) - (func (export "f64-dec-sep3") (result f64) (f64.const 100_3.141_592)) - (func (export "f64-dec-sep4") (result f64) (f64.const 99e-1_23)) - (func (export "f64-dec-sep5") (result f64) (f64.const 122_000.11_3_54e0_2_3)) - (func (export "f64-hex-sep1") (result f64) (f64.const 0xa_f00f_0000_9999)) - (func (export "f64-hex-sep2") (result f64) (f64.const 0x1_a_A_0_f)) - (func (export "f64-hex-sep3") (result f64) (f64.const 0xa0_ff.f141_a59a)) - (func (export "f64-hex-sep4") (result f64) (f64.const 0xf0P+1_3)) - (func (export "f64-hex-sep5") (result f64) (f64.const 0x2a_f00a.1f_3_eep2_3)) -) - -(assert_return (invoke "f32.nan") (i32.const 0x7fc00000)) -(assert_return (invoke "f32.positive_nan") (i32.const 0x7fc00000)) -(assert_return (invoke "f32.negative_nan") (i32.const 0xffc00000)) -(assert_return (invoke "f32.plain_nan") (i32.const 0x7fc00000)) -(assert_return (invoke "f32.informally_known_as_plain_snan") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.all_ones_nan") (i32.const 0xffffffff)) -(assert_return (invoke "f32.misc_nan") (i32.const 0x7f812345)) -(assert_return (invoke "f32.misc_positive_nan") (i32.const 0x7fb04050)) -(assert_return (invoke "f32.misc_negative_nan") (i32.const 0xffaabcde)) -(assert_return (invoke "f32.infinity") (i32.const 0x7f800000)) -(assert_return (invoke "f32.positive_infinity") (i32.const 0x7f800000)) -(assert_return (invoke "f32.negative_infinity") (i32.const 0xff800000)) -(assert_return (invoke "f32.zero") (i32.const 0)) -(assert_return (invoke "f32.positive_zero") (i32.const 0)) -(assert_return (invoke "f32.negative_zero") (i32.const 0x80000000)) -(assert_return (invoke "f32.misc") (i32.const 0x40c90fdb)) -(assert_return (invoke "f32.min_positive") (i32.const 1)) -(assert_return (invoke "f32.min_normal") (i32.const 0x800000)) -(assert_return (invoke "f32.max_subnormal") (i32.const 0x7fffff)) -(assert_return (invoke "f32.max_finite") (i32.const 0x7f7fffff)) -(assert_return (invoke "f32.trailing_dot") (i32.const 0x44800000)) -(assert_return (invoke "f32_dec.zero") (i32.const 0)) -(assert_return (invoke "f32_dec.positive_zero") (i32.const 0)) -(assert_return (invoke "f32_dec.negative_zero") (i32.const 0x80000000)) -(assert_return (invoke "f32_dec.misc") (i32.const 0x40c90fdb)) -(assert_return (invoke "f32_dec.min_positive") (i32.const 1)) -(assert_return (invoke "f32_dec.min_normal") (i32.const 0x800000)) -(assert_return (invoke "f32_dec.max_subnormal") (i32.const 0x7fffff)) -(assert_return (invoke "f32_dec.max_finite") (i32.const 0x7f7fffff)) -(assert_return (invoke "f32_dec.trailing_dot") (i32.const 0x501502f9)) - -(assert_return (invoke "f64.nan") (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.positive_nan") (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.negative_nan") (i64.const 0xfff8000000000000)) -(assert_return (invoke "f64.plain_nan") (i64.const 0x7ff8000000000000)) -(assert_return (invoke "f64.informally_known_as_plain_snan") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.all_ones_nan") (i64.const 0xffffffffffffffff)) -(assert_return (invoke "f64.misc_nan") (i64.const 0x7ff0123456789abc)) -(assert_return (invoke "f64.misc_positive_nan") (i64.const 0x7ff3040506070809)) -(assert_return (invoke "f64.misc_negative_nan") (i64.const 0xfff2abcdef012345)) -(assert_return (invoke "f64.infinity") (i64.const 0x7ff0000000000000)) -(assert_return (invoke "f64.positive_infinity") (i64.const 0x7ff0000000000000)) -(assert_return (invoke "f64.negative_infinity") (i64.const 0xfff0000000000000)) -(assert_return (invoke "f64.zero") (i64.const 0)) -(assert_return (invoke "f64.positive_zero") (i64.const 0)) -(assert_return (invoke "f64.negative_zero") (i64.const 0x8000000000000000)) -(assert_return (invoke "f64.misc") (i64.const 0x401921fb54442d18)) -(assert_return (invoke "f64.min_positive") (i64.const 1)) -(assert_return (invoke "f64.min_normal") (i64.const 0x10000000000000)) -(assert_return (invoke "f64.max_subnormal") (i64.const 0xfffffffffffff)) -(assert_return (invoke "f64.max_finite") (i64.const 0x7fefffffffffffff)) -(assert_return (invoke "f64.trailing_dot") (i64.const 0x4630000000000000)) -(assert_return (invoke "f64_dec.zero") (i64.const 0)) -(assert_return (invoke "f64_dec.positive_zero") (i64.const 0)) -(assert_return (invoke "f64_dec.negative_zero") (i64.const 0x8000000000000000)) -(assert_return (invoke "f64_dec.misc") (i64.const 0x401921fb54442d18)) -(assert_return (invoke "f64_dec.min_positive") (i64.const 1)) -(assert_return (invoke "f64_dec.min_normal") (i64.const 0x10000000000000)) -(assert_return (invoke "f64_dec.max_subnormal") (i64.const 0xfffffffffffff)) -(assert_return (invoke "f64_dec.max_finite") (i64.const 0x7fefffffffffffff)) -(assert_return (invoke "f64_dec.trailing_dot") (i64.const 0x54b249ad2594c37d)) - -(assert_return (invoke "f32-dec-sep1") (f32.const 1000000)) -(assert_return (invoke "f32-dec-sep2") (f32.const 1000)) -(assert_return (invoke "f32-dec-sep3") (f32.const 1003.141592)) -(assert_return (invoke "f32-dec-sep4") (f32.const 99e+13)) -(assert_return (invoke "f32-dec-sep5") (f32.const 122000.11354e23)) -(assert_return (invoke "f32-hex-sep1") (f32.const 0xa0f0099)) -(assert_return (invoke "f32-hex-sep2") (f32.const 0x1aa0f)) -(assert_return (invoke "f32-hex-sep3") (f32.const 0xa0ff.f141a59a)) -(assert_return (invoke "f32-hex-sep4") (f32.const 0xf0P+13)) -(assert_return (invoke "f32-hex-sep5") (f32.const 0x2af00a.1f3eep23)) - -(assert_return (invoke "f64-dec-sep1") (f64.const 1000000)) -(assert_return (invoke "f64-dec-sep2") (f64.const 1000)) -(assert_return (invoke "f64-dec-sep3") (f64.const 1003.141592)) -(assert_return (invoke "f64-dec-sep4") (f64.const 99e-123)) -(assert_return (invoke "f64-dec-sep5") (f64.const 122000.11354e23)) -(assert_return (invoke "f64-hex-sep1") (f64.const 0xaf00f00009999)) -(assert_return (invoke "f64-hex-sep2") (f64.const 0x1aa0f)) -(assert_return (invoke "f64-hex-sep3") (f64.const 0xa0ff.f141a59a)) -(assert_return (invoke "f64-hex-sep4") (f64.const 0xf0P+13)) -(assert_return (invoke "f64-hex-sep5") (f64.const 0x2af00a.1f3eep23)) - -;; Test parsing a float from binary -(module binary - ;; (func (export "4294967249") (result f64) (f64.const 4294967249)) - "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60" - "\00\01\7c\03\82\80\80\80\00\01\00\07\8e\80\80\80" - "\00\01\0a\34\32\39\34\39\36\37\32\34\39\00\00\0a" - "\91\80\80\80\00\01\8b\80\80\80\00\00\44\00\00\20" - "\fa\ff\ff\ef\41\0b" -) - -(assert_return (invoke "4294967249") (f64.const 4294967249)) - -(assert_malformed - (module quote "(global f32 (f32.const _100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const +_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const -_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 99_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1__000))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _1e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _1.0e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 1.0e_+1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const _0x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0_x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x00_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0xff__ffff))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_1p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x_1.0p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f32 (f32.const 0x1.0p_+1))") - "unknown operator" -) - -(assert_malformed - (module quote "(global f64 (f64.const _100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const +_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const -_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 99_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1__000))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _1e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _1.0e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0_e1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 1.0e_+1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const _0x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0_x100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_100))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x00_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0xff__ffff))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_1.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1_.0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1._0))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_1p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x_1.0p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p1_))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0_p1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p+_1))") - "unknown operator" -) -(assert_malformed - (module quote "(global f64 (f64.const 0x1.0p_+1))") - "unknown operator" -) diff --git a/tests/samples/float_memory.wast b/tests/samples/float_memory.wast deleted file mode 100644 index 3801158..0000000 --- a/tests/samples/float_memory.wast +++ /dev/null @@ -1,157 +0,0 @@ -;; Test that floating-point load and store are bit-preserving. - -;; Test that load and store do not canonicalize NaNs as x87 does. - -(module - (memory (data "\00\00\a0\7f")) - - (func (export "f32.load") (result f32) (f32.load (i32.const 0))) - (func (export "i32.load") (result i32) (i32.load (i32.const 0))) - (func (export "f32.store") (f32.store (i32.const 0) (f32.const nan:0x200000))) - (func (export "i32.store") (i32.store (i32.const 0) (i32.const 0x7fa00000))) - (func (export "reset") (i32.store (i32.const 0) (i32.const 0))) -) - -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "f32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "i32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) - -(module - (memory (data "\00\00\00\00\00\00\f4\7f")) - - (func (export "f64.load") (result f64) (f64.load (i32.const 0))) - (func (export "i64.load") (result i64) (i64.load (i32.const 0))) - (func (export "f64.store") (f64.store (i32.const 0) (f64.const nan:0x4000000000000))) - (func (export "i64.store") (i64.store (i32.const 0) (i64.const 0x7ff4000000000000))) - (func (export "reset") (i64.store (i32.const 0) (i64.const 0))) -) - -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "f64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "i64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) - -;; Test that unaligned load and store do not canonicalize NaNs. - -(module - (memory (data "\00\00\00\a0\7f")) - - (func (export "f32.load") (result f32) (f32.load (i32.const 1))) - (func (export "i32.load") (result i32) (i32.load (i32.const 1))) - (func (export "f32.store") (f32.store (i32.const 1) (f32.const nan:0x200000))) - (func (export "i32.store") (i32.store (i32.const 1) (i32.const 0x7fa00000))) - (func (export "reset") (i32.store (i32.const 1) (i32.const 0))) -) - -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "f32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "i32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fa00000)) -(assert_return (invoke "f32.load") (f32.const nan:0x200000)) - -(module - (memory (data "\00\00\00\00\00\00\00\f4\7f")) - - (func (export "f64.load") (result f64) (f64.load (i32.const 1))) - (func (export "i64.load") (result i64) (i64.load (i32.const 1))) - (func (export "f64.store") (f64.store (i32.const 1) (f64.const nan:0x4000000000000))) - (func (export "i64.store") (i64.store (i32.const 1) (i64.const 0x7ff4000000000000))) - (func (export "reset") (i64.store (i32.const 1) (i64.const 0))) -) - -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "f64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "i64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ff4000000000000)) -(assert_return (invoke "f64.load") (f64.const nan:0x4000000000000)) - -;; Test that load and store do not canonicalize NaNs as some JS engines do. - -(module - (memory (data "\01\00\d0\7f")) - - (func (export "f32.load") (result f32) (f32.load (i32.const 0))) - (func (export "i32.load") (result i32) (i32.load (i32.const 0))) - (func (export "f32.store") (f32.store (i32.const 0) (f32.const nan:0x500001))) - (func (export "i32.store") (i32.store (i32.const 0) (i32.const 0x7fd00001))) - (func (export "reset") (i32.store (i32.const 0) (i32.const 0))) -) - -(assert_return (invoke "i32.load") (i32.const 0x7fd00001)) -(assert_return (invoke "f32.load") (f32.const nan:0x500001)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "f32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fd00001)) -(assert_return (invoke "f32.load") (f32.const nan:0x500001)) -(invoke "reset") -(assert_return (invoke "i32.load") (i32.const 0x0)) -(assert_return (invoke "f32.load") (f32.const 0.0)) -(invoke "i32.store") -(assert_return (invoke "i32.load") (i32.const 0x7fd00001)) -(assert_return (invoke "f32.load") (f32.const nan:0x500001)) - -(module - (memory (data "\01\00\00\00\00\00\fc\7f")) - - (func (export "f64.load") (result f64) (f64.load (i32.const 0))) - (func (export "i64.load") (result i64) (i64.load (i32.const 0))) - (func (export "f64.store") (f64.store (i32.const 0) (f64.const nan:0xc000000000001))) - (func (export "i64.store") (i64.store (i32.const 0) (i64.const 0x7ffc000000000001))) - (func (export "reset") (i64.store (i32.const 0) (i64.const 0))) -) - -(assert_return (invoke "i64.load") (i64.const 0x7ffc000000000001)) -(assert_return (invoke "f64.load") (f64.const nan:0xc000000000001)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "f64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ffc000000000001)) -(assert_return (invoke "f64.load") (f64.const nan:0xc000000000001)) -(invoke "reset") -(assert_return (invoke "i64.load") (i64.const 0x0)) -(assert_return (invoke "f64.load") (f64.const 0.0)) -(invoke "i64.store") -(assert_return (invoke "i64.load") (i64.const 0x7ffc000000000001)) -(assert_return (invoke "f64.load") (f64.const nan:0xc000000000001)) diff --git a/tests/samples/float_misc.wast b/tests/samples/float_misc.wast deleted file mode 100644 index 095b8d8..0000000 --- a/tests/samples/float_misc.wast +++ /dev/null @@ -1,678 +0,0 @@ -;; Platforms intended to run WebAssembly must support IEEE 754 arithmetic. -;; This testsuite is not currently sufficient for full IEEE 754 conformance -;; testing; platforms are currently expected to meet these requirements in -;; their own way (widely-used hardware platforms already do this). -;; -;; What this testsuite does test is that (a) the platform is basically IEEE 754 -;; rather than something else entirely, (b) it's configured correctly for -;; WebAssembly (rounding direction, exception masks, precision level, subnormal -;; mode, etc.), (c) the WebAssembly implementation doesn't perform any common -;; value-changing optimizations, and (d) that the WebAssembly implementation -;; doesn't exhibit any known implementation bugs. -;; -;; This file supplements f32.wast, f64.wast, f32_bitwise.wast, f64_bitwise.wast, -;; f32_cmp.wast, and f64_cmp.wast with additional single-instruction tests -;; covering additional miscellaneous interesting cases. - -(module - (func (export "f32.add") (param $x f32) (param $y f32) (result f32) (f32.add (get_local $x) (get_local $y))) - (func (export "f32.sub") (param $x f32) (param $y f32) (result f32) (f32.sub (get_local $x) (get_local $y))) - (func (export "f32.mul") (param $x f32) (param $y f32) (result f32) (f32.mul (get_local $x) (get_local $y))) - (func (export "f32.div") (param $x f32) (param $y f32) (result f32) (f32.div (get_local $x) (get_local $y))) - (func (export "f32.sqrt") (param $x f32) (result f32) (f32.sqrt (get_local $x))) - (func (export "f32.abs") (param $x f32) (result f32) (f32.abs (get_local $x))) - (func (export "f32.neg") (param $x f32) (result f32) (f32.neg (get_local $x))) - (func (export "f32.copysign") (param $x f32) (param $y f32) (result f32) (f32.copysign (get_local $x) (get_local $y))) - (func (export "f32.ceil") (param $x f32) (result f32) (f32.ceil (get_local $x))) - (func (export "f32.floor") (param $x f32) (result f32) (f32.floor (get_local $x))) - (func (export "f32.trunc") (param $x f32) (result f32) (f32.trunc (get_local $x))) - (func (export "f32.nearest") (param $x f32) (result f32) (f32.nearest (get_local $x))) - (func (export "f32.min") (param $x f32) (param $y f32) (result f32) (f32.min (get_local $x) (get_local $y))) - (func (export "f32.max") (param $x f32) (param $y f32) (result f32) (f32.max (get_local $x) (get_local $y))) - - (func (export "f64.add") (param $x f64) (param $y f64) (result f64) (f64.add (get_local $x) (get_local $y))) - (func (export "f64.sub") (param $x f64) (param $y f64) (result f64) (f64.sub (get_local $x) (get_local $y))) - (func (export "f64.mul") (param $x f64) (param $y f64) (result f64) (f64.mul (get_local $x) (get_local $y))) - (func (export "f64.div") (param $x f64) (param $y f64) (result f64) (f64.div (get_local $x) (get_local $y))) - (func (export "f64.sqrt") (param $x f64) (result f64) (f64.sqrt (get_local $x))) - (func (export "f64.abs") (param $x f64) (result f64) (f64.abs (get_local $x))) - (func (export "f64.neg") (param $x f64) (result f64) (f64.neg (get_local $x))) - (func (export "f64.copysign") (param $x f64) (param $y f64) (result f64) (f64.copysign (get_local $x) (get_local $y))) - (func (export "f64.ceil") (param $x f64) (result f64) (f64.ceil (get_local $x))) - (func (export "f64.floor") (param $x f64) (result f64) (f64.floor (get_local $x))) - (func (export "f64.trunc") (param $x f64) (result f64) (f64.trunc (get_local $x))) - (func (export "f64.nearest") (param $x f64) (result f64) (f64.nearest (get_local $x))) - (func (export "f64.min") (param $x f64) (param $y f64) (result f64) (f64.min (get_local $x) (get_local $y))) - (func (export "f64.max") (param $x f64) (param $y f64) (result f64) (f64.max (get_local $x) (get_local $y))) -) - -;; Miscellaneous values. -(assert_return (invoke "f32.add" (f32.const 1.1234567890) (f32.const 1.2345e-10)) (f32.const 1.123456789)) -(assert_return (invoke "f64.add" (f64.const 1.1234567890) (f64.const 1.2345e-10)) (f64.const 0x1.1f9add37c11f7p+0)) - -;; Test adding the greatest value to 1.0 that rounds back to 1.0, and the -;; least that rounds to something greater. -(assert_return (invoke "f32.add" (f32.const 1.0) (f32.const 0x1p-24)) (f32.const 0x1.0p+0)) -(assert_return (invoke "f32.add" (f32.const 1.0) (f32.const 0x1.000002p-24)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f64.add" (f64.const 1.0) (f64.const 0x1p-53)) (f64.const 0x1.0p+0)) -(assert_return (invoke "f64.add" (f64.const 1.0) (f64.const 0x1.0000000000001p-53)) (f64.const 0x1.0000000000001p+0)) - -;; Max subnormal + min subnormal = min normal. -(assert_return (invoke "f32.add" (f32.const 0x1p-149) (f32.const 0x1.fffffcp-127)) (f32.const 0x1p-126)) -(assert_return (invoke "f64.add" (f64.const 0x0.0000000000001p-1022) (f64.const 0x0.fffffffffffffp-1022)) (f64.const 0x1p-1022)) - -;; Test for a case of double rounding, example from: -;; http://perso.ens-lyon.fr/jean-michel.muller/Handbook.html -;; section 3.3.1: A typical problem: "double rounding" -(assert_return (invoke "f32.add" (f32.const 0x1p+31) (f32.const 1024.25)) (f32.const 0x1.000008p+31)) -(assert_return (invoke "f64.add" (f64.const 0x1p+63) (f64.const 1024.25)) (f64.const 0x1.0000000000001p+63)) - -;; Test a case that was "tricky" on MMIX. -;; http://mmix.cs.hm.edu/bugs/bug_rounding.html -(assert_return (invoke "f64.add" (f64.const -0x1p-1008) (f64.const 0x0.0000000001716p-1022)) (f64.const -0x1.fffffffffffffp-1009)) - -;; http://www.vinc17.org/software/tst-ieee754.xsl -(assert_return (invoke "f64.add" (f64.const 9007199254740992) (f64.const 1.00001)) (f64.const 9007199254740994)) - -;; http://www.vinc17.org/software/test.java -(assert_return (invoke "f64.add" (f64.const 9007199254740994) (f64.const 0x1.fffep-1)) (f64.const 9007199254740994)) - -;; Computations that round differently in ties-to-odd mode. -(assert_return (invoke "f32.add" (f32.const 0x1p23) (f32.const 0x1p-1)) (f32.const 0x1p23)) -(assert_return (invoke "f32.add" (f32.const 0x1.000002p+23) (f32.const 0x1p-1)) (f32.const 0x1.000004p+23)) -(assert_return (invoke "f64.add" (f64.const 0x1p52) (f64.const 0x1p-1)) (f64.const 0x1p52)) -(assert_return (invoke "f64.add" (f64.const 0x1.0000000000001p+52) (f64.const 0x1p-1)) (f64.const 0x1.0000000000002p+52)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.add" (f32.const -0x1.39675ap+102) (f32.const 0x1.76c94cp-99)) (f32.const -0x1.39675ap+102)) -(assert_return (invoke "f32.add" (f32.const 0x1.6c0f24p+67) (f32.const -0x1.2b92dp+52)) (f32.const 0x1.6c0cccp+67)) -(assert_return (invoke "f32.add" (f32.const 0x1.e62318p-83) (f32.const 0x1.f74abep-125)) (f32.const 0x1.e62318p-83)) -(assert_return (invoke "f32.add" (f32.const 0x1.2a71d4p+39) (f32.const -0x1.c9f10cp+55)) (f32.const -0x1.c9efe2p+55)) -(assert_return (invoke "f32.add" (f32.const 0x1.f8f736p-15) (f32.const 0x1.7bd45ep+106)) (f32.const 0x1.7bd45ep+106)) -(assert_return (invoke "f64.add" (f64.const 0x1.f33e1fbca27aap-413) (f64.const -0x1.6b192891ed61p+249)) (f64.const -0x1.6b192891ed61p+249)) -(assert_return (invoke "f64.add" (f64.const -0x1.46f75d130eeb1p+76) (f64.const 0x1.25275d6f7a4acp-184)) (f64.const -0x1.46f75d130eeb1p+76)) -(assert_return (invoke "f64.add" (f64.const 0x1.04dec9265a731p-148) (f64.const -0x1.11eed4e8c127cp-12)) (f64.const -0x1.11eed4e8c127cp-12)) -(assert_return (invoke "f64.add" (f64.const 0x1.05773b7166b0ap+497) (f64.const 0x1.134022f2da37bp+66)) (f64.const 0x1.05773b7166b0ap+497)) -(assert_return (invoke "f64.add" (f64.const 0x1.ef4f794282a82p+321) (f64.const 0x1.14a82266badep+394)) (f64.const 0x1.14a82266badep+394)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.add" (f32.const 0x1.1bf976p+72) (f32.const -0x1.7f5868p+20)) (f32.const 0x1.1bf976p+72)) -(assert_return (invoke "f32.add" (f32.const 0x1.7f9c6cp-45) (f32.const -0x1.b9bb0ep-78)) (f32.const 0x1.7f9c6cp-45)) -(assert_return (invoke "f32.add" (f32.const -0x1.32d1bcp-42) (f32.const 0x1.f7d214p+125)) (f32.const 0x1.f7d214p+125)) -(assert_return (invoke "f32.add" (f32.const -0x1.8e5c0ep-44) (f32.const -0x1.3afa4cp-106)) (f32.const -0x1.8e5c0ep-44)) -(assert_return (invoke "f32.add" (f32.const 0x1.13cd78p-10) (f32.const -0x1.3af316p-107)) (f32.const 0x1.13cd78p-10)) -(assert_return (invoke "f64.add" (f64.const 0x1.f8dd15ca97d4ap+179) (f64.const -0x1.367317d1fe8bfp-527)) (f64.const 0x1.f8dd15ca97d4ap+179)) -(assert_return (invoke "f64.add" (f64.const 0x1.5db08d739228cp+155) (f64.const -0x1.fb316fa147dcbp-61)) (f64.const 0x1.5db08d739228cp+155)) -(assert_return (invoke "f64.add" (f64.const 0x1.bbb403cb85c07p-404) (f64.const -0x1.7e44046b8bbf3p-979)) (f64.const 0x1.bbb403cb85c07p-404)) -(assert_return (invoke "f64.add" (f64.const -0x1.34d38af291831p+147) (f64.const -0x1.9890b47439953p+139)) (f64.const -0x1.366c1ba705bcap+147)) -(assert_return (invoke "f64.add" (f64.const -0x1.b61dedf4e0306p+3) (f64.const 0x1.09e2f31773c4ap+290)) (f64.const 0x1.09e2f31773c4ap+290)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.add" (f32.const -0x1.129bd8p-117) (f32.const 0x1.c75012p-43)) (f32.const 0x1.c75012p-43)) -(assert_return (invoke "f32.add" (f32.const -0x1.c204a2p-16) (f32.const 0x1.80b132p-27)) (f32.const -0x1.c1d48cp-16)) -(assert_return (invoke "f32.add" (f32.const -0x1.decc1cp+36) (f32.const 0x1.c688dap-109)) (f32.const -0x1.decc1cp+36)) -(assert_return (invoke "f32.add" (f32.const 0x1.61ce6ap-118) (f32.const -0x1.772892p+30)) (f32.const -0x1.772892p+30)) -(assert_return (invoke "f32.add" (f32.const -0x1.3dc826p-120) (f32.const 0x1.fc3f66p+95)) (f32.const 0x1.fc3f66p+95)) -(assert_return (invoke "f64.add" (f64.const 0x1.bf68acc263a0fp-777) (f64.const -0x1.5f9352965e5a6p+1004)) (f64.const -0x1.5f9352965e5a6p+1004)) -(assert_return (invoke "f64.add" (f64.const -0x1.76eaa70911f51p+516) (f64.const -0x1.2d746324ce47ap+493)) (f64.const -0x1.76eaa963fabb6p+516)) -(assert_return (invoke "f64.add" (f64.const -0x1.b637d82c15a7ap-967) (f64.const 0x1.cc654ccab4152p-283)) (f64.const 0x1.cc654ccab4152p-283)) -(assert_return (invoke "f64.add" (f64.const -0x1.a5b1fb66e846ep-509) (f64.const 0x1.4bdd36f0bb5ccp-860)) (f64.const -0x1.a5b1fb66e846ep-509)) -(assert_return (invoke "f64.add" (f64.const -0x1.14108da880f9ep+966) (f64.const 0x1.417f35701e89fp+800)) (f64.const -0x1.14108da880f9ep+966)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.add" (f64.const -0x1.fa0caf21ffebcp+804) (f64.const 0x1.4ca8fdcff89f9p+826)) (f64.const 0x1.4ca8f5e7c5e31p+826)) -(assert_return (invoke "f64.add" (f64.const 0x1.016f1fcbdfd38p+784) (f64.const 0x1.375dffcbc9a2cp+746)) (f64.const 0x1.016f1fcbe4b0fp+784)) -(assert_return (invoke "f64.add" (f64.const -0x1.dffda6d5bff3ap+624) (f64.const 0x1.f9e8cc2dff782p+674)) (f64.const 0x1.f9e8cc2dff77bp+674)) -(assert_return (invoke "f64.add" (f64.const 0x1.fff4b43687dfbp+463) (f64.const 0x1.0fd5617c4a809p+517)) (f64.const 0x1.0fd5617c4a809p+517)) -(assert_return (invoke "f64.add" (f64.const 0x1.535d380035da2p-995) (f64.const 0x1.cce37dddbb73bp-963)) (f64.const 0x1.cce37ddf0ed0fp-963)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.add" (f64.const -0x1.d91cd3fc0c66fp+752) (f64.const -0x1.4e18c80229734p+952)) (f64.const -0x1.4e18c80229734p+952)) -(assert_return (invoke "f64.add" (f64.const 0x1.afc70fd36e372p+193) (f64.const -0x1.bd10a9b377b46p+273)) (f64.const -0x1.bd10a9b377b46p+273)) -(assert_return (invoke "f64.add" (f64.const -0x1.2abd570b078b2p+302) (f64.const 0x1.b3c1ad759cb5bp-423)) (f64.const -0x1.2abd570b078b2p+302)) -(assert_return (invoke "f64.add" (f64.const -0x1.5b2ae84c0686cp-317) (f64.const -0x1.dba7a1c022823p+466)) (f64.const -0x1.dba7a1c022823p+466)) -(assert_return (invoke "f64.add" (f64.const -0x1.ac627bd7cbf38p-198) (f64.const 0x1.2312e265b8d59p-990)) (f64.const -0x1.ac627bd7cbf38p-198)) - -;; Computations that utilize the maximum exponent value to avoid overflow. -(assert_return (invoke "f32.add" (f32.const 0x1.2b91ap+116) (f32.const 0x1.cbcd52p+127)) (f32.const 0x1.cbf2c4p+127)) -(assert_return (invoke "f32.add" (f32.const 0x1.96f392p+127) (f32.const -0x1.6b3fecp+107)) (f32.const 0x1.96f37cp+127)) -(assert_return (invoke "f32.add" (f32.const 0x1.132f1cp+118) (f32.const -0x1.63d632p+127)) (f32.const -0x1.634c9ap+127)) -(assert_return (invoke "f32.add" (f32.const -0x1.1dda64p+120) (f32.const -0x1.ef02ep+127)) (f32.const -0x1.f13e94p+127)) -(assert_return (invoke "f32.add" (f32.const -0x1.4ad8dap+127) (f32.const -0x1.eae082p+125)) (f32.const -0x1.c590fap+127)) -(assert_return (invoke "f64.add" (f64.const 0x1.017099f2a4b8bp+1023) (f64.const 0x1.1f63b28f05454p+981)) (f64.const 0x1.017099f2a5009p+1023)) -(assert_return (invoke "f64.add" (f64.const 0x1.d88b6c74984efp+1023) (f64.const 0x1.33b444775eabcp+990)) (f64.const 0x1.d88b6c7532291p+1023)) -(assert_return (invoke "f64.add" (f64.const -0x1.84576422fdf5p+1023) (f64.const 0x1.60ee6aa12fb9cp+1012)) (f64.const -0x1.842b4655a9cf1p+1023)) -(assert_return (invoke "f64.add" (f64.const -0x1.9aaace3e79f7dp+1001) (f64.const 0x1.e4068af295cb6p+1023)) (f64.const 0x1.e4068487ea926p+1023)) -(assert_return (invoke "f64.add" (f64.const 0x1.06cdae79f27b9p+1023) (f64.const -0x1.e05cb0c96f975p+991)) (f64.const 0x1.06cdae78121eep+1023)) - -;; Computations that utilize the minimum exponent value. -(assert_return (invoke "f32.add" (f32.const 0x1.6a1a2p-127) (f32.const 0x1.378p-140)) (f32.const 0x1.6a23dcp-127)) -(assert_return (invoke "f32.add" (f32.const 0x1.28p-144) (f32.const -0x1p-148)) (f32.const 0x1.18p-144)) -(assert_return (invoke "f32.add" (f32.const -0x1p-146) (f32.const 0x1.c3cap-128)) (f32.const 0x1.c3c9cp-128)) -(assert_return (invoke "f32.add" (f32.const -0x1.4p-145) (f32.const 0x1.424052p-122)) (f32.const 0x1.42405p-122)) -(assert_return (invoke "f32.add" (f32.const 0x1.c5p-141) (f32.const -0x1.72f8p-135)) (f32.const -0x1.6be4p-135)) -(assert_return (invoke "f64.add" (f64.const 0x1.4774c681d1e21p-1022) (f64.const -0x1.271e58e9f58cap-1021)) (f64.const -0x1.06c7eb5219373p-1022)) -(assert_return (invoke "f64.add" (f64.const 0x1.10b3a75e31916p-1021) (f64.const -0x1.ffb82b0e868a7p-1021)) (f64.const -0x1.de090760a9f22p-1022)) -(assert_return (invoke "f64.add" (f64.const -0x0.6b58448b8098ap-1022) (f64.const -0x1.579796ed04cbep-1022)) (f64.const -0x1.c2efdb7885648p-1022)) -(assert_return (invoke "f64.add" (f64.const 0x1.9eb9e7baae8d1p-1020) (f64.const -0x1.d58e136f8c6eep-1020)) (f64.const -0x0.db50aed377874p-1022)) -(assert_return (invoke "f64.add" (f64.const -0x1.f1115deeafa0bp-1022) (f64.const 0x1.221b1c87dca29p-1022)) (f64.const -0x0.cef64166d2fe2p-1022)) - -;; Test an add of the second-greatest finite value with the distance to greatest -;; finite value. -(assert_return (invoke "f32.add" (f32.const 0x1.fffffcp+127) (f32.const 0x1p+104)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f64.add" (f64.const 0x1.ffffffffffffep+1023) (f64.const 0x1p+971)) (f64.const 0x1.fffffffffffffp+1023)) - -;; http://news.harvard.edu/gazette/story/2013/09/dawn-of-a-revolution/ -(assert_return (invoke "f32.add" (f32.const 2.0) (f32.const 2.0)) (f32.const 4.0)) -(assert_return (invoke "f64.add" (f64.const 2.0) (f64.const 2.0)) (f64.const 4.0)) - -;; Test rounding above the greatest finite value. -(assert_return (invoke "f32.add" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+102)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.add" (f32.const 0x1.fffffep+127) (f32.const 0x1p+103)) (f32.const inf)) -(assert_return (invoke "f64.add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+969)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "f64.add" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+970)) (f64.const inf)) - -;; Test for a historic spreadsheet bug. -;; https://blogs.office.com/2007/09/25/calculation-issue-update/ -(assert_return (invoke "f32.sub" (f32.const 65536.0) (f32.const 0x1p-37)) (f32.const 65536.0)) -(assert_return (invoke "f64.sub" (f64.const 65536.0) (f64.const 0x1p-37)) (f64.const 0x1.fffffffffffffp+15)) - -;; Test subtracting the greatest value from 1.0 that rounds back to 1.0, and the -;; least that rounds to something less. -(assert_return (invoke "f32.sub" (f32.const 1.0) (f32.const 0x1p-25)) (f32.const 0x1.0p+0)) -(assert_return (invoke "f32.sub" (f32.const 1.0) (f32.const 0x1.000002p-25)) (f32.const 0x1.fffffep-1)) -(assert_return (invoke "f64.sub" (f64.const 1.0) (f64.const 0x1p-54)) (f64.const 0x1.0p+0)) -(assert_return (invoke "f64.sub" (f64.const 1.0) (f64.const 0x1.0000000000001p-54)) (f64.const 0x1.fffffffffffffp-1)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.sub" (f32.const 0x1.ee2466p-106) (f32.const -0x1.16277ep+119)) (f32.const 0x1.16277ep+119)) -(assert_return (invoke "f32.sub" (f32.const -0x1.446f9ep+119) (f32.const -0x1.4396a4p+43)) (f32.const -0x1.446f9ep+119)) -(assert_return (invoke "f32.sub" (f32.const 0x1.74773cp+0) (f32.const -0x1.a25512p-82)) (f32.const 0x1.74773cp+0)) -(assert_return (invoke "f32.sub" (f32.const 0x1.9345c4p-117) (f32.const 0x1.6792c2p-76)) (f32.const -0x1.6792c2p-76)) -(assert_return (invoke "f32.sub" (f32.const 0x1.9ecfa4p-18) (f32.const -0x1.864b44p-107)) (f32.const 0x1.9ecfa4p-18)) -(assert_return (invoke "f64.sub" (f64.const -0x1.5b798875e7845p-333) (f64.const -0x1.b5147117452fep-903)) (f64.const -0x1.5b798875e7845p-333)) -(assert_return (invoke "f64.sub" (f64.const -0x1.6c87baeb6d72dp+552) (f64.const -0x1.64fb35d4b5571p-158)) (f64.const -0x1.6c87baeb6d72dp+552)) -(assert_return (invoke "f64.sub" (f64.const 0x1.b3d369fcf74bp-461) (f64.const -0x1.ea1668c0dec93p-837)) (f64.const 0x1.b3d369fcf74bp-461)) -(assert_return (invoke "f64.sub" (f64.const 0x1.0abd449353eadp-1005) (f64.const -0x1.0422ea3e82ee9p+154)) (f64.const 0x1.0422ea3e82ee9p+154)) -(assert_return (invoke "f64.sub" (f64.const -0x1.aadbc6b43cc3dp-143) (f64.const -0x1.e7f922ef1ee58p-539)) (f64.const -0x1.aadbc6b43cc3dp-143)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.sub" (f32.const -0x1.61e262p+108) (f32.const -0x1.baf3e4p+112)) (f32.const 0x1.a4d5bep+112)) -(assert_return (invoke "f32.sub" (f32.const -0x1.62c2f6p+109) (f32.const 0x1.6e514ap+6)) (f32.const -0x1.62c2f6p+109)) -(assert_return (invoke "f32.sub" (f32.const -0x1.287c94p-83) (f32.const 0x1.0f2f9cp-24)) (f32.const -0x1.0f2f9cp-24)) -(assert_return (invoke "f32.sub" (f32.const -0x1.c8825cp-77) (f32.const -0x1.4aead6p-12)) (f32.const 0x1.4aead6p-12)) -(assert_return (invoke "f32.sub" (f32.const -0x1.2976a4p+99) (f32.const 0x1.c6e3b8p-59)) (f32.const -0x1.2976a4p+99)) -(assert_return (invoke "f64.sub" (f64.const -0x1.76cb28ae6c045p+202) (f64.const -0x1.0611f2af4e9b9p+901)) (f64.const 0x1.0611f2af4e9b9p+901)) -(assert_return (invoke "f64.sub" (f64.const 0x1.baf35eff22e9ep-368) (f64.const 0x1.5c3e08ecf73ecp-451)) (f64.const 0x1.baf35eff22e9ep-368)) -(assert_return (invoke "f64.sub" (f64.const -0x1.8fd354b376f1fp-200) (f64.const 0x1.513c860f386ffp-508)) (f64.const -0x1.8fd354b376f1fp-200)) -(assert_return (invoke "f64.sub" (f64.const -0x1.760d447230ae6p-992) (f64.const -0x1.16f788438ae3ep-328)) (f64.const 0x1.16f788438ae3ep-328)) -(assert_return (invoke "f64.sub" (f64.const -0x1.73aab4fcfc7ap+112) (f64.const 0x1.7c589f990b884p+171)) (f64.const -0x1.7c589f990b884p+171)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.sub" (f32.const 0x1.ea264cp+95) (f32.const 0x1.852988p-15)) (f32.const 0x1.ea264cp+95)) -(assert_return (invoke "f32.sub" (f32.const -0x1.14ec7cp+19) (f32.const -0x1.0ad3fep-35)) (f32.const -0x1.14ec7cp+19)) -(assert_return (invoke "f32.sub" (f32.const -0x1.3251dap-36) (f32.const -0x1.49c97ep-56)) (f32.const -0x1.3251c6p-36)) -(assert_return (invoke "f32.sub" (f32.const -0x1.13565ep-14) (f32.const 0x1.2f89a8p-13)) (f32.const -0x1.b934d8p-13)) -(assert_return (invoke "f32.sub" (f32.const -0x1.6032b6p-33) (f32.const -0x1.bb5196p-104)) (f32.const -0x1.6032b6p-33)) -(assert_return (invoke "f64.sub" (f64.const -0x1.b5b0797af491p-157) (f64.const -0x1.694b8348189e8p+722)) (f64.const 0x1.694b8348189e8p+722)) -(assert_return (invoke "f64.sub" (f64.const -0x1.72b142826ed73p+759) (f64.const -0x1.010477bc9afbdp+903)) (f64.const 0x1.010477bc9afbdp+903)) -(assert_return (invoke "f64.sub" (f64.const 0x1.83273b6bb94cfp-796) (f64.const 0x1.1a93f948a2abbp+181)) (f64.const -0x1.1a93f948a2abbp+181)) -(assert_return (invoke "f64.sub" (f64.const -0x1.207e7156cbf2p-573) (f64.const 0x1.cf3f12fd3814dp-544)) (f64.const -0x1.cf3f13063c086p-544)) -(assert_return (invoke "f64.sub" (f64.const -0x1.837e6844f1718p-559) (f64.const -0x1.1c29b757f98abp-14)) (f64.const 0x1.1c29b757f98abp-14)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.sub" (f64.const 0x1.c21151a709b6cp-78) (f64.const 0x1.0a12fff8910f6p-115)) (f64.const 0x1.c21151a701663p-78)) -(assert_return (invoke "f64.sub" (f64.const 0x1.c57912aae2f64p-982) (f64.const 0x1.dbfbd4800b7cfp-1010)) (f64.const 0x1.c579128d2338fp-982)) -(assert_return (invoke "f64.sub" (f64.const 0x1.ffef4399af9c6p-254) (f64.const 0x1.edb96dfaea8b1p-200)) (f64.const -0x1.edb96dfaea8b1p-200)) -(assert_return (invoke "f64.sub" (f64.const -0x1.363eee391cde2p-39) (f64.const -0x1.a65462000265fp-69)) (f64.const -0x1.363eee32838c9p-39)) -(assert_return (invoke "f64.sub" (f64.const 0x1.59016dba002a1p-25) (f64.const 0x1.5d4374f124cccp-3)) (f64.const -0x1.5d436f8d1f15dp-3)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.sub" (f64.const -0x1.18196bca005cfp-814) (f64.const -0x1.db7b01ce3f52fp-766)) (f64.const 0x1.db7b01ce3f51dp-766)) -(assert_return (invoke "f64.sub" (f64.const -0x1.d17b3528d219p+33) (f64.const 0x1.fd739d4ea220ap+367)) (f64.const -0x1.fd739d4ea220ap+367)) -(assert_return (invoke "f64.sub" (f64.const 0x1.dea46994de319p+114) (f64.const 0x1.b5b19cd55c7d3p-590)) (f64.const 0x1.dea46994de319p+114)) -(assert_return (invoke "f64.sub" (f64.const 0x1.b60f9b2fbd9ecp-489) (f64.const -0x1.6f81c59ec5b8ep-694)) (f64.const 0x1.b60f9b2fbd9ecp-489)) -(assert_return (invoke "f64.sub" (f64.const 0x1.5e423fe8571f4p-57) (f64.const 0x1.9624ed7c162dfp-618)) (f64.const 0x1.5e423fe8571f4p-57)) - -;; pow(e, π) - π -;; https://xkcd.com/217 -(assert_return (invoke "f32.sub" (f32.const 0x1.724046p+4) (f32.const 0x1.921fb6p+1)) (f32.const 0x1.3ffc5p+4)) -(assert_return (invoke "f64.sub" (f64.const 0x1.724046eb0933ap+4) (f64.const 0x1.921fb54442d18p+1)) (f64.const 0x1.3ffc504280d97p+4)) - -;; https://www.cnet.com/news/googles-calculator-muffs-some-math-problems/ -(assert_return (invoke "f32.sub" (f32.const 2999999) (f32.const 2999998)) (f32.const 1.0)) -(assert_return (invoke "f32.sub" (f32.const 1999999) (f32.const 1999995)) (f32.const 4.0)) -(assert_return (invoke "f32.sub" (f32.const 1999999) (f32.const 1999993)) (f32.const 6.0)) -(assert_return (invoke "f32.sub" (f32.const 400002) (f32.const 400001)) (f32.const 1.0)) -(assert_return (invoke "f32.sub" (f32.const 400002) (f32.const 400000)) (f32.const 2.0)) -(assert_return (invoke "f64.sub" (f64.const 2999999999999999) (f64.const 2999999999999998)) (f64.const 1.0)) -(assert_return (invoke "f64.sub" (f64.const 1999999999999999) (f64.const 1999999999999995)) (f64.const 4.0)) -(assert_return (invoke "f64.sub" (f64.const 1999999999999999) (f64.const 1999999999999993)) (f64.const 6.0)) -(assert_return (invoke "f64.sub" (f64.const 400000000000002) (f64.const 400000000000001)) (f64.const 1.0)) -(assert_return (invoke "f64.sub" (f64.const 400000000000002) (f64.const 400000000000000)) (f64.const 2.0)) - -;; Min normal - max subnormal = min subnormal. -(assert_return (invoke "f32.sub" (f32.const 0x1p-126) (f32.const 0x1.fffffcp-127)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.sub" (f64.const 0x1p-1022) (f64.const 0x0.fffffffffffffp-1022)) (f64.const 0x0.0000000000001p-1022)) - -;; Test subtraction of numbers very close to 1. -(assert_return (invoke "f32.sub" (f32.const 0x1.000002p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1.8p-23)) -(assert_return (invoke "f32.sub" (f32.const 0x1.000002p+0) (f32.const 0x1.0p+0)) (f32.const 0x1p-23)) -(assert_return (invoke "f32.sub" (f32.const 0x1p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1p-24)) -(assert_return (invoke "f64.sub" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.8p-52)) -(assert_return (invoke "f64.sub" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.0p+0)) (f64.const 0x1p-52)) -(assert_return (invoke "f64.sub" (f64.const 0x1p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1p-53)) - -;; Test the least value that can be subtracted from the max value to produce a -;; different value. -(assert_return (invoke "f32.sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+102)) (f32.const 0x1.fffffep+127)) -(assert_return (invoke "f32.sub" (f32.const 0x1.fffffep+127) (f32.const 0x1p+103)) (f32.const 0x1.fffffcp+127)) -(assert_return (invoke "f64.sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1.fffffffffffffp+969)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return (invoke "f64.sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const 0x1p+970)) (f64.const 0x1.ffffffffffffep+1023)) - -;; Miscellaneous values. -(assert_return (invoke "f32.mul" (f32.const 1e15) (f32.const 1e15)) (f32.const 0x1.93e592p+99)) -(assert_return (invoke "f32.mul" (f32.const 1e20) (f32.const 1e20)) (f32.const inf)) -(assert_return (invoke "f32.mul" (f32.const 1e25) (f32.const 1e25)) (f32.const inf)) -(assert_return (invoke "f64.mul" (f64.const 1e15) (f64.const 1e15)) (f64.const 0x1.93e5939a08ceap+99)) -(assert_return (invoke "f64.mul" (f64.const 1e20) (f64.const 1e20)) (f64.const 0x1.d6329f1c35ca5p+132)) -(assert_return (invoke "f64.mul" (f64.const 1e25) (f64.const 1e25)) (f64.const 0x1.11b0ec57e649bp+166)) - -;; Test for a case of double rounding, example from: -;; http://perso.ens-lyon.fr/jean-michel.muller/Handbook.html -;; section 3.3.1: A typical problem: "double rounding" -(assert_return (invoke "f32.mul" (f32.const 1848874880.0) (f32.const 19954563072.0)) (f32.const 0x1.000002p+65)) -(assert_return (invoke "f64.mul" (f64.const 1848874847.0) (f64.const 19954562207.0)) (f64.const 3.6893488147419111424e+19)) - -;; Test for a historic spreadsheet bug. -;; http://www.joelonsoftware.com/items/2007/09/26b.html -(assert_return (invoke "f32.mul" (f32.const 77.1) (f32.const 850)) (f32.const 65535)) -(assert_return (invoke "f64.mul" (f64.const 77.1) (f64.const 850)) (f64.const 65534.99999999999272404)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.mul" (f32.const -0x1.14df2ep+61) (f32.const 0x1.748878p-36)) (f32.const -0x1.92e7e8p+25)) -(assert_return (invoke "f32.mul" (f32.const -0x1.5629e2p+102) (f32.const -0x1.c33012p-102)) (f32.const 0x1.2d8604p+1)) -(assert_return (invoke "f32.mul" (f32.const -0x1.b17694p+92) (f32.const -0x1.e4b56ap-97)) (f32.const 0x1.9a5baep-4)) -(assert_return (invoke "f32.mul" (f32.const -0x1.1626a6p+79) (f32.const -0x1.c57d7p-75)) (f32.const 0x1.ecbaaep+4)) -(assert_return (invoke "f32.mul" (f32.const 0x1.7acf72p+53) (f32.const 0x1.6c89acp+5)) (f32.const 0x1.0db556p+59)) -(assert_return (invoke "f64.mul" (f64.const -0x1.25c293f6f37e4p+425) (f64.const 0x1.f5fd4fa41c6d8p+945)) (f64.const -inf)) -(assert_return (invoke "f64.mul" (f64.const -0x1.cc1ae79fffc5bp-986) (f64.const -0x1.c36ccc2861ca6p-219)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.c0232b3e64b56p+606) (f64.const -0x1.f6939cf3affaap+106)) (f64.const -0x1.b7e3aedf190d3p+713)) -(assert_return (invoke "f64.mul" (f64.const -0x1.60f289966b271p-313) (f64.const 0x1.28a5497f0c259p+583)) (f64.const -0x1.98fc50bcec259p+270)) -(assert_return (invoke "f64.mul" (f64.const 0x1.37dab12d3afa2p+795) (f64.const 0x1.81e156bd393f1p-858)) (f64.const 0x1.d6126554b8298p-63)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.mul" (f32.const -0x1.3f57a2p-89) (f32.const -0x1.041d68p+92)) (f32.const 0x1.4479bp+3)) -(assert_return (invoke "f32.mul" (f32.const 0x1.4d0582p+73) (f32.const 0x1.6e043ap+19)) (f32.const 0x1.dc236p+92)) -(assert_return (invoke "f32.mul" (f32.const -0x1.2fdap-32) (f32.const -0x1.e1731cp+74)) (f32.const 0x1.1db89ep+43)) -(assert_return (invoke "f32.mul" (f32.const 0x1.7bc8fep+67) (f32.const -0x1.3ad592p+15)) (f32.const -0x1.d3115ep+82)) -(assert_return (invoke "f32.mul" (f32.const 0x1.936742p+30) (f32.const -0x1.a7a19p+66)) (f32.const -0x1.4dc71ap+97)) -(assert_return (invoke "f64.mul" (f64.const -0x1.ba737b4ca3b13p-639) (f64.const 0x1.8923309857438p-314)) (f64.const -0x1.53bc0d07baa37p-952)) -(assert_return (invoke "f64.mul" (f64.const 0x1.7c1932e610219p-276) (f64.const -0x1.2605db646489fp-635)) (f64.const -0x1.b48da2b0d2ae3p-911)) -(assert_return (invoke "f64.mul" (f64.const -0x1.e43cdf3b2108p+329) (f64.const -0x1.99d96abbd61d1p+835)) (f64.const inf)) -(assert_return (invoke "f64.mul" (f64.const 0x1.4c19466551da3p+947) (f64.const 0x1.0bdcd6c7646e9p-439)) (f64.const 0x1.5b7cd8c3f638ap+508)) -(assert_return (invoke "f64.mul" (f64.const 0x1.ff1da1726e3dfp+339) (f64.const -0x1.043c44f52b158p+169)) (f64.const -0x1.03c9364bb585cp+509)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.mul" (f32.const -0x1.907e8ap+46) (f32.const -0x1.5d3668p+95)) (f32.const inf)) -(assert_return (invoke "f32.mul" (f32.const -0x1.8c9f74p-3) (f32.const 0x1.e2b452p-99)) (f32.const -0x1.75edccp-101)) -(assert_return (invoke "f32.mul" (f32.const -0x1.cc605ap-19) (f32.const 0x1.ec321ap+105)) (f32.const -0x1.ba91a4p+87)) -(assert_return (invoke "f32.mul" (f32.const -0x1.5fbb7ap+56) (f32.const 0x1.a8965ep-96)) (f32.const -0x1.23ae8ep-39)) -(assert_return (invoke "f32.mul" (f32.const -0x1.fb7f12p+16) (f32.const 0x1.3a701ap-119)) (f32.const -0x1.37ac0cp-102)) -(assert_return (invoke "f64.mul" (f64.const -0x1.5b0266454c26bp-496) (f64.const -0x1.af5787e3e0399p+433)) (f64.const 0x1.2457d81949e0bp-62)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0d54a82393d45p+478) (f64.const -0x1.425760807ceaep-764)) (f64.const -0x1.532068c8d0d5dp-286)) -(assert_return (invoke "f64.mul" (f64.const -0x1.b532af981786p+172) (f64.const 0x1.ada95085ba36fp+359)) (f64.const -0x1.6ee38c1e01864p+532)) -(assert_return (invoke "f64.mul" (f64.const 0x1.e132f4d49d1cep+768) (f64.const -0x1.a75afe9a7d864p+374)) (f64.const -inf)) -(assert_return (invoke "f64.mul" (f64.const 0x1.68bbf1cfff90ap+81) (f64.const 0x1.09cd17d652c5p+70)) (f64.const 0x1.768b8d67d794p+151)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.mul" (f64.const 0x1.f99fb602c89b7p-341) (f64.const 0x1.6caab46a31a2ep-575)) (f64.const 0x1.68201f986e9d7p-915)) -(assert_return (invoke "f64.mul" (f64.const -0x1.86999c5eee379p-9) (f64.const 0x1.6e3b9e0d53e0dp+723)) (f64.const -0x1.17654a0ef35f5p+715)) -(assert_return (invoke "f64.mul" (f64.const -0x1.069571b176f9p+367) (f64.const -0x1.e248b6ab0a0e3p-652)) (f64.const 0x1.eeaff575cae1dp-285)) -(assert_return (invoke "f64.mul" (f64.const 0x1.c217645777dd2p+775) (f64.const 0x1.d93f5715dd646p+60)) (f64.const 0x1.a0064aa1d920dp+836)) -(assert_return (invoke "f64.mul" (f64.const -0x1.848981b6e694ap-276) (f64.const 0x1.f5aacb64a0d19p+896)) (f64.const -0x1.7cb2296e6c2e5p+621)) - -;; Computations that round differently on x87 in double-precision mode. -(assert_return (invoke "f64.mul" (f64.const 0x1.db3bd2a286944p-599) (f64.const 0x1.ce910af1d55cap-425)) (f64.const 0x0.d6accdd538a39p-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.aca223916012p-57) (f64.const -0x1.2b2b4958dd228p-966)) (f64.const 0x0.fa74eccae5615p-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.bd062def16cffp-488) (f64.const -0x1.7ddd91a0c4c0ep-536)) (f64.const 0x0.a5f4d7769d90dp-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.c6a56169e9cep-772) (f64.const 0x1.517d55a474122p-255)) (f64.const -0x0.12baf260afb77p-1022)) -(assert_return (invoke "f64.mul" (f64.const -0x1.08951b0b41705p-516) (f64.const -0x1.102dc27168d09p-507)) (f64.const 0x0.8ca6dbf3f592bp-1022)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.mul" (f64.const 0x1.8d0dea50c8c9bp+852) (f64.const 0x1.21cac31d87a24p-881)) (f64.const 0x1.c177311f7cd73p-29)) -(assert_return (invoke "f64.mul" (f64.const 0x1.98049118e3063p-7) (f64.const 0x1.6362525151b58p-149)) (f64.const 0x1.1b358514103f9p-155)) -(assert_return (invoke "f64.mul" (f64.const -0x1.ea65cb0631323p+1) (f64.const 0x1.fce683201a19bp-41)) (f64.const -0x1.e76dc8c223667p-39)) -(assert_return (invoke "f64.mul" (f64.const 0x1.e4d235961d543p-373) (f64.const 0x1.bc56f20ef9a48p-205)) (f64.const 0x1.a4c09efcb71d6p-577)) -(assert_return (invoke "f64.mul" (f64.const -0x1.b9612e66faba8p+77) (f64.const 0x1.e2bc6aa782273p-348)) (f64.const -0x1.a026ea4f81db1p-270)) - -;; Test the least positive value with a positive square. -(assert_return (invoke "f32.mul" (f32.const 0x1p-75) (f32.const 0x1p-75)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.mul" (f32.const 0x1.000002p-75) (f32.const 0x1.000002p-75)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.mul" (f64.const 0x1.6a09e667f3bccp-538) (f64.const 0x1.6a09e667f3bccp-538)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.6a09e667f3bcdp-538) (f64.const 0x1.6a09e667f3bcdp-538)) (f64.const 0x0.0000000000001p-1022)) - -;; Test the greatest positive value with a finite square. -(assert_return (invoke "f32.mul" (f32.const 0x1.fffffep+63) (f32.const 0x1.fffffep+63)) (f32.const 0x1.fffffcp+127)) -(assert_return (invoke "f32.mul" (f32.const 0x1p+64) (f32.const 0x1p+64)) (f32.const inf)) -(assert_return (invoke "f64.mul" (f64.const 0x1.fffffffffffffp+511) (f64.const 0x1.fffffffffffffp+511)) (f64.const 0x1.ffffffffffffep+1023)) -(assert_return (invoke "f64.mul" (f64.const 0x1p+512) (f64.const 0x1p+512)) (f64.const inf)) - -;; Test the squares of values very close to 1. -(assert_return (invoke "f32.mul" (f32.const 0x1.000002p+0) (f32.const 0x1.000002p+0)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.mul" (f32.const 0x1.fffffep-1) (f32.const 0x1.fffffep-1)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.0000000000001p+0)) (f64.const 0x1.0000000000002p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.fffffffffffffp-1) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test multiplication of numbers very close to 1. -(assert_return (invoke "f32.mul" (f32.const 0x1.000002p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1p+0)) -(assert_return (invoke "f32.mul" (f32.const 0x1.000004p+0) (f32.const 0x1.fffffcp-1)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1p+0)) -(assert_return (invoke "f64.mul" (f64.const 0x1.0000000000002p+0) (f64.const 0x1.ffffffffffffep-1)) (f64.const 0x1.0000000000001p+0)) - -;; Test MIN * EPSILON. -;; http://www.mpfr.org/mpfr-2.0.1/patch2 -(assert_return (invoke "f32.mul" (f32.const 0x1p-126) (f32.const 0x1p-23)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.mul" (f64.const 0x1p-1022) (f64.const 0x1p-52)) (f64.const 0x0.0000000000001p-1022)) - -;; http://opencores.org/bug,view,2454 -(assert_return (invoke "f32.mul" (f32.const -0x1.0006p+4) (f32.const 0x1.ap-132)) (f32.const -0x1.a009cp-128)) - -;; Miscellaneous values. -(assert_return (invoke "f32.div" (f32.const 1.123456789) (f32.const 100)) (f32.const 0x1.702264p-7)) -(assert_return (invoke "f32.div" (f32.const 8391667.0) (f32.const 12582905.0)) (f32.const 0x1.55754p-1)) -(assert_return (invoke "f32.div" (f32.const 65536.0) (f32.const 0x1p-37)) (f32.const 0x1p+53)) -(assert_return (invoke "f32.div" (f32.const 0x1.dcbf6ap+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.dcbf68p-128)) -(assert_return (invoke "f32.div" (f32.const 4) (f32.const 3)) (f32.const 0x1.555556p+0)) -(assert_return (invoke "f64.div" (f64.const 1.123456789) (f64.const 100)) (f64.const 0.01123456789)) -(assert_return (invoke "f64.div" (f64.const 8391667.0) (f64.const 12582905.0)) (f64.const 0x1.55753f1d9ba27p-1)) -(assert_return (invoke "f64.div" (f64.const 65536.0) (f64.const 0x1p-37)) (f64.const 0x1p+53)) -(assert_return (invoke "f64.div" (f64.const 0x1.dcbf6ap+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.772fda8p-1022)) -(assert_return (invoke "f64.div" (f64.const 4) (f64.const 3)) (f64.const 0x1.5555555555555p+0)) - -;; Test for a historic hardware bug. -;; https://en.wikipedia.org/wiki/Pentium_FDIV_bug -(assert_return (invoke "f32.div" (f32.const 4195835) (f32.const 3145727)) (f32.const 0x1.557542p+0)) -(assert_return (invoke "f64.div" (f64.const 4195835) (f64.const 3145727)) (f64.const 0x1.557541c7c6b43p+0)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.div" (f32.const 0x1.6a6c5ap-48) (f32.const 0x1.fa0b7p+127)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.616fb2p-87) (f32.const 0x1.332172p+68)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.div" (f32.const -0x1.96e778p+16) (f32.const 0x1.eb0c56p-80)) (f32.const -0x1.a8440ap+95)) -(assert_return (invoke "f32.div" (f32.const -0x1.e2624p-76) (f32.const -0x1.ed236ep-122)) (f32.const 0x1.f4d584p+45)) -(assert_return (invoke "f32.div" (f32.const -0x1.e2374ep+41) (f32.const 0x1.71fcdcp-80)) (f32.const -0x1.4da706p+121)) -(assert_return (invoke "f64.div" (f64.const 0x1.163c09d0c38c1p+147) (f64.const 0x1.e04cc737348e6p+223)) (f64.const 0x1.289921caeed23p-77)) -(assert_return (invoke "f64.div" (f64.const 0x1.d6867e741e0a9p-626) (f64.const 0x1.335eb19a9aae4p-972)) (f64.const 0x1.87e342d11f519p+346)) -(assert_return (invoke "f64.div" (f64.const -0x1.d5edf648aeb98p+298) (f64.const 0x1.0dda15b079355p+640)) (f64.const -0x1.bdceaf9734b5cp-342)) -(assert_return (invoke "f64.div" (f64.const -0x1.b683e3934aedap+691) (f64.const 0x1.c364e1df00dffp+246)) (f64.const -0x1.f16456e7afe3bp+444)) -(assert_return (invoke "f64.div" (f64.const -0x1.44ca7539cc851p+540) (f64.const 0x1.58501bccc58fep+453)) (f64.const -0x1.e2f8657e0924ep+86)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.div" (f32.const -0x1.c2c54ap+69) (f32.const -0x1.00d142p-86)) (f32.const inf)) -(assert_return (invoke "f32.div" (f32.const 0x1.e35abep-46) (f32.const 0x1.c69dfp+44)) (f32.const 0x1.102eb4p-90)) -(assert_return (invoke "f32.div" (f32.const 0x1.45ff2ap+0) (f32.const -0x1.1e8754p+89)) (f32.const -0x1.23434ep-89)) -(assert_return (invoke "f32.div" (f32.const 0x1.8db18ap-51) (f32.const 0x1.47c678p-128)) (f32.const 0x1.369b96p+77)) -(assert_return (invoke "f32.div" (f32.const 0x1.78599p+90) (f32.const 0x1.534144p+87)) (f32.const 0x1.1bfddcp+3)) -(assert_return (invoke "f64.div" (f64.const 0x0.f331c4f47eb51p-1022) (f64.const -0x1.c7ff45bf6f03ap+362)) (f64.const -0x0p+0)) -(assert_return (invoke "f64.div" (f64.const -0x1.0fc8707b9d19cp-987) (f64.const 0x1.77524d5f4a563p-536)) (f64.const -0x1.72c1a937d231p-452)) -(assert_return (invoke "f64.div" (f64.const -0x1.edb3aa64bb338p-403) (f64.const -0x1.1c7c164320e4p+45)) (f64.const 0x1.bc44cc1c5ae63p-448)) -(assert_return (invoke "f64.div" (f64.const -0x1.6534b34e8686bp+80) (f64.const 0x1.c34a7fc59e3c3p-791)) (f64.const -0x1.95421bf291b66p+870)) -(assert_return (invoke "f64.div" (f64.const -0x1.91f58d7ed1237p+236) (f64.const -0x1.f190d808383c8p+55)) (f64.const 0x1.9d9eb0836f906p+180)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.div" (f32.const 0x1.64b2a4p+26) (f32.const 0x1.e95752p-119)) (f32.const inf)) -(assert_return (invoke "f32.div" (f32.const -0x1.53c9b6p+77) (f32.const 0x1.d689ap+27)) (f32.const -0x1.71baa4p+49)) -(assert_return (invoke "f32.div" (f32.const 0x1.664a8ap+38) (f32.const -0x1.59dba2p+96)) (f32.const -0x1.0933f4p-58)) -(assert_return (invoke "f32.div" (f32.const -0x1.99e0fap+111) (f32.const -0x1.c2b5a8p+9)) (f32.const 0x1.d19de6p+101)) -(assert_return (invoke "f32.div" (f32.const -0x1.5a815ap+92) (f32.const -0x1.b5820ap+13)) (f32.const 0x1.9580b8p+78)) -(assert_return (invoke "f64.div" (f64.const -0x1.81fd1e2af7bebp-655) (f64.const 0x1.edefc4eae536cp-691)) (f64.const -0x1.901abdd91b661p+35)) -(assert_return (invoke "f64.div" (f64.const -0x1.47cf932953c43p+782) (f64.const -0x1.bc40496b1f2a1p-553)) (f64.const inf)) -(assert_return (invoke "f64.div" (f64.const -0x1.2bd2e8fbdcad7p-746) (f64.const 0x1.b115674cc476ep-65)) (f64.const -0x1.62752bf19fa81p-682)) -(assert_return (invoke "f64.div" (f64.const -0x1.f923e3fea9efep+317) (f64.const -0x1.8044c74d27a39p-588)) (f64.const 0x1.5086518cc7186p+905)) -(assert_return (invoke "f64.div" (f64.const 0x1.516ed2051d6bbp+181) (f64.const -0x1.c9f455eb9c2eep+214)) (f64.const -0x1.79414d67f2889p-34)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.div" (f64.const -0x1.9c52726aed366p+585) (f64.const -0x1.7d0568c75660fp+195)) (f64.const 0x1.1507ca2a65f23p+390)) -(assert_return (invoke "f64.div" (f64.const -0x1.522672f461667p+546) (f64.const -0x1.36d36572c9f71p+330)) (f64.const 0x1.1681369370619p+216)) -(assert_return (invoke "f64.div" (f64.const 0x1.01051b4e8cd61p+185) (f64.const -0x1.2cbb5ca3d33ebp+965)) (f64.const -0x1.b59471598a2f3p-781)) -(assert_return (invoke "f64.div" (f64.const 0x1.5f93bb80fc2cbp+217) (f64.const 0x1.7e051aae9f0edp+427)) (f64.const 0x1.d732fa926ba4fp-211)) -(assert_return (invoke "f64.div" (f64.const -0x1.e251d762163ccp+825) (f64.const 0x1.3ee63581e1796p+349)) (f64.const -0x1.8330077d90a07p+476)) - -;; Computations that round differently on x87 in double-precision mode. -(assert_return (invoke "f64.div" (f64.const 0x1.dcbf69f10006dp+0) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.772fda7c4001bp-1022)) -(assert_return (invoke "f64.div" (f64.const 0x1.e14169442fbcap-1011) (f64.const 0x1.505451d62ff7dp+12)) (f64.const 0x0.b727e85f38b39p-1022)) -(assert_return (invoke "f64.div" (f64.const -0x1.d3ebe726ec964p-144) (f64.const -0x1.4a7bfc0b83608p+880)) (f64.const 0x0.5a9d8c50cbf87p-1022)) -(assert_return (invoke "f64.div" (f64.const -0x1.6c3def770aee1p-393) (f64.const -0x1.8b84724347598p+631)) (f64.const 0x0.3af0707fcd0c7p-1022)) -(assert_return (invoke "f64.div" (f64.const 0x1.16abda1bb3cb3p-856) (f64.const 0x1.6c9c7198eb1e6p+166)) (f64.const 0x0.c3a8fd6741649p-1022)) -(assert_return (invoke "f64.div" (f64.const 0x1.7057d6ab553cap-1005) (f64.const -0x1.2abf1e98660ebp+23)) (f64.const -0x0.04ee8d8ec01cdp-1022)) - -;; Computations that round differently when div is mul by reciprocal. -(assert_return (invoke "f32.div" (f32.const 0x1.ada9aap+89) (f32.const 0x1.69884cp+42)) (f32.const 0x1.303e2ep+47)) -(assert_return (invoke "f32.div" (f32.const 0x1.8281c8p+90) (f32.const -0x1.62883cp+106)) (f32.const -0x1.17169cp-16)) -(assert_return (invoke "f32.div" (f32.const 0x1.5c6be2p+81) (f32.const 0x1.d01dfep-1)) (f32.const 0x1.805e32p+81)) -(assert_return (invoke "f32.div" (f32.const -0x1.bbd252p+19) (f32.const -0x1.fba95p+33)) (f32.const 0x1.bf9d56p-15)) -(assert_return (invoke "f32.div" (f32.const -0x1.0f41d6p-42) (f32.const -0x1.3f2dbep+56)) (f32.const 0x1.b320d8p-99)) -(assert_return (invoke "f64.div" (f64.const 0x1.b2348a1c81899p+61) (f64.const -0x1.4a58aad903dd3p-861)) (f64.const -0x1.507c1e2a41b35p+922)) -(assert_return (invoke "f64.div" (f64.const 0x1.23fa5137a918ap-130) (f64.const -0x1.7268db1951263p-521)) (f64.const -0x1.93965e0d896bep+390)) -(assert_return (invoke "f64.div" (f64.const 0x1.dcb3915d82deep+669) (f64.const 0x1.50caaa1dc6b19p+638)) (f64.const 0x1.6a58ec814b09dp+31)) -(assert_return (invoke "f64.div" (f64.const -0x1.046e378c0cc46p+182) (f64.const 0x1.ac925009a922bp+773)) (f64.const -0x1.3720aa94dab18p-592)) -(assert_return (invoke "f64.div" (f64.const -0x1.8945fd69d8e11p-871) (f64.const -0x1.0a37870af809ap-646)) (f64.const 0x1.7a2e286c62382p-225)) - -;; Computations that round differently when computed via f32. -(assert_return (invoke "f64.div" (f64.const 0x1.82002af0ea1f3p-57) (f64.const 0x1.d0a9b0c2fa339p+0)) (f64.const 0x1.a952fbd1fc17cp-58)) -(assert_return (invoke "f64.div" (f64.const 0x1.1e12b515db471p-102) (f64.const -0x1.41fc3c94fba5p-42)) (f64.const -0x1.c6e50cccb7cb6p-61)) -(assert_return (invoke "f64.div" (f64.const 0x1.aba5adcd6f583p-41) (f64.const 0x1.17dfac639ce0fp-112)) (f64.const 0x1.872b0a008c326p+71)) -(assert_return (invoke "f64.div" (f64.const 0x1.cf82510d0ae6bp+89) (f64.const 0x1.0207d86498053p+97)) (f64.const 0x1.cbdc804e2cf14p-8)) -(assert_return (invoke "f64.div" (f64.const 0x1.4c82cbb508e21p-11) (f64.const -0x1.6b57208c2d5d5p+52)) (f64.const -0x1.d48e8b369129ap-64)) - -;; Division involving the maximum subnormal value and the minimum normal value. -(assert_return (invoke "f32.div" (f32.const 0x1p-126) (f32.const 0x1.fffffcp-127)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.fffffcp-127) (f32.const 0x1p-126)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.div" (f64.const 0x1p-1022) (f64.const 0x0.fffffffffffffp-1022)) (f64.const 0x1.0000000000001p+0)) -(assert_return (invoke "f64.div" (f64.const 0x0.fffffffffffffp-1022) (f64.const 0x1p-1022)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test the least positive value with a positive quotient with the maximum value. -(assert_return (invoke "f32.div" (f32.const 0x1.fffffep-23) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1p-22) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149)) -(assert_return (invoke "f64.div" (f64.const 0x1.fffffffffffffp-52) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0p+0)) -(assert_return (invoke "f64.div" (f64.const 0x1p-51) (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x0.0000000000001p-1022)) - -;; Test the least positive value with a finite reciprocal. -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1p-128)) (f32.const inf)) -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1.000008p-128)) (f32.const 0x1.fffffp+127)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x0.4p-1022)) (f64.const inf)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x0.4000000000001p-1022)) (f64.const 0x1.ffffffffffff8p+1023)) - -;; Test the least positive value that has a subnormal reciprocal. -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1.000002p+126)) (f32.const 0x1.fffffcp-127)) -(assert_return (invoke "f32.div" (f32.const 1.0) (f32.const 0x1p+126)) (f32.const 0x1p-126)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x1.0000000000001p+1022)) (f64.const 0x0.fffffffffffffp-1022)) -(assert_return (invoke "f64.div" (f64.const 1.0) (f64.const 0x1p+1022)) (f64.const 0x1p-1022)) - -;; Test that the last binary digit of 1.0/3.0 is even in f32, -;; https://en.wikipedia.org/wiki/Single-precision_floating-point_format#Single-precision_examples -;; -;; and odd in f64, -;; https://en.wikipedia.org/wiki/Double-precision_floating-point_format#Double-precision_examples -;; -;; and that 1.0/3.0, 3.0/9.0, and 9.0/27.0 all agree. -;; http://www.netlib.org/paranoia -(assert_return (invoke "f32.div" (f32.const 0x1p+0) (f32.const 0x1.8p+1)) (f32.const 0x1.555556p-2)) -(assert_return (invoke "f32.div" (f32.const 0x3p+0) (f32.const 0x1.2p+3)) (f32.const 0x1.555556p-2)) -(assert_return (invoke "f32.div" (f32.const 0x1.2p+3) (f32.const 0x1.bp+4)) (f32.const 0x1.555556p-2)) -(assert_return (invoke "f64.div" (f64.const 0x1p+0) (f64.const 0x1.8p+1)) (f64.const 0x1.5555555555555p-2)) -(assert_return (invoke "f64.div" (f64.const 0x3p+0) (f64.const 0x1.2p+3)) (f64.const 0x1.5555555555555p-2)) -(assert_return (invoke "f64.div" (f64.const 0x1.2p+3) (f64.const 0x1.bp+4)) (f64.const 0x1.5555555555555p-2)) - -;; Test division of numbers very close to 1. -(assert_return (invoke "f32.div" (f32.const 0x1.000002p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1.000004p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.fffffep-1) (f32.const 0x1.000002p+0)) (f32.const 0x1.fffffap-1)) -(assert_return (invoke "f32.div" (f32.const 0x1.0p+0) (f32.const 0x1.fffffep-1)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f32.div" (f32.const 0x1.0p+0) (f32.const 0x1.000002p+0)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.div" (f64.const 0x1.0000000000001p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.0000000000002p+0)) -(assert_return (invoke "f64.div" (f64.const 0x1.fffffffffffffp-1) (f64.const 0x1.0000000000001p+0)) (f64.const 0x1.ffffffffffffdp-1)) -(assert_return (invoke "f64.div" (f64.const 0x1.0p+0) (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.0000000000001p+0)) -(assert_return (invoke "f64.div" (f64.const 0x1.0p+0) (f64.const 0x1.0000000000001p+0)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test for bugs found in an early RISC-V implementation. -;; https://github.com/riscv/riscv-tests/pull/8 -(assert_return (invoke "f32.sqrt" (f32.const 0x1.56p+7)) (f32.const 0x1.a2744cp+3)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.594dfcp-23)) (f32.const 0x1.a4789cp-12)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.56p+7)) (f64.const 0x1.a2744ce9674f5p+3)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.594dfc70aa105p-23)) (f64.const 0x1.a4789c0e37f99p-12)) - -;; Computations that round differently on x87. -(assert_return (invoke "f64.sqrt" (f64.const 0x1.0263fcc94f259p-164)) (f64.const 0x1.0131485de579fp-82)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.352dfa278c43dp+338)) (f64.const 0x1.195607dac5417p+169)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.b15daa23924fap+402)) (f64.const 0x1.4d143db561493p+201)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.518c8e68cb753p-37)) (f64.const 0x1.9fb8ef1ad5bfdp-19)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.86d8b6518078ep-370)) (f64.const 0x1.3c5142a48fcadp-185)) - -;; Test another sqrt case on x87. -;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52593 -(assert_return (invoke "f64.sqrt" (f64.const 0x1.fffffffffffffp-1)) (f64.const 0x1.fffffffffffffp-1)) - -;; Computations that round differently in round-upward mode. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.098064p-3)) (f32.const 0x1.70b23p-2)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.d9befp+100)) (f32.const 0x1.5c4052p+50)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.42b5b6p-4)) (f32.const 0x1.1f6d0ep-2)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.3684dp-71)) (f32.const 0x1.8ebae2p-36)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.d8bc4ep-11)) (f32.const 0x1.ebf9eap-6)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.5c39f220d5704p-924)) (f64.const 0x1.2a92bc24ceae9p-462)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.53521a635745cp+727)) (f64.const 0x1.a0cfdc4ef8ff1p+363)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.dfd5bbc9f4678p+385)) (f64.const 0x1.efa817117c94cp+192)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.33f9640811cd4p+105)) (f64.const 0x1.8d17c9243baa3p+52)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.6c0ef0267ff45p+999)) (f64.const 0x1.afbcfae3f2b4p+499)) - -;; Computations that round differently in round-downward mode. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.26a62ep+27)) (f32.const 0x1.84685p+13)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.166002p-113)) (f32.const 0x1.798762p-57)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.3dfb5p-15)) (f32.const 0x1.937e38p-8)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.30eb2cp-120)) (f32.const 0x1.176406p-60)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.cb705cp-123)) (f32.const 0x1.e5020ap-62)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.edae8aea0543p+695)) (f64.const 0x1.f6c1ea4fc8dd2p+347)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.f7ee4bda5c9c3p-763)) (f64.const 0x1.fbf30bdaf11c5p-382)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.a48f348266ad1p-30)) (f64.const 0x1.481ee7540baf7p-15)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.feb5a1ce3ed9cp-242)) (f64.const 0x1.6995060c20d46p-121)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.957d9796e3834p+930)) (f64.const 0x1.42305213157bap+465)) - -;; Computations that round differently in round-toward-zero mode. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.65787cp+118)) (f32.const 0x1.2e82a4p+59)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.736044p+15)) (f32.const 0x1.b40e4p+7)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.a00edp-1)) (f32.const 0x1.cd8aecp-1)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.7a4c8p-87)) (f32.const 0x1.b819e4p-44)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.5d24d4p-94)) (f32.const 0x1.2af75ep-47)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.a008948ead274p+738)) (f64.const 0x1.4659b37c39b19p+369)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.70f6199ed21f5p-381)) (f64.const 0x1.b2a2bddf3300dp-191)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.35c1d49f2a352p+965)) (f64.const 0x1.8e3d9f01a9716p+482)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.3fbdcfb2b2a15p-45)) (f64.const 0x1.949ba4feca42ap-23)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.c201b94757145p-492)) (f64.const 0x1.5369ee6bf2967p-246)) - -;; Computations that round differently when computed via f32. -(assert_return_canonical_nan (invoke "f64.sqrt" (f64.const -0x1.360e8d0032adp-963))) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.d9a6f5eef0503p+103)) (f64.const 0x1.ec73f56c166f6p+51)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.aa051a5c4ec27p-760)) (f64.const 0x1.4a3e771ff5149p-380)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.e5522a741babep-276)) (f64.const 0x1.607ae2b6feb7dp-138)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.4832badc0c061p+567)) (f64.const 0x1.99ec7934139b2p+283)) - -;; Test the least value with a sqrt that rounds to one. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.000002p+0)) (f32.const 0x1p+0)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.000004p+0)) (f32.const 0x1.000002p+0)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000001p+0)) (f64.const 0x1p+0)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.0000000000002p+0)) (f64.const 0x1.0000000000001p+0)) - -;; Test the greatest value less than one for which sqrt is not an identity. -(assert_return (invoke "f32.sqrt" (f32.const 0x1.fffffcp-1)) (f32.const 0x1.fffffep-1)) -(assert_return (invoke "f32.sqrt" (f32.const 0x1.fffffap-1)) (f32.const 0x1.fffffcp-1)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffep-1)) (f64.const 0x1.fffffffffffffp-1)) -(assert_return (invoke "f64.sqrt" (f64.const 0x1.ffffffffffffdp-1)) (f64.const 0x1.ffffffffffffep-1)) - -;; Test that the bitwise floating point operators are bitwise on NaN. - -(assert_return (invoke "f32.abs" (f32.const nan:0x0f1e2)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f32.abs" (f32.const -nan:0x0f1e2)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f64.abs" (f64.const nan:0x0f1e27a6b)) (f64.const nan:0x0f1e27a6b)) -(assert_return (invoke "f64.abs" (f64.const -nan:0x0f1e27a6b)) (f64.const nan:0x0f1e27a6b)) - -(assert_return (invoke "f32.neg" (f32.const nan:0x0f1e2)) (f32.const -nan:0x0f1e2)) -(assert_return (invoke "f32.neg" (f32.const -nan:0x0f1e2)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f64.neg" (f64.const nan:0x0f1e27a6b)) (f64.const -nan:0x0f1e27a6b)) -(assert_return (invoke "f64.neg" (f64.const -nan:0x0f1e27a6b)) (f64.const nan:0x0f1e27a6b)) - -(assert_return (invoke "f32.copysign" (f32.const nan:0x0f1e2) (f32.const nan)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f32.copysign" (f32.const nan:0x0f1e2) (f32.const -nan)) (f32.const -nan:0x0f1e2)) -(assert_return (invoke "f32.copysign" (f32.const -nan:0x0f1e2) (f32.const nan)) (f32.const nan:0x0f1e2)) -(assert_return (invoke "f32.copysign" (f32.const -nan:0x0f1e2) (f32.const -nan)) (f32.const -nan:0x0f1e2)) -(assert_return (invoke "f64.copysign" (f64.const nan:0x0f1e27a6b) (f64.const nan)) (f64.const nan:0x0f1e27a6b)) -(assert_return (invoke "f64.copysign" (f64.const nan:0x0f1e27a6b) (f64.const -nan)) (f64.const -nan:0x0f1e27a6b)) -(assert_return (invoke "f64.copysign" (f64.const -nan:0x0f1e27a6b) (f64.const nan)) (f64.const nan:0x0f1e27a6b)) -(assert_return (invoke "f64.copysign" (f64.const -nan:0x0f1e27a6b) (f64.const -nan)) (f64.const -nan:0x0f1e27a6b)) - -;; Test values close to 1.0. -(assert_return (invoke "f32.ceil" (f32.const 0x1.fffffep-1)) (f32.const 1.0)) -(assert_return (invoke "f32.ceil" (f32.const 0x1.000002p+0)) (f32.const 2.0)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.fffffffffffffp-1)) (f64.const 1.0)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.0000000000001p+0)) (f64.const 2.0)) - -;; Test the maximum and minimum value for which ceil is not an identity operator. -(assert_return (invoke "f32.ceil" (f32.const 0x1.fffffep+22)) (f32.const 0x1p+23)) -(assert_return (invoke "f32.ceil" (f32.const -0x1.fffffep+22)) (f32.const -0x1.fffffcp+22)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1p+52)) -(assert_return (invoke "f64.ceil" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1.ffffffffffffep+51)) - -;; Test that implementations don't do the x+0x1p52-0x1p52 trick outside the -;; range where it's safe. -(assert_return (invoke "f32.ceil" (f32.const 0x1.fffffep+23)) (f32.const 0x1.fffffep+23)) -(assert_return (invoke "f32.ceil" (f32.const -0x1.fffffep+23)) (f32.const -0x1.fffffep+23)) -(assert_return (invoke "f64.ceil" (f64.const 0x1.fffffffffffffp+52)) (f64.const 0x1.fffffffffffffp+52)) -(assert_return (invoke "f64.ceil" (f64.const -0x1.fffffffffffffp+52)) (f64.const -0x1.fffffffffffffp+52)) - -;; Test values close to -1.0. -(assert_return (invoke "f32.floor" (f32.const -0x1.fffffep-1)) (f32.const -1.0)) -(assert_return (invoke "f32.floor" (f32.const -0x1.000002p+0)) (f32.const -2.0)) -(assert_return (invoke "f64.floor" (f64.const -0x1.fffffffffffffp-1)) (f64.const -1.0)) -(assert_return (invoke "f64.floor" (f64.const -0x1.0000000000001p+0)) (f64.const -2.0)) - -;; Test the maximum and minimum value for which floor is not an identity operator. -(assert_return (invoke "f32.floor" (f32.const -0x1.fffffep+22)) (f32.const -0x1p+23)) -(assert_return (invoke "f32.floor" (f32.const 0x1.fffffep+22)) (f32.const 0x1.fffffcp+22)) -(assert_return (invoke "f64.floor" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1p+52)) -(assert_return (invoke "f64.floor" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1.ffffffffffffep+51)) - -;; Test that floor isn't implemented as XMVectorFloor. -;; http://dss.stephanierct.com/DevBlog/?p=8#comment-4 -(assert_return (invoke "f32.floor" (f32.const 88607.0)) (f32.const 88607.0)) -(assert_return (invoke "f64.floor" (f64.const 88607.0)) (f64.const 88607.0)) - -;; Test the maximum and minimum value for which trunc is not an identity operator. -(assert_return (invoke "f32.trunc" (f32.const -0x1.fffffep+22)) (f32.const -0x1.fffffcp+22)) -(assert_return (invoke "f32.trunc" (f32.const 0x1.fffffep+22)) (f32.const 0x1.fffffcp+22)) -(assert_return (invoke "f64.trunc" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1.ffffffffffffep+51)) -(assert_return (invoke "f64.trunc" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1.ffffffffffffep+51)) - -;; Test that nearest isn't implemented naively. -;; http://blog.frama-c.com/index.php?post/2013/05/02/nearbyintf1 -;; http://blog.frama-c.com/index.php?post/2013/05/04/nearbyintf3 -(assert_return (invoke "f32.nearest" (f32.const 0x1.000002p+23)) (f32.const 0x1.000002p+23)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.000004p+23)) (f32.const 0x1.000004p+23)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.fffffep-2)) (f32.const 0.0)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.fffffep+47)) (f32.const 0x1.fffffep+47)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.0000000000001p+52)) (f64.const 0x1.0000000000001p+52)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.0000000000002p+52)) (f64.const 0x1.0000000000002p+52)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.fffffffffffffp-2)) (f64.const 0.0)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.fffffffffffffp+105)) (f64.const 0x1.fffffffffffffp+105)) - -;; Nearest should not round halfway cases away from zero (as C's round(3) does) -;; or up (as JS's Math.round does). -(assert_return (invoke "f32.nearest" (f32.const 4.5)) (f32.const 4.0)) -(assert_return (invoke "f32.nearest" (f32.const -4.5)) (f32.const -4.0)) -(assert_return (invoke "f32.nearest" (f32.const -3.5)) (f32.const -4.0)) -(assert_return (invoke "f64.nearest" (f64.const 4.5)) (f64.const 4.0)) -(assert_return (invoke "f64.nearest" (f64.const -4.5)) (f64.const -4.0)) -(assert_return (invoke "f64.nearest" (f64.const -3.5)) (f64.const -4.0)) - -;; Test the maximum and minimum value for which nearest is not an identity operator. -(assert_return (invoke "f32.nearest" (f32.const -0x1.fffffep+22)) (f32.const -0x1p+23)) -(assert_return (invoke "f32.nearest" (f32.const 0x1.fffffep+22)) (f32.const 0x1p+23)) -(assert_return (invoke "f64.nearest" (f64.const -0x1.fffffffffffffp+51)) (f64.const -0x1p+52)) -(assert_return (invoke "f64.nearest" (f64.const 0x1.fffffffffffffp+51)) (f64.const 0x1p+52)) diff --git a/tests/samples/forward.wast b/tests/samples/forward.wast deleted file mode 100644 index 7074ed7..0000000 --- a/tests/samples/forward.wast +++ /dev/null @@ -1,20 +0,0 @@ -(module - (func $even (export "even") (param $n i32) (result i32) - (if (result i32) (i32.eq (get_local $n) (i32.const 0)) - (then (i32.const 1)) - (else (call $odd (i32.sub (get_local $n) (i32.const 1)))) - ) - ) - - (func $odd (export "odd") (param $n i32) (result i32) - (if (result i32) (i32.eq (get_local $n) (i32.const 0)) - (then (i32.const 0)) - (else (call $even (i32.sub (get_local $n) (i32.const 1)))) - ) - ) -) - -(assert_return (invoke "even" (i32.const 13)) (i32.const 0)) -(assert_return (invoke "even" (i32.const 20)) (i32.const 1)) -(assert_return (invoke "odd" (i32.const 13)) (i32.const 1)) -(assert_return (invoke "odd" (i32.const 20)) (i32.const 0)) diff --git a/tests/samples/func.wast b/tests/samples/func.wast deleted file mode 100644 index 768a924..0000000 --- a/tests/samples/func.wast +++ /dev/null @@ -1,661 +0,0 @@ -;; Test `func` declarations, i.e. functions - -(module - ;; Auxiliary definition - (type $sig (func)) - (func $dummy) - - ;; Syntax - - (func) - (func (export "f")) - (func $f) - (func $h (export "g")) - - (func (local)) - (func (local) (local)) - (func (local i32)) - (func (local $x i32)) - (func (local i32 f64 i64)) - (func (local i32) (local f64)) - (func (local i32 f32) (local $x i64) (local) (local i32 f64)) - - (func (param)) - (func (param) (param)) - (func (param i32)) - (func (param $x i32)) - (func (param i32 f64 i64)) - (func (param i32) (param f64)) - (func (param i32 f32) (param $x i64) (param) (param i32 f64)) - - (func (result i32) (unreachable)) - - (type $sig-1 (func)) - (type $sig-2 (func (result i32))) - (type $sig-3 (func (param $x i32))) - (type $sig-4 (func (param i32 f64 i32) (result i32))) - - (func (export "type-use-1") (type $sig-1)) - (func (export "type-use-2") (type $sig-2) (i32.const 0)) - (func (export "type-use-3") (type $sig-3)) - (func (export "type-use-4") (type $sig-4) (i32.const 0)) - (func (export "type-use-5") (type $sig-2) (result i32) (i32.const 0)) - (func (export "type-use-6") (type $sig-3) (param i32)) - (func (export "type-use-7") - (type $sig-4) (param i32) (param f64 i32) (result i32) (i32.const 0) - ) - - (func (type $sig)) - (func (type $forward)) ;; forward reference - - (func $complex - (param i32 f32) (param $x i64) (param) (param i32) - (result) (result i32) (result) - (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) - (unreachable) (unreachable) - ) - (func $complex-sig - (type $sig) - (local f32) (local $y i32) (local i64 i32) (local) (local f64 i32) - (unreachable) (unreachable) - ) - - (type $forward (func)) - - ;; Typing of locals - - (func (export "local-first-i32") (result i32) (local i32 i32) (get_local 0)) - (func (export "local-first-i64") (result i64) (local i64 i64) (get_local 0)) - (func (export "local-first-f32") (result f32) (local f32 f32) (get_local 0)) - (func (export "local-first-f64") (result f64) (local f64 f64) (get_local 0)) - (func (export "local-second-i32") (result i32) (local i32 i32) (get_local 1)) - (func (export "local-second-i64") (result i64) (local i64 i64) (get_local 1)) - (func (export "local-second-f32") (result f32) (local f32 f32) (get_local 1)) - (func (export "local-second-f64") (result f64) (local f64 f64) (get_local 1)) - (func (export "local-mixed") (result f64) - (local f32) (local $x i32) (local i64 i32) (local) (local f64 i32) - (drop (f32.neg (get_local 0))) - (drop (i32.eqz (get_local 1))) - (drop (i64.eqz (get_local 2))) - (drop (i32.eqz (get_local 3))) - (drop (f64.neg (get_local 4))) - (drop (i32.eqz (get_local 5))) - (get_local 4) - ) - - ;; Typing of parameters - - (func (export "param-first-i32") (param i32 i32) (result i32) (get_local 0)) - (func (export "param-first-i64") (param i64 i64) (result i64) (get_local 0)) - (func (export "param-first-f32") (param f32 f32) (result f32) (get_local 0)) - (func (export "param-first-f64") (param f64 f64) (result f64) (get_local 0)) - (func (export "param-second-i32") (param i32 i32) (result i32) (get_local 1)) - (func (export "param-second-i64") (param i64 i64) (result i64) (get_local 1)) - (func (export "param-second-f32") (param f32 f32) (result f32) (get_local 1)) - (func (export "param-second-f64") (param f64 f64) (result f64) (get_local 1)) - (func (export "param-mixed") (param f32 i32) (param) (param $x i64) (param i32 f64 i32) - (result f64) - (drop (f32.neg (get_local 0))) - (drop (i32.eqz (get_local 1))) - (drop (i64.eqz (get_local 2))) - (drop (i32.eqz (get_local 3))) - (drop (f64.neg (get_local 4))) - (drop (i32.eqz (get_local 5))) - (get_local 4) - ) - - ;; Typing of result - - (func (export "empty")) - (func (export "value-void") (call $dummy)) - (func (export "value-i32") (result i32) (i32.const 77)) - (func (export "value-i64") (result i64) (i64.const 7777)) - (func (export "value-f32") (result f32) (f32.const 77.7)) - (func (export "value-f64") (result f64) (f64.const 77.77)) - (func (export "value-block-void") (block (call $dummy) (call $dummy))) - (func (export "value-block-i32") (result i32) - (block (result i32) (call $dummy) (i32.const 77)) - ) - - (func (export "return-empty") (return)) - (func (export "return-i32") (result i32) (return (i32.const 78))) - (func (export "return-i64") (result i64) (return (i64.const 7878))) - (func (export "return-f32") (result f32) (return (f32.const 78.7))) - (func (export "return-f64") (result f64) (return (f64.const 78.78))) - (func (export "return-block-i32") (result i32) - (return (block (result i32) (call $dummy) (i32.const 77))) - ) - - (func (export "break-empty") (br 0)) - (func (export "break-i32") (result i32) (br 0 (i32.const 79))) - (func (export "break-i64") (result i64) (br 0 (i64.const 7979))) - (func (export "break-f32") (result f32) (br 0 (f32.const 79.9))) - (func (export "break-f64") (result f64) (br 0 (f64.const 79.79))) - (func (export "break-block-i32") (result i32) - (br 0 (block (result i32) (call $dummy) (i32.const 77))) - ) - - (func (export "break-br_if-empty") (param i32) - (br_if 0 (get_local 0)) - ) - (func (export "break-br_if-num") (param i32) (result i32) - (drop (br_if 0 (i32.const 50) (get_local 0))) (i32.const 51) - ) - - (func (export "break-br_table-empty") (param i32) - (br_table 0 0 0 (get_local 0)) - ) - (func (export "break-br_table-num") (param i32) (result i32) - (br_table 0 0 (i32.const 50) (get_local 0)) (i32.const 51) - ) - (func (export "break-br_table-nested-empty") (param i32) - (block (br_table 0 1 0 (get_local 0))) - ) - (func (export "break-br_table-nested-num") (param i32) (result i32) - (i32.add - (block (result i32) - (br_table 0 1 0 (i32.const 50) (get_local 0)) (i32.const 51) - ) - (i32.const 2) - ) - ) - - ;; Default initialization of locals - - (func (export "init-local-i32") (result i32) (local i32) (get_local 0)) - (func (export "init-local-i64") (result i64) (local i64) (get_local 0)) - (func (export "init-local-f32") (result f32) (local f32) (get_local 0)) - (func (export "init-local-f64") (result f64) (local f64) (get_local 0)) -) - -(assert_return (invoke "type-use-1")) -(assert_return (invoke "type-use-2") (i32.const 0)) -(assert_return (invoke "type-use-3" (i32.const 1))) -(assert_return - (invoke "type-use-4" (i32.const 1) (f64.const 1) (i32.const 1)) - (i32.const 0) -) -(assert_return (invoke "type-use-5") (i32.const 0)) -(assert_return (invoke "type-use-6" (i32.const 1))) -(assert_return - (invoke "type-use-7" (i32.const 1) (f64.const 1) (i32.const 1)) - (i32.const 0) -) - -(assert_return (invoke "local-first-i32") (i32.const 0)) -(assert_return (invoke "local-first-i64") (i64.const 0)) -(assert_return (invoke "local-first-f32") (f32.const 0)) -(assert_return (invoke "local-first-f64") (f64.const 0)) -(assert_return (invoke "local-second-i32") (i32.const 0)) -(assert_return (invoke "local-second-i64") (i64.const 0)) -(assert_return (invoke "local-second-f32") (f32.const 0)) -(assert_return (invoke "local-second-f64") (f64.const 0)) -(assert_return (invoke "local-mixed") (f64.const 0)) - -(assert_return - (invoke "param-first-i32" (i32.const 2) (i32.const 3)) (i32.const 2) -) -(assert_return - (invoke "param-first-i64" (i64.const 2) (i64.const 3)) (i64.const 2) -) -(assert_return - (invoke "param-first-f32" (f32.const 2) (f32.const 3)) (f32.const 2) -) -(assert_return - (invoke "param-first-f64" (f64.const 2) (f64.const 3)) (f64.const 2) -) -(assert_return - (invoke "param-second-i32" (i32.const 2) (i32.const 3)) (i32.const 3) -) -(assert_return - (invoke "param-second-i64" (i64.const 2) (i64.const 3)) (i64.const 3) -) -(assert_return - (invoke "param-second-f32" (f32.const 2) (f32.const 3)) (f32.const 3) -) -(assert_return - (invoke "param-second-f64" (f64.const 2) (f64.const 3)) (f64.const 3) -) - -(assert_return - (invoke "param-mixed" - (f32.const 1) (i32.const 2) (i64.const 3) - (i32.const 4) (f64.const 5.5) (i32.const 6) - ) - (f64.const 5.5) -) - -(assert_return (invoke "empty")) -(assert_return (invoke "value-void")) -(assert_return (invoke "value-i32") (i32.const 77)) -(assert_return (invoke "value-i64") (i64.const 7777)) -(assert_return (invoke "value-f32") (f32.const 77.7)) -(assert_return (invoke "value-f64") (f64.const 77.77)) -(assert_return (invoke "value-block-void")) -(assert_return (invoke "value-block-i32") (i32.const 77)) - -(assert_return (invoke "return-empty")) -(assert_return (invoke "return-i32") (i32.const 78)) -(assert_return (invoke "return-i64") (i64.const 7878)) -(assert_return (invoke "return-f32") (f32.const 78.7)) -(assert_return (invoke "return-f64") (f64.const 78.78)) -(assert_return (invoke "return-block-i32") (i32.const 77)) - -(assert_return (invoke "break-empty")) -(assert_return (invoke "break-i32") (i32.const 79)) -(assert_return (invoke "break-i64") (i64.const 7979)) -(assert_return (invoke "break-f32") (f32.const 79.9)) -(assert_return (invoke "break-f64") (f64.const 79.79)) -(assert_return (invoke "break-block-i32") (i32.const 77)) - -(assert_return (invoke "break-br_if-empty" (i32.const 0))) -(assert_return (invoke "break-br_if-empty" (i32.const 2))) -(assert_return (invoke "break-br_if-num" (i32.const 0)) (i32.const 51)) -(assert_return (invoke "break-br_if-num" (i32.const 1)) (i32.const 50)) - -(assert_return (invoke "break-br_table-empty" (i32.const 0))) -(assert_return (invoke "break-br_table-empty" (i32.const 1))) -(assert_return (invoke "break-br_table-empty" (i32.const 5))) -(assert_return (invoke "break-br_table-empty" (i32.const -1))) -(assert_return (invoke "break-br_table-num" (i32.const 0)) (i32.const 50)) -(assert_return (invoke "break-br_table-num" (i32.const 1)) (i32.const 50)) -(assert_return (invoke "break-br_table-num" (i32.const 10)) (i32.const 50)) -(assert_return (invoke "break-br_table-num" (i32.const -100)) (i32.const 50)) -(assert_return (invoke "break-br_table-nested-empty" (i32.const 0))) -(assert_return (invoke "break-br_table-nested-empty" (i32.const 1))) -(assert_return (invoke "break-br_table-nested-empty" (i32.const 3))) -(assert_return (invoke "break-br_table-nested-empty" (i32.const -2))) -(assert_return - (invoke "break-br_table-nested-num" (i32.const 0)) (i32.const 52) -) -(assert_return - (invoke "break-br_table-nested-num" (i32.const 1)) (i32.const 50) -) -(assert_return - (invoke "break-br_table-nested-num" (i32.const 2)) (i32.const 52) -) -(assert_return - (invoke "break-br_table-nested-num" (i32.const -3)) (i32.const 52) -) - -(assert_return (invoke "init-local-i32") (i32.const 0)) -(assert_return (invoke "init-local-i64") (i64.const 0)) -(assert_return (invoke "init-local-f32") (f32.const 0)) -(assert_return (invoke "init-local-f64") (f64.const 0)) - - -;; Expansion of inline function types - -(module - (func $f (result f64) (f64.const 0)) ;; adds implicit type definition - (func $g (param i32)) ;; reuses explicit type definition - (type $t (func (param i32))) - - (func $i32->void (type 0)) ;; (param i32) - (func $void->f64 (type 1) (f64.const 0)) ;; (result f64) - (func $check - (call $i32->void (i32.const 0)) - (drop (call $void->f64)) - ) -) - -(assert_invalid - (module - (func $f (result f64) (f64.const 0)) ;; adds implicit type definition - (func $g (param i32)) ;; reuses explicit type definition - (func $h (result f64) (f64.const 1)) ;; reuses implicit type definition - (type $t (func (param i32))) - - (func (type 2)) ;; does not exist - ) - "unknown type" -) - - -(module - (type $sig (func)) - - (func $empty-sig-1) ;; should be assigned type $sig - (func $complex-sig-1 (param f64 i64 f64 i64 f64 i64 f32 i32)) - (func $empty-sig-2) ;; should be assigned type $sig - (func $complex-sig-2 (param f64 i64 f64 i64 f64 i64 f32 i32)) - (func $complex-sig-3 (param f64 i64 f64 i64 f64 i64 f32 i32)) - (func $complex-sig-4 (param i64 i64 f64 i64 f64 i64 f32 i32)) - (func $complex-sig-5 (param i64 i64 f64 i64 f64 i64 f32 i32)) - - (type $empty-sig-duplicate (func)) - (type $complex-sig-duplicate (func (param i64 i64 f64 i64 f64 i64 f32 i32))) - (table anyfunc - (elem - $complex-sig-3 $empty-sig-2 $complex-sig-1 $complex-sig-3 $empty-sig-1 - $complex-sig-4 $complex-sig-5 - ) - ) - - (func (export "signature-explicit-reused") - (call_indirect (type $sig) (i32.const 1)) - (call_indirect (type $sig) (i32.const 4)) - ) - - (func (export "signature-implicit-reused") - ;; The implicit index 3 in this test depends on the function and - ;; type definitions, and may need adapting if they change. - (call_indirect (type 3) - (f64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 0) - ) - (call_indirect (type 3) - (f64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 2) - ) - (call_indirect (type 3) - (f64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 3) - ) - ) - - (func (export "signature-explicit-duplicate") - (call_indirect (type $empty-sig-duplicate) (i32.const 1)) - ) - - (func (export "signature-implicit-duplicate") - (call_indirect (type $complex-sig-duplicate) - (i64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 5) - ) - (call_indirect (type $complex-sig-duplicate) - (i64.const 0) (i64.const 0) (f64.const 0) (i64.const 0) - (f64.const 0) (i64.const 0) (f32.const 0) (i32.const 0) - (i32.const 6) - ) - ) -) - -(assert_return (invoke "signature-explicit-reused")) -(assert_return (invoke "signature-implicit-reused")) -(assert_return (invoke "signature-explicit-duplicate")) -(assert_return (invoke "signature-implicit-duplicate")) - - -;; Malformed type use - -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (type $sig) (result i32) (param i32) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (param i32) (type $sig) (result i32) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (param i32) (result i32) (type $sig) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (result i32) (type $sig) (param i32) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (result i32) (param i32) (type $sig) (i32.const 0))" - ) - "unexpected token" -) -(assert_malformed - (module quote - "(func (result i32) (param i32) (i32.const 0))" - ) - "unexpected token" -) - -(assert_malformed - (module quote - "(type $sig (func))" - "(func (type $sig) (result i32) (i32.const 0))" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (type $sig) (result i32) (i32.const 0))" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32) (result i32)))" - "(func (type $sig) (param i32) (i32.const 0))" - ) - "inline function type" -) -(assert_malformed - (module quote - "(type $sig (func (param i32 i32) (result i32)))" - "(func (type $sig) (param i32) (result i32) (unreachable))" - ) - "inline function type" -) - - -;; Invalid typing of locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid typing of parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid typing of result - -(assert_invalid - (module (func $type-multiple-result (result i32 i32) (unreachable))) - "invalid result arity" -) -(assert_invalid - (module - (type (func (result i32 i32))) - (func $type-multiple-result (type 0) (unreachable)) - ) - "invalid result arity" -) - - -(assert_invalid - (module (func $type-empty-i32 (result i32))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64))) - "type mismatch" -) - -(assert_invalid - (module (func $type-value-void-vs-num (result i32) - (nop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-void - (i32.const 0) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-num (result i32) - (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-last-empty-vs-num (result i32) - (return) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-last-void-vs-num (result i32) - (return (nop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-last-num-vs-num (result i32) - (return (i64.const 0)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-empty-vs-num (result i32) - (return) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-void-vs-num (result i32) - (return (nop)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-num-vs-num (result i32) - (return (i64.const 1)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-first-num-vs-num (result i32) - (return (i64.const 1)) (return (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-last-void-vs-num (result i32) - (br 0) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-last-num-vs-num (result i32) - (br 0 (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-void-vs-num (result i32) - (br 0) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-num-vs-num (result i32) - (br 0 (i64.const 1)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-first-num-vs-num (result i32) - (br 0 (i64.const 1)) (br 0 (i32.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-break-nested-empty-vs-num (result i32) - (block (br 1)) (br 0 (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-void-vs-num (result i32) - (block (br 1 (nop))) (br 0 (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-break-nested-num-vs-num (result i32) - (block (br 1 (i64.const 1))) (br 0 (i32.const 1)) - )) - "type mismatch" -) - - -;; Syntax errors - -(assert_malformed - (module quote "(func (nop) (local i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (nop) (param i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (nop) (result i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (local i32) (param i32))") - "unexpected token" -) -(assert_malformed - (module quote "(func (local i32) (result i32) (get_local 0))") - "unexpected token" -) -(assert_malformed - (module quote "(func (result i32) (param i32) (get_local 0))") - "unexpected token" -) diff --git a/tests/samples/func_ptrs.wast b/tests/samples/func_ptrs.wast deleted file mode 100644 index 2b74869..0000000 --- a/tests/samples/func_ptrs.wast +++ /dev/null @@ -1,106 +0,0 @@ -(module - (type (func)) ;; 0: void -> void - (type $S (func)) ;; 1: void -> void - (type (func (param))) ;; 2: void -> void - (type (func (result i32))) ;; 3: void -> i32 - (type (func (param) (result i32))) ;; 4: void -> i32 - (type $T (func (param i32) (result i32))) ;; 5: i32 -> i32 - (type $U (func (param i32))) ;; 6: i32 -> void - - (func $print (import "spectest" "print_i32") (type 6)) - - (func (type 0)) - (func (type $S)) - - (func (export "one") (type 4) (i32.const 13)) - (func (export "two") (type $T) (i32.add (get_local 0) (i32.const 1))) - - ;; Both signature and parameters are allowed (and required to match) - ;; since this allows the naming of parameters. - (func (export "three") (type $T) (param $a i32) (result i32) - (i32.sub (get_local 0) (i32.const 2)) - ) - - (func (export "four") (type $U) (call $print (get_local 0))) -) - -(assert_return (invoke "one") (i32.const 13)) -(assert_return (invoke "two" (i32.const 13)) (i32.const 14)) -(assert_return (invoke "three" (i32.const 13)) (i32.const 11)) -(invoke "four" (i32.const 83)) - -(assert_invalid (module (elem (i32.const 0))) "unknown table") -(assert_invalid (module (elem (i32.const 0) 0) (func)) "unknown table") - -(assert_invalid - (module (table 1 anyfunc) (elem (i64.const 0))) - "type mismatch" -) -(assert_invalid - (module (table 1 anyfunc) (elem (i32.ctz (i32.const 0)))) - "constant expression required" -) -(assert_invalid - (module (table 1 anyfunc) (elem (nop))) - "constant expression required" -) - -(assert_invalid (module (func (type 42))) "unknown type") -(assert_invalid (module (import "spectest" "print_i32" (func (type 43)))) "unknown type") - -(module - (type $T (func (param) (result i32))) - (type $U (func (param) (result i32))) - (table anyfunc (elem $t1 $t2 $t3 $u1 $u2 $t1 $t3)) - - (func $t1 (type $T) (i32.const 1)) - (func $t2 (type $T) (i32.const 2)) - (func $t3 (type $T) (i32.const 3)) - (func $u1 (type $U) (i32.const 4)) - (func $u2 (type $U) (i32.const 5)) - - (func (export "callt") (param $i i32) (result i32) - (call_indirect (type $T) (get_local $i)) - ) - - (func (export "callu") (param $i i32) (result i32) - (call_indirect (type $U) (get_local $i)) - ) -) - -(assert_return (invoke "callt" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "callt" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "callt" (i32.const 2)) (i32.const 3)) -(assert_return (invoke "callt" (i32.const 3)) (i32.const 4)) -(assert_return (invoke "callt" (i32.const 4)) (i32.const 5)) -(assert_return (invoke "callt" (i32.const 5)) (i32.const 1)) -(assert_return (invoke "callt" (i32.const 6)) (i32.const 3)) -(assert_trap (invoke "callt" (i32.const 7)) "undefined element") -(assert_trap (invoke "callt" (i32.const 100)) "undefined element") -(assert_trap (invoke "callt" (i32.const -1)) "undefined element") - -(assert_return (invoke "callu" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "callu" (i32.const 1)) (i32.const 2)) -(assert_return (invoke "callu" (i32.const 2)) (i32.const 3)) -(assert_return (invoke "callu" (i32.const 3)) (i32.const 4)) -(assert_return (invoke "callu" (i32.const 4)) (i32.const 5)) -(assert_return (invoke "callu" (i32.const 5)) (i32.const 1)) -(assert_return (invoke "callu" (i32.const 6)) (i32.const 3)) -(assert_trap (invoke "callu" (i32.const 7)) "undefined element") -(assert_trap (invoke "callu" (i32.const 100)) "undefined element") -(assert_trap (invoke "callu" (i32.const -1)) "undefined element") - -(module - (type $T (func (result i32))) - (table anyfunc (elem 0 1)) - - (func $t1 (type $T) (i32.const 1)) - (func $t2 (type $T) (i32.const 2)) - - (func (export "callt") (param $i i32) (result i32) - (call_indirect (type $T) (get_local $i)) - ) -) - -(assert_return (invoke "callt" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "callt" (i32.const 1)) (i32.const 2)) diff --git a/tests/samples/get_local.wast b/tests/samples/get_local.wast deleted file mode 100644 index e1f9625..0000000 --- a/tests/samples/get_local.wast +++ /dev/null @@ -1,148 +0,0 @@ -;; Test `get_local` operator - -(module - ;; Typing - - (func (export "type-local-i32") (result i32) (local i32) (get_local 0)) - (func (export "type-local-i64") (result i64) (local i64) (get_local 0)) - (func (export "type-local-f32") (result f32) (local f32) (get_local 0)) - (func (export "type-local-f64") (result f64) (local f64) (get_local 0)) - - (func (export "type-param-i32") (param i32) (result i32) (get_local 0)) - (func (export "type-param-i64") (param i64) (result i64) (get_local 0)) - (func (export "type-param-f32") (param f32) (result f32) (get_local 0)) - (func (export "type-param-f64") (param f64) (result f64) (get_local 0)) - - (func (export "type-mixed") (param i64 f32 f64 i32 i32) - (local f32 i64 i64 f64) - (drop (i64.eqz (get_local 0))) - (drop (f32.neg (get_local 1))) - (drop (f64.neg (get_local 2))) - (drop (i32.eqz (get_local 3))) - (drop (i32.eqz (get_local 4))) - (drop (f32.neg (get_local 5))) - (drop (i64.eqz (get_local 6))) - (drop (i64.eqz (get_local 7))) - (drop (f64.neg (get_local 8))) - ) - - ;; Reading - - (func (export "read") (param i64 f32 f64 i32 i32) (result f64) - (local f32 i64 i64 f64) - (set_local 5 (f32.const 5.5)) - (set_local 6 (i64.const 6)) - (set_local 8 (f64.const 8)) - (f64.add - (f64.convert_u/i64 (get_local 0)) - (f64.add - (f64.promote/f32 (get_local 1)) - (f64.add - (get_local 2) - (f64.add - (f64.convert_u/i32 (get_local 3)) - (f64.add - (f64.convert_s/i32 (get_local 4)) - (f64.add - (f64.promote/f32 (get_local 5)) - (f64.add - (f64.convert_u/i64 (get_local 6)) - (f64.add - (f64.convert_u/i64 (get_local 7)) - (get_local 8) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) - -(assert_return (invoke "type-local-i32") (i32.const 0)) -(assert_return (invoke "type-local-i64") (i64.const 0)) -(assert_return (invoke "type-local-f32") (f32.const 0)) -(assert_return (invoke "type-local-f64") (f64.const 0)) - -(assert_return (invoke "type-param-i32" (i32.const 2)) (i32.const 2)) -(assert_return (invoke "type-param-i64" (i64.const 3)) (i64.const 3)) -(assert_return (invoke "type-param-f32" (f32.const 4.4)) (f32.const 4.4)) -(assert_return (invoke "type-param-f64" (f64.const 5.5)) (f64.const 5.5)) - -(assert_return - (invoke "type-mixed" - (i64.const 1) (f32.const 2.2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) -) - -(assert_return - (invoke "read" - (i64.const 1) (f32.const 2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) - (f64.const 34.8) -) - - -;; Invalid typing of access to locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid typing of access to parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - - -;; Invalid local index - -(assert_invalid - (module (func $unbound-local (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-local (local i32 i64) (get_local 14324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-param (param i32 i64) (get_local 2))) - "unknown local" -) -(assert_invalid - (module (func $large-param (local i32 i64) (get_local 714324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) - "unknown local" -) - diff --git a/tests/samples/globals.wast b/tests/samples/globals.wast deleted file mode 100644 index c4edfed..0000000 --- a/tests/samples/globals.wast +++ /dev/null @@ -1,180 +0,0 @@ -;; Test globals - -(module - (global $a i32 (i32.const -2)) - (global (;1;) f32 (f32.const -3)) - (global (;2;) f64 (f64.const -4)) - (global $b i64 (i64.const -5)) - - (global $x (mut i32) (i32.const -12)) - (global (;5;) (mut f32) (f32.const -13)) - (global (;6;) (mut f64) (f64.const -14)) - (global $y (mut i64) (i64.const -15)) - - (func (export "get-a") (result i32) (get_global $a)) - (func (export "get-b") (result i64) (get_global $b)) - (func (export "get-x") (result i32) (get_global $x)) - (func (export "get-y") (result i64) (get_global $y)) - (func (export "set-x") (param i32) (set_global $x (get_local 0))) - (func (export "set-y") (param i64) (set_global $y (get_local 0))) - - (func (export "get-1") (result f32) (get_global 1)) - (func (export "get-2") (result f64) (get_global 2)) - (func (export "get-5") (result f32) (get_global 5)) - (func (export "get-6") (result f64) (get_global 6)) - (func (export "set-5") (param f32) (set_global 5 (get_local 0))) - (func (export "set-6") (param f64) (set_global 6 (get_local 0))) -) - -(assert_return (invoke "get-a") (i32.const -2)) -(assert_return (invoke "get-b") (i64.const -5)) -(assert_return (invoke "get-x") (i32.const -12)) -(assert_return (invoke "get-y") (i64.const -15)) - -(assert_return (invoke "get-1") (f32.const -3)) -(assert_return (invoke "get-2") (f64.const -4)) -(assert_return (invoke "get-5") (f32.const -13)) -(assert_return (invoke "get-6") (f64.const -14)) - -(assert_return (invoke "set-x" (i32.const 6))) -(assert_return (invoke "set-y" (i64.const 7))) -(assert_return (invoke "set-5" (f32.const 8))) -(assert_return (invoke "set-6" (f64.const 9))) - -(assert_return (invoke "get-x") (i32.const 6)) -(assert_return (invoke "get-y") (i64.const 7)) -(assert_return (invoke "get-5") (f32.const 8)) -(assert_return (invoke "get-6") (f64.const 9)) - -(assert_invalid - (module (global f32 (f32.const 0)) (func (set_global 0 (i32.const 1)))) - "global is immutable" -) - -(assert_invalid - (module (import "m" "a" (global (mut i32)))) - "mutable globals cannot be imported" -) - -(assert_invalid - (module (global (import "m" "a") (mut i32))) - "mutable globals cannot be imported" -) - -(assert_invalid - (module (global (mut f32) (f32.const 0)) (export "a" (global 0))) - "mutable globals cannot be exported" -) - -(assert_invalid - (module (global (export "a") (mut f32) (f32.const 0))) - "mutable globals cannot be exported" -) - -(assert_invalid - (module (global f32 (f32.neg (f32.const 0)))) - "constant expression required" -) - -(assert_invalid - (module (global f32 (get_local 0))) - "constant expression required" -) - -(assert_invalid - (module (global f32 (f32.neg (f32.const 1)))) - "constant expression required" -) - -(assert_invalid - (module (global i32 (i32.const 0) (nop))) - "constant expression required" -) - -(assert_invalid - (module (global i32 (nop))) - "constant expression required" -) - -(assert_invalid - (module (global i32 (f32.const 0))) - "type mismatch" -) - -(assert_invalid - (module (global i32 (i32.const 0) (i32.const 0))) - "type mismatch" -) - -(assert_invalid - (module (global i32 (;empty instruction sequence;))) - "type mismatch" -) - -(assert_invalid - (module (global i32 (get_global 0))) - "unknown global" -) - -(assert_invalid - (module (global i32 (get_global 1)) (global i32 (i32.const 0))) - "unknown global" -) - -(module - (import "spectest" "global_i32" (global i32)) -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\94\80\80\80\00" ;; import section - "\01" ;; length 1 - "\08\73\70\65\63\74\65\73\74" ;; "spectest" - "\0a\67\6c\6f\62\61\6c\5f\69\33\32" ;; "global_i32" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\02" ;; invalid mutability - ) - "invalid mutability" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\94\80\80\80\00" ;; import section - "\01" ;; length 1 - "\08\73\70\65\63\74\65\73\74" ;; "spectest" - "\0a\67\6c\6f\62\61\6c\5f\69\33\32" ;; "global_i32" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\ff" ;; invalid mutability - ) - "invalid mutability" -) - -(module - (global i32 (i32.const 0)) -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\86\80\80\80\00" ;; global section - "\01" ;; length 1 - "\7f" ;; i32 - "\02" ;; invalid mutability - "\41\00" ;; i32.const 0 - "\0b" ;; end - ) - "invalid mutability" -) -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\06\86\80\80\80\00" ;; global section - "\01" ;; length 1 - "\7f" ;; i32 - "\ff" ;; invalid mutability - "\41\00" ;; i32.const 0 - "\0b" ;; end - ) - "invalid mutability" -) diff --git a/tests/samples/i32.wast b/tests/samples/i32.wast deleted file mode 100644 index bd8722e..0000000 --- a/tests/samples/i32.wast +++ /dev/null @@ -1,421 +0,0 @@ -;; i32 operations - -(module - (func (export "add") (param $x i32) (param $y i32) (result i32) (i32.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x i32) (param $y i32) (result i32) (i32.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x i32) (param $y i32) (result i32) (i32.mul (get_local $x) (get_local $y))) - (func (export "div_s") (param $x i32) (param $y i32) (result i32) (i32.div_s (get_local $x) (get_local $y))) - (func (export "div_u") (param $x i32) (param $y i32) (result i32) (i32.div_u (get_local $x) (get_local $y))) - (func (export "rem_s") (param $x i32) (param $y i32) (result i32) (i32.rem_s (get_local $x) (get_local $y))) - (func (export "rem_u") (param $x i32) (param $y i32) (result i32) (i32.rem_u (get_local $x) (get_local $y))) - (func (export "and") (param $x i32) (param $y i32) (result i32) (i32.and (get_local $x) (get_local $y))) - (func (export "or") (param $x i32) (param $y i32) (result i32) (i32.or (get_local $x) (get_local $y))) - (func (export "xor") (param $x i32) (param $y i32) (result i32) (i32.xor (get_local $x) (get_local $y))) - (func (export "shl") (param $x i32) (param $y i32) (result i32) (i32.shl (get_local $x) (get_local $y))) - (func (export "shr_s") (param $x i32) (param $y i32) (result i32) (i32.shr_s (get_local $x) (get_local $y))) - (func (export "shr_u") (param $x i32) (param $y i32) (result i32) (i32.shr_u (get_local $x) (get_local $y))) - (func (export "rotl") (param $x i32) (param $y i32) (result i32) (i32.rotl (get_local $x) (get_local $y))) - (func (export "rotr") (param $x i32) (param $y i32) (result i32) (i32.rotr (get_local $x) (get_local $y))) - (func (export "clz") (param $x i32) (result i32) (i32.clz (get_local $x))) - (func (export "ctz") (param $x i32) (result i32) (i32.ctz (get_local $x))) - (func (export "popcnt") (param $x i32) (result i32) (i32.popcnt (get_local $x))) - (func (export "eqz") (param $x i32) (result i32) (i32.eqz (get_local $x))) - (func (export "eq") (param $x i32) (param $y i32) (result i32) (i32.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x i32) (param $y i32) (result i32) (i32.ne (get_local $x) (get_local $y))) - (func (export "lt_s") (param $x i32) (param $y i32) (result i32) (i32.lt_s (get_local $x) (get_local $y))) - (func (export "lt_u") (param $x i32) (param $y i32) (result i32) (i32.lt_u (get_local $x) (get_local $y))) - (func (export "le_s") (param $x i32) (param $y i32) (result i32) (i32.le_s (get_local $x) (get_local $y))) - (func (export "le_u") (param $x i32) (param $y i32) (result i32) (i32.le_u (get_local $x) (get_local $y))) - (func (export "gt_s") (param $x i32) (param $y i32) (result i32) (i32.gt_s (get_local $x) (get_local $y))) - (func (export "gt_u") (param $x i32) (param $y i32) (result i32) (i32.gt_u (get_local $x) (get_local $y))) - (func (export "ge_s") (param $x i32) (param $y i32) (result i32) (i32.ge_s (get_local $x) (get_local $y))) - (func (export "ge_u") (param $x i32) (param $y i32) (result i32) (i32.ge_u (get_local $x) (get_local $y))) -) - -(assert_return (invoke "add" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "add" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "add" (i32.const -1) (i32.const -1)) (i32.const -2)) -(assert_return (invoke "add" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "add" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "add" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x7fffffff)) -(assert_return (invoke "add" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "add" (i32.const 0x3fffffff) (i32.const 1)) (i32.const 0x40000000)) - -(assert_return (invoke "sub" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "sub" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "sub" (i32.const 0x80000000) (i32.const 1)) (i32.const 0x7fffffff)) -(assert_return (invoke "sub" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "sub" (i32.const 0x3fffffff) (i32.const -1)) (i32.const 0x40000000)) - -(assert_return (invoke "mul" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "mul" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "mul" (i32.const 0x10000000) (i32.const 4096)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "mul" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "mul" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x80000001)) -(assert_return (invoke "mul" (i32.const 0x01234567) (i32.const 0x76543210)) (i32.const 0x358e7470)) -(assert_return (invoke "mul" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) - -(assert_trap (invoke "div_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i32.const 0x80000000) (i32.const -1)) "integer overflow") -(assert_return (invoke "div_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "div_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "div_s" (i32.const 0) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "div_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "div_s" (i32.const 0x80000000) (i32.const 2)) (i32.const 0xc0000000)) -(assert_return (invoke "div_s" (i32.const 0x80000001) (i32.const 1000)) (i32.const 0xffdf3b65)) -(assert_return (invoke "div_s" (i32.const 5) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const -5) (i32.const 2)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const 5) (i32.const -2)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const -5) (i32.const -2)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 7) (i32.const 3)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const -7) (i32.const 3)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const 7) (i32.const -3)) (i32.const -2)) -(assert_return (invoke "div_s" (i32.const -7) (i32.const -3)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 11) (i32.const 5)) (i32.const 2)) -(assert_return (invoke "div_s" (i32.const 17) (i32.const 7)) (i32.const 2)) - -(assert_trap (invoke "div_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "div_u" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "div_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "div_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "div_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const 0x80000000) (i32.const 2)) (i32.const 0x40000000)) -(assert_return (invoke "div_u" (i32.const 0x8ff00ff0) (i32.const 0x10001)) (i32.const 0x8fef)) -(assert_return (invoke "div_u" (i32.const 0x80000001) (i32.const 1000)) (i32.const 0x20c49b)) -(assert_return (invoke "div_u" (i32.const 5) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const -5) (i32.const 2)) (i32.const 0x7ffffffd)) -(assert_return (invoke "div_u" (i32.const 5) (i32.const -2)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const -5) (i32.const -2)) (i32.const 0)) -(assert_return (invoke "div_u" (i32.const 7) (i32.const 3)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const 11) (i32.const 5)) (i32.const 2)) -(assert_return (invoke "div_u" (i32.const 17) (i32.const 7)) (i32.const 2)) - -(assert_trap (invoke "rem_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_s" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "rem_s" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000000) (i32.const 2)) (i32.const 0)) -(assert_return (invoke "rem_s" (i32.const 0x80000001) (i32.const 1000)) (i32.const -647)) -(assert_return (invoke "rem_s" (i32.const 5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -5) (i32.const 2)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 5) (i32.const -2)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -5) (i32.const -2)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 7) (i32.const 3)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -7) (i32.const 3)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 7) (i32.const -3)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const -7) (i32.const -3)) (i32.const -1)) -(assert_return (invoke "rem_s" (i32.const 11) (i32.const 5)) (i32.const 1)) -(assert_return (invoke "rem_s" (i32.const 17) (i32.const 7)) (i32.const 3)) - -(assert_trap (invoke "rem_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_u" (i32.const 0) (i32.const 0)) "integer divide by zero") -(assert_return (invoke "rem_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "rem_u" (i32.const 0x80000000) (i32.const 2)) (i32.const 0)) -(assert_return (invoke "rem_u" (i32.const 0x8ff00ff0) (i32.const 0x10001)) (i32.const 0x8001)) -(assert_return (invoke "rem_u" (i32.const 0x80000001) (i32.const 1000)) (i32.const 649)) -(assert_return (invoke "rem_u" (i32.const 5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const -5) (i32.const 2)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 5) (i32.const -2)) (i32.const 5)) -(assert_return (invoke "rem_u" (i32.const -5) (i32.const -2)) (i32.const -5)) -(assert_return (invoke "rem_u" (i32.const 7) (i32.const 3)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 11) (i32.const 5)) (i32.const 1)) -(assert_return (invoke "rem_u" (i32.const 17) (i32.const 7)) (i32.const 3)) - -(assert_return (invoke "and" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "and" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "and" (i32.const 0x7fffffff) (i32.const -1)) (i32.const 0x7fffffff)) -(assert_return (invoke "and" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0xf0f0f0f0)) -(assert_return (invoke "and" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0xffffffff)) - -(assert_return (invoke "or" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "or" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "or" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const -1)) -(assert_return (invoke "or" (i32.const 0x80000000) (i32.const 0)) (i32.const 0x80000000)) -(assert_return (invoke "or" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0xffffffff)) -(assert_return (invoke "or" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0xffffffff)) - -(assert_return (invoke "xor" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "xor" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "xor" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "xor" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "xor" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const -1)) -(assert_return (invoke "xor" (i32.const 0x80000000) (i32.const 0)) (i32.const 0x80000000)) -(assert_return (invoke "xor" (i32.const -1) (i32.const 0x80000000)) (i32.const 0x7fffffff)) -(assert_return (invoke "xor" (i32.const -1) (i32.const 0x7fffffff)) (i32.const 0x80000000)) -(assert_return (invoke "xor" (i32.const 0xf0f0ffff) (i32.const 0xfffff0f0)) (i32.const 0x0f0f0f0f)) -(assert_return (invoke "xor" (i32.const 0xffffffff) (i32.const 0xffffffff)) (i32.const 0)) - -(assert_return (invoke "shl" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shl" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0xfffffffe)) -(assert_return (invoke "shl" (i32.const 0xffffffff) (i32.const 1)) (i32.const 0xfffffffe)) -(assert_return (invoke "shl" (i32.const 0x80000000) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shl" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 31)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 33)) (i32.const 2)) -(assert_return (invoke "shl" (i32.const 1) (i32.const -1)) (i32.const 0x80000000)) -(assert_return (invoke "shl" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0x80000000)) - -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x3fffffff)) -(assert_return (invoke "shr_s" (i32.const 0x80000000) (i32.const 1)) (i32.const 0xc0000000)) -(assert_return (invoke "shr_s" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x20000000)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 33)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "shr_s" (i32.const 1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "shr_s" (i32.const 0x80000000) (i32.const 31)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 32)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 33)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const -1)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 0x7fffffff)) (i32.const -1)) -(assert_return (invoke "shr_s" (i32.const -1) (i32.const 0x80000000)) (i32.const -1)) - -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 1)) (i32.const 0x7fffffff)) -(assert_return (invoke "shr_u" (i32.const 0x7fffffff) (i32.const 1)) (i32.const 0x3fffffff)) -(assert_return (invoke "shr_u" (i32.const 0x80000000) (i32.const 1)) (i32.const 0x40000000)) -(assert_return (invoke "shr_u" (i32.const 0x40000000) (i32.const 1)) (i32.const 0x20000000)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 33)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "shr_u" (i32.const 1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const 0x80000000) (i32.const 31)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 32)) (i32.const -1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 33)) (i32.const 0x7fffffff)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "shr_u" (i32.const -1) (i32.const 0x80000000)) (i32.const -1)) - -(assert_return (invoke "rotl" (i32.const 1) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "rotl" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "rotl" (i32.const 0xabcd9876) (i32.const 1)) (i32.const 0x579b30ed)) -(assert_return (invoke "rotl" (i32.const 0xfe00dc00) (i32.const 4)) (i32.const 0xe00dc00f)) -(assert_return (invoke "rotl" (i32.const 0xb0c1d2e3) (i32.const 5)) (i32.const 0x183a5c76)) -(assert_return (invoke "rotl" (i32.const 0x00008000) (i32.const 37)) (i32.const 0x00100000)) -(assert_return (invoke "rotl" (i32.const 0xb0c1d2e3) (i32.const 0xff05)) (i32.const 0x183a5c76)) -(assert_return (invoke "rotl" (i32.const 0x769abcdf) (i32.const 0xffffffed)) (i32.const 0x579beed3)) -(assert_return (invoke "rotl" (i32.const 0x769abcdf) (i32.const 0x8000000d)) (i32.const 0x579beed3)) -(assert_return (invoke "rotl" (i32.const 1) (i32.const 31)) (i32.const 0x80000000)) -(assert_return (invoke "rotl" (i32.const 0x80000000) (i32.const 1)) (i32.const 1)) - -(assert_return (invoke "rotr" (i32.const 1) (i32.const 1)) (i32.const 0x80000000)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "rotr" (i32.const -1) (i32.const 1)) (i32.const -1)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 32)) (i32.const 1)) -(assert_return (invoke "rotr" (i32.const 0xff00cc00) (i32.const 1)) (i32.const 0x7f806600)) -(assert_return (invoke "rotr" (i32.const 0x00080000) (i32.const 4)) (i32.const 0x00008000)) -(assert_return (invoke "rotr" (i32.const 0xb0c1d2e3) (i32.const 5)) (i32.const 0x1d860e97)) -(assert_return (invoke "rotr" (i32.const 0x00008000) (i32.const 37)) (i32.const 0x00000400)) -(assert_return (invoke "rotr" (i32.const 0xb0c1d2e3) (i32.const 0xff05)) (i32.const 0x1d860e97)) -(assert_return (invoke "rotr" (i32.const 0x769abcdf) (i32.const 0xffffffed)) (i32.const 0xe6fbb4d5)) -(assert_return (invoke "rotr" (i32.const 0x769abcdf) (i32.const 0x8000000d)) (i32.const 0xe6fbb4d5)) -(assert_return (invoke "rotr" (i32.const 1) (i32.const 31)) (i32.const 2)) -(assert_return (invoke "rotr" (i32.const 0x80000000) (i32.const 31)) (i32.const 1)) - -(assert_return (invoke "clz" (i32.const 0xffffffff)) (i32.const 0)) -(assert_return (invoke "clz" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "clz" (i32.const 0x00008000)) (i32.const 16)) -(assert_return (invoke "clz" (i32.const 0xff)) (i32.const 24)) -(assert_return (invoke "clz" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "clz" (i32.const 1)) (i32.const 31)) -(assert_return (invoke "clz" (i32.const 2)) (i32.const 30)) -(assert_return (invoke "clz" (i32.const 0x7fffffff)) (i32.const 1)) - -(assert_return (invoke "ctz" (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ctz" (i32.const 0)) (i32.const 32)) -(assert_return (invoke "ctz" (i32.const 0x00008000)) (i32.const 15)) -(assert_return (invoke "ctz" (i32.const 0x00010000)) (i32.const 16)) -(assert_return (invoke "ctz" (i32.const 0x80000000)) (i32.const 31)) -(assert_return (invoke "ctz" (i32.const 0x7fffffff)) (i32.const 0)) - -(assert_return (invoke "popcnt" (i32.const -1)) (i32.const 32)) -(assert_return (invoke "popcnt" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "popcnt" (i32.const 0x00008000)) (i32.const 1)) -(assert_return (invoke "popcnt" (i32.const 0x80008000)) (i32.const 2)) -(assert_return (invoke "popcnt" (i32.const 0x7fffffff)) (i32.const 31)) -(assert_return (invoke "popcnt" (i32.const 0xAAAAAAAA)) (i32.const 16)) -(assert_return (invoke "popcnt" (i32.const 0x55555555)) (i32.const 16)) -(assert_return (invoke "popcnt" (i32.const 0xDEADBEEF)) (i32.const 24)) - -(assert_return (invoke "eqz" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "eqz" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "eqz" (i32.const 0xffffffff)) (i32.const 0)) - -(assert_return (invoke "eq" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "eq" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "eq" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "ne" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ne" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ne" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "lt_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "le_s" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "le_u" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 1) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "le_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "gt_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) - -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 0)) -(assert_return (invoke "ge_s" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 1)) - -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x7fffffff) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const -1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0) (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const -1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i32.const -1) (i32.const 0x80000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x80000000) (i32.const 0x7fffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i32.const 0x7fffffff) (i32.const 0x80000000)) (i32.const 0)) diff --git a/tests/samples/i64.wast b/tests/samples/i64.wast deleted file mode 100644 index 6bb8a31..0000000 --- a/tests/samples/i64.wast +++ /dev/null @@ -1,421 +0,0 @@ -;; i64 operations - -(module - (func (export "add") (param $x i64) (param $y i64) (result i64) (i64.add (get_local $x) (get_local $y))) - (func (export "sub") (param $x i64) (param $y i64) (result i64) (i64.sub (get_local $x) (get_local $y))) - (func (export "mul") (param $x i64) (param $y i64) (result i64) (i64.mul (get_local $x) (get_local $y))) - (func (export "div_s") (param $x i64) (param $y i64) (result i64) (i64.div_s (get_local $x) (get_local $y))) - (func (export "div_u") (param $x i64) (param $y i64) (result i64) (i64.div_u (get_local $x) (get_local $y))) - (func (export "rem_s") (param $x i64) (param $y i64) (result i64) (i64.rem_s (get_local $x) (get_local $y))) - (func (export "rem_u") (param $x i64) (param $y i64) (result i64) (i64.rem_u (get_local $x) (get_local $y))) - (func (export "and") (param $x i64) (param $y i64) (result i64) (i64.and (get_local $x) (get_local $y))) - (func (export "or") (param $x i64) (param $y i64) (result i64) (i64.or (get_local $x) (get_local $y))) - (func (export "xor") (param $x i64) (param $y i64) (result i64) (i64.xor (get_local $x) (get_local $y))) - (func (export "shl") (param $x i64) (param $y i64) (result i64) (i64.shl (get_local $x) (get_local $y))) - (func (export "shr_s") (param $x i64) (param $y i64) (result i64) (i64.shr_s (get_local $x) (get_local $y))) - (func (export "shr_u") (param $x i64) (param $y i64) (result i64) (i64.shr_u (get_local $x) (get_local $y))) - (func (export "rotl") (param $x i64) (param $y i64) (result i64) (i64.rotl (get_local $x) (get_local $y))) - (func (export "rotr") (param $x i64) (param $y i64) (result i64) (i64.rotr (get_local $x) (get_local $y))) - (func (export "clz") (param $x i64) (result i64) (i64.clz (get_local $x))) - (func (export "ctz") (param $x i64) (result i64) (i64.ctz (get_local $x))) - (func (export "popcnt") (param $x i64) (result i64) (i64.popcnt (get_local $x))) - (func (export "eqz") (param $x i64) (result i32) (i64.eqz (get_local $x))) - (func (export "eq") (param $x i64) (param $y i64) (result i32) (i64.eq (get_local $x) (get_local $y))) - (func (export "ne") (param $x i64) (param $y i64) (result i32) (i64.ne (get_local $x) (get_local $y))) - (func (export "lt_s") (param $x i64) (param $y i64) (result i32) (i64.lt_s (get_local $x) (get_local $y))) - (func (export "lt_u") (param $x i64) (param $y i64) (result i32) (i64.lt_u (get_local $x) (get_local $y))) - (func (export "le_s") (param $x i64) (param $y i64) (result i32) (i64.le_s (get_local $x) (get_local $y))) - (func (export "le_u") (param $x i64) (param $y i64) (result i32) (i64.le_u (get_local $x) (get_local $y))) - (func (export "gt_s") (param $x i64) (param $y i64) (result i32) (i64.gt_s (get_local $x) (get_local $y))) - (func (export "gt_u") (param $x i64) (param $y i64) (result i32) (i64.gt_u (get_local $x) (get_local $y))) - (func (export "ge_s") (param $x i64) (param $y i64) (result i32) (i64.ge_s (get_local $x) (get_local $y))) - (func (export "ge_u") (param $x i64) (param $y i64) (result i32) (i64.ge_u (get_local $x) (get_local $y))) -) - -(assert_return (invoke "add" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "add" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "add" (i64.const -1) (i64.const -1)) (i64.const -2)) -(assert_return (invoke "add" (i64.const -1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "add" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "add" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "add" (i64.const 0x3fffffff) (i64.const 1)) (i64.const 0x40000000)) - -(assert_return (invoke "sub" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "sub" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "sub" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "sub" (i64.const 0x3fffffff) (i64.const -1)) (i64.const 0x40000000)) - -(assert_return (invoke "mul" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "mul" (i64.const 1) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "mul" (i64.const 0x1000000000000000) (i64.const 4096)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "mul" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x8000000000000001)) -(assert_return (invoke "mul" (i64.const 0x0123456789abcdef) (i64.const 0xfedcba9876543210)) (i64.const 0x2236d88fe5618cf0)) -(assert_return (invoke "mul" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i64.const 1)) - -(assert_trap (invoke "div_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_s" (i64.const 0x8000000000000000) (i64.const -1)) "integer overflow") -(assert_return (invoke "div_s" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "div_s" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "div_s" (i64.const 0) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "div_s" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "div_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0xc000000000000000)) -(assert_return (invoke "div_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0xffdf3b645a1cac09)) -(assert_return (invoke "div_s" (i64.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const -5) (i64.const 2)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const 5) (i64.const -2)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const -5) (i64.const -2)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 7) (i64.const 3)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const -7) (i64.const 3)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const 7) (i64.const -3)) (i64.const -2)) -(assert_return (invoke "div_s" (i64.const -7) (i64.const -3)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 11) (i64.const 5)) (i64.const 2)) -(assert_return (invoke "div_s" (i64.const 17) (i64.const 7)) (i64.const 2)) - -(assert_trap (invoke "div_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "div_u" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "div_u" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "div_u" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0x4000000000000000)) -(assert_return (invoke "div_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x8ff00fef)) -(assert_return (invoke "div_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 0x20c49ba5e353f7)) -(assert_return (invoke "div_u" (i64.const 5) (i64.const 2)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const -5) (i64.const 2)) (i64.const 0x7ffffffffffffffd)) -(assert_return (invoke "div_u" (i64.const 5) (i64.const -2)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const -5) (i64.const -2)) (i64.const 0)) -(assert_return (invoke "div_u" (i64.const 7) (i64.const 3)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const 11) (i64.const 5)) (i64.const 2)) -(assert_return (invoke "div_u" (i64.const 17) (i64.const 7)) (i64.const 2)) - -(assert_trap (invoke "rem_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_s" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "rem_s" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0)) -(assert_return (invoke "rem_s" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const -807)) -(assert_return (invoke "rem_s" (i64.const 5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -5) (i64.const 2)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 5) (i64.const -2)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -5) (i64.const -2)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 7) (i64.const 3)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -7) (i64.const 3)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 7) (i64.const -3)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const -7) (i64.const -3)) (i64.const -1)) -(assert_return (invoke "rem_s" (i64.const 11) (i64.const 5)) (i64.const 1)) -(assert_return (invoke "rem_s" (i64.const 17) (i64.const 7)) (i64.const 3)) - -(assert_trap (invoke "rem_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "rem_u" (i64.const 0) (i64.const 0)) "integer divide by zero") -(assert_return (invoke "rem_u" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const -1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000000) (i64.const 2)) (i64.const 0)) -(assert_return (invoke "rem_u" (i64.const 0x8ff00ff00ff00ff0) (i64.const 0x100000001)) (i64.const 0x80000001)) -(assert_return (invoke "rem_u" (i64.const 0x8000000000000001) (i64.const 1000)) (i64.const 809)) -(assert_return (invoke "rem_u" (i64.const 5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const -5) (i64.const 2)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 5) (i64.const -2)) (i64.const 5)) -(assert_return (invoke "rem_u" (i64.const -5) (i64.const -2)) (i64.const -5)) -(assert_return (invoke "rem_u" (i64.const 7) (i64.const 3)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 11) (i64.const 5)) (i64.const 1)) -(assert_return (invoke "rem_u" (i64.const 17) (i64.const 7)) (i64.const 3)) - -(assert_return (invoke "and" (i64.const 1) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "and" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "and" (i64.const 0x7fffffffffffffff) (i64.const -1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "and" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xf0f0f0f0)) -(assert_return (invoke "and" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff)) - -(assert_return (invoke "or" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 1) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "or" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "or" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1)) -(assert_return (invoke "or" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "or" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0xffffffff)) -(assert_return (invoke "or" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0xffffffffffffffff)) - -(assert_return (invoke "xor" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "xor" (i64.const 0) (i64.const 1)) (i64.const 1)) -(assert_return (invoke "xor" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "xor" (i64.const 0) (i64.const 0)) (i64.const 0)) -(assert_return (invoke "xor" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i64.const -1)) -(assert_return (invoke "xor" (i64.const 0x8000000000000000) (i64.const 0)) (i64.const 0x8000000000000000)) -(assert_return (invoke "xor" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "xor" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000)) -(assert_return (invoke "xor" (i64.const 0xf0f0ffff) (i64.const 0xfffff0f0)) (i64.const 0x0f0f0f0f)) -(assert_return (invoke "xor" (i64.const 0xffffffffffffffff) (i64.const 0xffffffffffffffff)) (i64.const 0)) - -(assert_return (invoke "shl" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shl" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe)) -(assert_return (invoke "shl" (i64.const 0xffffffffffffffff) (i64.const 1)) (i64.const 0xfffffffffffffffe)) -(assert_return (invoke "shl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shl" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 65)) (i64.const 2)) -(assert_return (invoke "shl" (i64.const 1) (i64.const -1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "shl" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0x8000000000000000)) - -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff)) -(assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0xc000000000000000)) -(assert_return (invoke "shr_s" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 65)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0)) -(assert_return (invoke "shr_s" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1)) -(assert_return (invoke "shr_s" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 64)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 65)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const -1)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const -1)) -(assert_return (invoke "shr_s" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1)) - -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 1)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 1)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const 0x7fffffffffffffff) (i64.const 1)) (i64.const 0x3fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 0x4000000000000000)) -(assert_return (invoke "shr_u" (i64.const 0x4000000000000000) (i64.const 1)) (i64.const 0x2000000000000000)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 65)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const -1)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x7fffffffffffffff)) (i64.const 0)) -(assert_return (invoke "shr_u" (i64.const 1) (i64.const 0x8000000000000000)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 64)) (i64.const -1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 65)) (i64.const 0x7fffffffffffffff)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const -1)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x7fffffffffffffff)) (i64.const 1)) -(assert_return (invoke "shr_u" (i64.const -1) (i64.const 0x8000000000000000)) (i64.const -1)) - -(assert_return (invoke "rotl" (i64.const 1) (i64.const 1)) (i64.const 2)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "rotl" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "rotl" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x579b30ec048d159d)) -(assert_return (invoke "rotl" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0xe000000dc000000f)) -(assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x013579a2469deacf)) -(assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x55e891a77ab3c04e)) -(assert_return (invoke "rotl" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x013579a2469deacf)) -(assert_return (invoke "rotl" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0xcf013579ae529dea)) -(assert_return (invoke "rotl" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x55e891a77ab3c04e)) -(assert_return (invoke "rotl" (i64.const 1) (i64.const 63)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rotl" (i64.const 0x8000000000000000) (i64.const 1)) (i64.const 1)) - -(assert_return (invoke "rotr" (i64.const 1) (i64.const 1)) (i64.const 0x8000000000000000)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 0)) (i64.const 1)) -(assert_return (invoke "rotr" (i64.const -1) (i64.const 1)) (i64.const -1)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 64)) (i64.const 1)) -(assert_return (invoke "rotr" (i64.const 0xabcd987602468ace) (i64.const 1)) (i64.const 0x55e6cc3b01234567)) -(assert_return (invoke "rotr" (i64.const 0xfe000000dc000000) (i64.const 4)) (i64.const 0x0fe000000dc00000)) -(assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 53)) (i64.const 0x6891a77ab3c04d5e)) -(assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 63)) (i64.const 0x57a2469deacf0139)) -(assert_return (invoke "rotr" (i64.const 0xabcd1234ef567809) (i64.const 0xf5)) (i64.const 0x6891a77ab3c04d5e)) -(assert_return (invoke "rotr" (i64.const 0xabcd7294ef567809) (i64.const 0xffffffffffffffed)) (i64.const 0x94a77ab3c04d5e6b)) -(assert_return (invoke "rotr" (i64.const 0xabd1234ef567809c) (i64.const 0x800000000000003f)) (i64.const 0x57a2469deacf0139)) -(assert_return (invoke "rotr" (i64.const 1) (i64.const 63)) (i64.const 2)) -(assert_return (invoke "rotr" (i64.const 0x8000000000000000) (i64.const 63)) (i64.const 1)) - -(assert_return (invoke "clz" (i64.const 0xffffffffffffffff)) (i64.const 0)) -(assert_return (invoke "clz" (i64.const 0)) (i64.const 64)) -(assert_return (invoke "clz" (i64.const 0x00008000)) (i64.const 48)) -(assert_return (invoke "clz" (i64.const 0xff)) (i64.const 56)) -(assert_return (invoke "clz" (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "clz" (i64.const 1)) (i64.const 63)) -(assert_return (invoke "clz" (i64.const 2)) (i64.const 62)) -(assert_return (invoke "clz" (i64.const 0x7fffffffffffffff)) (i64.const 1)) - -(assert_return (invoke "ctz" (i64.const -1)) (i64.const 0)) -(assert_return (invoke "ctz" (i64.const 0)) (i64.const 64)) -(assert_return (invoke "ctz" (i64.const 0x00008000)) (i64.const 15)) -(assert_return (invoke "ctz" (i64.const 0x00010000)) (i64.const 16)) -(assert_return (invoke "ctz" (i64.const 0x8000000000000000)) (i64.const 63)) -(assert_return (invoke "ctz" (i64.const 0x7fffffffffffffff)) (i64.const 0)) - -(assert_return (invoke "popcnt" (i64.const -1)) (i64.const 64)) -(assert_return (invoke "popcnt" (i64.const 0)) (i64.const 0)) -(assert_return (invoke "popcnt" (i64.const 0x00008000)) (i64.const 1)) -(assert_return (invoke "popcnt" (i64.const 0x8000800080008000)) (i64.const 4)) -(assert_return (invoke "popcnt" (i64.const 0x7fffffffffffffff)) (i64.const 63)) -(assert_return (invoke "popcnt" (i64.const 0xAAAAAAAA55555555)) (i64.const 32)) -(assert_return (invoke "popcnt" (i64.const 0x99999999AAAAAAAA)) (i64.const 32)) -(assert_return (invoke "popcnt" (i64.const 0xDEADBEEFDEADBEEF)) (i64.const 48)) - -(assert_return (invoke "eqz" (i64.const 0)) (i32.const 1)) -(assert_return (invoke "eqz" (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "eqz" (i64.const 0xffffffffffffffff)) (i32.const 0)) - -(assert_return (invoke "eq" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "eq" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "eq" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "ne" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ne" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ne" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "lt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "lt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "lt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "le_s" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "le_u" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 1) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "le_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "le_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "gt_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "gt_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) - -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_s" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 0)) -(assert_return (invoke "ge_s" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 1)) - -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const 1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const -1)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 1) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0) (i64.const 0x8000000000000000)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const -1)) (i32.const 0)) -(assert_return (invoke "ge_u" (i64.const -1) (i64.const 0x8000000000000000)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x8000000000000000) (i64.const 0x7fffffffffffffff)) (i32.const 1)) -(assert_return (invoke "ge_u" (i64.const 0x7fffffffffffffff) (i64.const 0x8000000000000000)) (i32.const 0)) diff --git a/tests/samples/if.wast b/tests/samples/if.wast deleted file mode 100644 index 07a9ee2..0000000 --- a/tests/samples/if.wast +++ /dev/null @@ -1,449 +0,0 @@ -;; Test `if` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "empty") (param i32) - (if (get_local 0) (then)) - (if (get_local 0) (then) (else)) - (if $l (get_local 0) (then)) - (if $l (get_local 0) (then) (else)) - ) - - (func (export "singular") (param i32) (result i32) - (if (get_local 0) (then (nop))) - (if (get_local 0) (then (nop)) (else (nop))) - (if (result i32) (get_local 0) (then (i32.const 7)) (else (i32.const 8))) - ) - - (func (export "multi") (param i32) (result i32) - (if (get_local 0) (then (call $dummy) (call $dummy) (call $dummy))) - (if (get_local 0) (then) (else (call $dummy) (call $dummy) (call $dummy))) - (if (result i32) (get_local 0) - (then (call $dummy) (call $dummy) (i32.const 8)) - (else (call $dummy) (call $dummy) (i32.const 9)) - ) - ) - - (func (export "nested") (param i32 i32) (result i32) - (if (result i32) (get_local 0) - (then - (if (get_local 1) (then (call $dummy) (block) (nop))) - (if (get_local 1) (then) (else (call $dummy) (block) (nop))) - (if (result i32) (get_local 1) - (then (call $dummy) (i32.const 9)) - (else (call $dummy) (i32.const 10)) - ) - ) - (else - (if (get_local 1) (then (call $dummy) (block) (nop))) - (if (get_local 1) (then) (else (call $dummy) (block) (nop))) - (if (result i32) (get_local 1) - (then (call $dummy) (i32.const 10)) - (else (call $dummy) (i32.const 11)) - ) - ) - ) - ) - - (func (export "as-unary-operand") (param i32) (result i32) - (i32.ctz - (if (result i32) (get_local 0) - (then (call $dummy) (i32.const 13)) - (else (call $dummy) (i32.const -13)) - ) - ) - ) - (func (export "as-binary-operand") (param i32 i32) (result i32) - (i32.mul - (if (result i32) (get_local 0) - (then (call $dummy) (i32.const 3)) - (else (call $dummy) (i32.const -3)) - ) - (if (result i32) (get_local 1) - (then (call $dummy) (i32.const 4)) - (else (call $dummy) (i32.const -5)) - ) - ) - ) - (func (export "as-test-operand") (param i32) (result i32) - (i32.eqz - (if (result i32) (get_local 0) - (then (call $dummy) (i32.const 13)) - (else (call $dummy) (i32.const 0)) - ) - ) - ) - (func (export "as-compare-operand") (param i32 i32) (result i32) - (f32.gt - (if (result f32) (get_local 0) - (then (call $dummy) (f32.const 3)) - (else (call $dummy) (f32.const -3)) - ) - (if (result f32) (get_local 1) - (then (call $dummy) (f32.const 4)) - (else (call $dummy) (f32.const -4)) - ) - ) - ) - - (func (export "break-bare") (result i32) - (if (i32.const 1) (then (br 0) (unreachable))) - (if (i32.const 1) (then (br 0) (unreachable)) (else (unreachable))) - (if (i32.const 0) (then (unreachable)) (else (br 0) (unreachable))) - (if (i32.const 1) (then (br_if 0 (i32.const 1)) (unreachable))) - (if (i32.const 1) (then (br_if 0 (i32.const 1)) (unreachable)) (else (unreachable))) - (if (i32.const 0) (then (unreachable)) (else (br_if 0 (i32.const 1)) (unreachable))) - (if (i32.const 1) (then (br_table 0 (i32.const 0)) (unreachable))) - (if (i32.const 1) (then (br_table 0 (i32.const 0)) (unreachable)) (else (unreachable))) - (if (i32.const 0) (then (unreachable)) (else (br_table 0 (i32.const 0)) (unreachable))) - (i32.const 19) - ) - - (func (export "break-value") (param i32) (result i32) - (if (result i32) (get_local 0) - (then (br 0 (i32.const 18)) (i32.const 19)) - (else (br 0 (i32.const 21)) (i32.const 20)) - ) - ) - - (func (export "effects") (param i32) (result i32) - (local i32) - (if - (block (result i32) (set_local 1 (i32.const 1)) (get_local 0)) - (then - (set_local 1 (i32.mul (get_local 1) (i32.const 3))) - (set_local 1 (i32.sub (get_local 1) (i32.const 5))) - (set_local 1 (i32.mul (get_local 1) (i32.const 7))) - (br 0) - (set_local 1 (i32.mul (get_local 1) (i32.const 100))) - ) - (else - (set_local 1 (i32.mul (get_local 1) (i32.const 5))) - (set_local 1 (i32.sub (get_local 1) (i32.const 7))) - (set_local 1 (i32.mul (get_local 1) (i32.const 3))) - (br 0) - (set_local 1 (i32.mul (get_local 1) (i32.const 1000))) - ) - ) - (get_local 1) - ) -) - -(assert_return (invoke "empty" (i32.const 0))) -(assert_return (invoke "empty" (i32.const 1))) -(assert_return (invoke "empty" (i32.const 100))) -(assert_return (invoke "empty" (i32.const -2))) - -(assert_return (invoke "singular" (i32.const 0)) (i32.const 8)) -(assert_return (invoke "singular" (i32.const 1)) (i32.const 7)) -(assert_return (invoke "singular" (i32.const 10)) (i32.const 7)) -(assert_return (invoke "singular" (i32.const -10)) (i32.const 7)) - -(assert_return (invoke "multi" (i32.const 0)) (i32.const 9)) -(assert_return (invoke "multi" (i32.const 1)) (i32.const 8)) -(assert_return (invoke "multi" (i32.const 13)) (i32.const 8)) -(assert_return (invoke "multi" (i32.const -5)) (i32.const 8)) - -(assert_return (invoke "nested" (i32.const 0) (i32.const 0)) (i32.const 11)) -(assert_return (invoke "nested" (i32.const 1) (i32.const 0)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const 0) (i32.const 1)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const 3) (i32.const 2)) (i32.const 9)) -(assert_return (invoke "nested" (i32.const 0) (i32.const -100)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const 10) (i32.const 10)) (i32.const 9)) -(assert_return (invoke "nested" (i32.const 0) (i32.const -1)) (i32.const 10)) -(assert_return (invoke "nested" (i32.const -111) (i32.const -2)) (i32.const 9)) - -(assert_return (invoke "as-unary-operand" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "as-unary-operand" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "as-unary-operand" (i32.const -1)) (i32.const 0)) - -(assert_return (invoke "as-binary-operand" (i32.const 0) (i32.const 0)) (i32.const 15)) -(assert_return (invoke "as-binary-operand" (i32.const 0) (i32.const 1)) (i32.const -12)) -(assert_return (invoke "as-binary-operand" (i32.const 1) (i32.const 0)) (i32.const -15)) -(assert_return (invoke "as-binary-operand" (i32.const 1) (i32.const 1)) (i32.const 12)) - -(assert_return (invoke "as-test-operand" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-test-operand" (i32.const 1)) (i32.const 0)) - -(assert_return (invoke "as-compare-operand" (i32.const 0) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-compare-operand" (i32.const 0) (i32.const 1)) (i32.const 0)) -(assert_return (invoke "as-compare-operand" (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-compare-operand" (i32.const 1) (i32.const 1)) (i32.const 0)) - -(assert_return (invoke "break-bare") (i32.const 19)) -(assert_return (invoke "break-value" (i32.const 1)) (i32.const 18)) -(assert_return (invoke "break-value" (i32.const 0)) (i32.const 21)) - -(assert_return (invoke "effects" (i32.const 1)) (i32.const -14)) -(assert_return (invoke "effects" (i32.const 0)) (i32.const -6)) - -(assert_invalid - (module (func $type-empty-i32 (result i32) (if (i32.const 0) (then)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64) (if (i32.const 0) (then)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32) (if (i32.const 0) (then)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64) (if (i32.const 0) (then)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-empty-i32 (result i32) (if (i32.const 0) (then) (else)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-i64 (result i64) (if (i32.const 0) (then) (else)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f32 (result f32) (if (i32.const 0) (then) (else)))) - "type mismatch" -) -(assert_invalid - (module (func $type-empty-f64 (result f64) (if (i32.const 0) (then) (else)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-num-vs-void - (if (i32.const 1) (then (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-num-vs-void - (if (i32.const 1) (then (i32.const 1)) (else)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-value-num-vs-void - (if (i32.const 1) (then) (else (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-num-vs-void - (if (i32.const 1) (then (i32.const 1)) (else (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-empty-vs-num (result i32) - (if (result i32) (i32.const 1) (then) (else (i32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-empty-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 0)) (else)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-empty-vs-num (result i32) - (if (result i32) (i32.const 1) (then) (else)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-no-else-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (nop)) (else (i32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 0)) (else (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (nop)) (else (nop))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i64.const 1)) (else (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 1)) (else (i64.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i64.const 1)) (else (i64.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-both-different-value-num-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i64.const 1)) (else (f64.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-value-unreached-select (result i32) - (if (result i64) - (i32.const 0) - (then (select (unreachable) (unreachable) (unreachable))) - (else (i64.const 0)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-value-unreached-select (result i32) - (if (result i64) - (i32.const 1) - (then (i64.const 0)) - (else (select (unreachable) (unreachable) (unreachable))) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-value-unreached-select (result i32) - (if (result i64) - (i32.const 1) - (then (select (unreachable) (unreachable) (unreachable))) - (else (select (unreachable) (unreachable) (unreachable))) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-break-last-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (br 0)) (else (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-last-void-vs-num (result i32) - (if (result i32) (i32.const 1) (then (i32.const 1)) (else (br 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-break-empty-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (br 0) (i32.const 1)) - (else (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-empty-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (i32.const 1)) - (else (br 0) (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-then-break-void-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (br 0 (nop)) (i32.const 1)) - (else (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-void-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (i32.const 1)) - (else (br 0 (nop)) (i32.const 1)) - ) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-then-break-num-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (br 0 (i64.const 1)) (i32.const 1)) - (else (i32.const 1)) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-else-break-num-vs-num (result i32) - (if (result i32) (i32.const 1) - (then (i32.const 1)) - (else (br 0 (i64.const 1)) (i32.const 1)) - ) - )) - "type mismatch" -) - - -(assert_malformed - (module quote "(func if end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else $l end)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else $l end)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else $l end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if else $l1 end $l2)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else $a end $l)") - "mismatching label" -) -(assert_malformed - (module quote "(func if $a else $l end $l)") - "mismatching label" -) diff --git a/tests/samples/imports.wast b/tests/samples/imports.wast deleted file mode 100644 index 691550b..0000000 --- a/tests/samples/imports.wast +++ /dev/null @@ -1,591 +0,0 @@ -;; Auxiliary module to import from - -(module - (func (export "func")) - (func (export "func-i32") (param i32)) - (func (export "func-f32") (param f32)) - (func (export "func->i32") (result i32) (i32.const 22)) - (func (export "func->f32") (result f32) (f32.const 11)) - (func (export "func-i32->i32") (param i32) (result i32) (get_local 0)) - (func (export "func-i64->i64") (param i64) (result i64) (get_local 0)) - (global (export "global-i32") i32 (i32.const 55)) - (global (export "global-f32") f32 (f32.const 44)) - (table (export "table-10-inf") 10 anyfunc) - ;; (table (export "table-10-20") 10 20 anyfunc) - (memory (export "memory-2-inf") 2) - ;; (memory (export "memory-2-4") 2 4) -) - -(register "test") - - -;; Functions - -(module - (type $func_i32 (func (param i32))) - (type $func_i64 (func (param i64))) - (type $func_f32 (func (param f32))) - (type $func_f64 (func (param f64))) - - (import "spectest" "print_i32" (func (param i32))) - ;; JavaScript can't handle i64 yet. - ;; (func (import "spectest" "print_i64") (param i64)) - (import "spectest" "print_i32" (func $print_i32 (param i32))) - ;; JavaScript can't handle i64 yet. - ;; (import "spectest" "print_i64" (func $print_i64 (param i64))) - (import "spectest" "print_f32" (func $print_f32 (param f32))) - (import "spectest" "print_f64" (func $print_f64 (param f64))) - (import "spectest" "print_i32_f32" (func $print_i32_f32 (param i32 f32))) - (import "spectest" "print_f64_f64" (func $print_f64_f64 (param f64 f64))) - (func $print_i32-2 (import "spectest" "print_i32") (param i32)) - (func $print_f64-2 (import "spectest" "print_f64") (param f64)) - (import "test" "func-i64->i64" (func $i64->i64 (param i64) (result i64))) - - (func (export "p1") (import "spectest" "print_i32") (param i32)) - (func $p (export "p2") (import "spectest" "print_i32") (param i32)) - (func (export "p3") (export "p4") (import "spectest" "print_i32") (param i32)) - (func (export "p5") (import "spectest" "print_i32") (type 0)) - (func (export "p6") (import "spectest" "print_i32") (type 0) (param i32) (result)) - - (import "spectest" "print_i32" (func (type $forward))) - (func (import "spectest" "print_i32") (type $forward)) - (type $forward (func (param i32))) - - (table anyfunc (elem $print_i32 $print_f64)) - - (func (export "print32") (param $i i32) - (local $x f32) - (set_local $x (f32.convert_s/i32 (get_local $i))) - (call 0 (get_local $i)) - (call $print_i32_f32 - (i32.add (get_local $i) (i32.const 1)) - (f32.const 42) - ) - (call $print_i32 (get_local $i)) - (call $print_i32-2 (get_local $i)) - (call $print_f32 (get_local $x)) - (call_indirect (type $func_i32) (get_local $i) (i32.const 0)) - ) - - (func (export "print64") (param $i i64) - (local $x f64) - (set_local $x (f64.convert_s/i64 (call $i64->i64 (get_local $i)))) - ;; JavaScript can't handle i64 yet. - ;; (call 1 (get_local $i)) - (call $print_f64_f64 - (f64.add (get_local $x) (f64.const 1)) - (f64.const 53) - ) - ;; JavaScript can't handle i64 yet. - ;; (call $print_i64 (get_local $i)) - (call $print_f64 (get_local $x)) - (call $print_f64-2 (get_local $x)) - (call_indirect (type $func_f64) (get_local $x) (i32.const 1)) - ) -) - -(assert_return (invoke "print32" (i32.const 13))) -(assert_return (invoke "print64" (i64.const 24))) - -(assert_invalid - (module - (type (func (result i32))) - (import "test" "func" (func (type 1))) - ) - "unknown type" -) - -(module (import "test" "func" (func))) -(module (import "test" "func-i32" (func (param i32)))) -(module (import "test" "func-f32" (func (param f32)))) -(module (import "test" "func->i32" (func (result i32)))) -(module (import "test" "func->f32" (func (result f32)))) -(module (import "test" "func-i32->i32" (func (param i32) (result i32)))) -(module (import "test" "func-i64->i64" (func (param i64) (result i64)))) - -(assert_unlinkable - (module (import "test" "unknown" (func))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (func))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "func" (func (param i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func" (func (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func" (func (param i32) (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (param f32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (param i64)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32" (func (param i32) (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (param i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (result f32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (result i64)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func->i32" (func (param i32) (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32->i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32->i32" (func (param i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "func-i32->i32" (func (result i32)))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "test" "global-i32" (func (result i32)))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "global_i32" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (func))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (func))) - "incompatible import type" -) - - -;; Globals - -(module - (import "spectest" "global_i32" (global i32)) - (global (import "spectest" "global_i32") i32) - - (import "spectest" "global_i32" (global $x i32)) - (global $y (import "spectest" "global_i32") i32) - - ;; JavaScript can't handle i64 yet. - ;; (import "spectest" "global_i64" (global i64)) - (import "spectest" "global_f32" (global f32)) - (import "spectest" "global_f64" (global f64)) - - (func (export "get-0") (result i32) (get_global 0)) - (func (export "get-1") (result i32) (get_global 1)) - (func (export "get-x") (result i32) (get_global $x)) - (func (export "get-y") (result i32) (get_global $y)) -) - -(assert_return (invoke "get-0") (i32.const 666)) -(assert_return (invoke "get-1") (i32.const 666)) -(assert_return (invoke "get-x") (i32.const 666)) -(assert_return (invoke "get-y") (i32.const 666)) - -(module (import "test" "global-i32" (global i32))) -(module (import "test" "global-f32" (global f32))) - -(assert_unlinkable - (module (import "test" "unknown" (global i32))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (global i32))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "func" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "print_i32" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (global i32))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (global i32))) - "incompatible import type" -) - - -;; Tables - -(module - (type (func (result i32))) - (import "spectest" "table" (table 10 20 anyfunc)) - (elem 0 (i32.const 1) $f $g) - - (func (export "call") (param i32) (result i32) - (call_indirect (type 0) (get_local 0)) - ) - (func $f (result i32) (i32.const 11)) - (func $g (result i32) (i32.const 22)) -) - -(assert_trap (invoke "call" (i32.const 0)) "uninitialized element") -(assert_return (invoke "call" (i32.const 1)) (i32.const 11)) -(assert_return (invoke "call" (i32.const 2)) (i32.const 22)) -(assert_trap (invoke "call" (i32.const 3)) "uninitialized element") -(assert_trap (invoke "call" (i32.const 100)) "undefined element") - - -(module - (type (func (result i32))) - (table (import "spectest" "table") 10 20 anyfunc) - (elem 0 (i32.const 1) $f $g) - - (func (export "call") (param i32) (result i32) - (call_indirect (type 0) (get_local 0)) - ) - (func $f (result i32) (i32.const 11)) - (func $g (result i32) (i32.const 22)) -) - -(assert_trap (invoke "call" (i32.const 0)) "uninitialized element") -(assert_return (invoke "call" (i32.const 1)) (i32.const 11)) -(assert_return (invoke "call" (i32.const 2)) (i32.const 22)) -(assert_trap (invoke "call" (i32.const 3)) "uninitialized element") -(assert_trap (invoke "call" (i32.const 100)) "undefined element") - - -(assert_invalid - (module (import "" "" (table 10 anyfunc)) (import "" "" (table 10 anyfunc))) - "multiple tables" -) -(assert_invalid - (module (import "" "" (table 10 anyfunc)) (table 10 anyfunc)) - "multiple tables" -) -(assert_invalid - (module (table 10 anyfunc) (table 10 anyfunc)) - "multiple tables" -) - -(module (import "test" "table-10-inf" (table 10 anyfunc))) -(module (import "test" "table-10-inf" (table 5 anyfunc))) -(module (import "test" "table-10-inf" (table 0 anyfunc))) -(module (import "spectest" "table" (table 10 anyfunc))) -(module (import "spectest" "table" (table 5 anyfunc))) -(module (import "spectest" "table" (table 0 anyfunc))) -(module (import "spectest" "table" (table 10 20 anyfunc))) -(module (import "spectest" "table" (table 5 20 anyfunc))) -(module (import "spectest" "table" (table 0 20 anyfunc))) -(module (import "spectest" "table" (table 10 25 anyfunc))) -(module (import "spectest" "table" (table 5 25 anyfunc))) - -(assert_unlinkable - (module (import "test" "unknown" (table 10 anyfunc))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (table 10 anyfunc))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "table-10-inf" (table 12 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (table 10 20 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (table 12 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (table 10 15 anyfunc))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "test" "func" (table 10 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "global-i32" (table 10 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (table 10 anyfunc))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "print_i32" (table 10 anyfunc))) - "incompatible import type" -) - - - -;; Memories - -(module - (import "spectest" "memory" (memory 1 2)) - (data 0 (i32.const 10) "\10") - - (func (export "load") (param i32) (result i32) (i32.load (get_local 0))) -) - -(assert_return (invoke "load" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "load" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "load" (i32.const 8)) (i32.const 0x100000)) -(assert_trap (invoke "load" (i32.const 1000000)) "out of bounds memory access") - -(module - (memory (import "spectest" "memory") 1 2) - (data 0 (i32.const 10) "\10") - - (func (export "load") (param i32) (result i32) (i32.load (get_local 0))) -) -(assert_return (invoke "load" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "load" (i32.const 10)) (i32.const 16)) -(assert_return (invoke "load" (i32.const 8)) (i32.const 0x100000)) -(assert_trap (invoke "load" (i32.const 1000000)) "out of bounds memory access") - -(assert_invalid - (module (import "" "" (memory 1)) (import "" "" (memory 1))) - "multiple memories" -) -(assert_invalid - (module (import "" "" (memory 1)) (memory 0)) - "multiple memories" -) -(assert_invalid - (module (memory 0) (memory 0)) - "multiple memories" -) - -(module (import "test" "memory-2-inf" (memory 2))) -(module (import "test" "memory-2-inf" (memory 1))) -(module (import "test" "memory-2-inf" (memory 0))) -(module (import "spectest" "memory" (memory 1))) -(module (import "spectest" "memory" (memory 0))) -(module (import "spectest" "memory" (memory 1 2))) -(module (import "spectest" "memory" (memory 0 2))) -(module (import "spectest" "memory" (memory 1 3))) -(module (import "spectest" "memory" (memory 0 3))) - -(assert_unlinkable - (module (import "test" "unknown" (memory 1))) - "unknown import" -) -(assert_unlinkable - (module (import "spectest" "unknown" (memory 1))) - "unknown import" -) - -(assert_unlinkable - (module (import "test" "memory-2-inf" (memory 3))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "memory-2-inf" (memory 2 3))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (memory 2))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (memory 1 1))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "test" "func-i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "global-i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "test" "table-10-inf" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "print_i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "global_i32" (memory 1))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "table" (memory 1))) - "incompatible import type" -) - -(assert_unlinkable - (module (import "spectest" "memory" (memory 2))) - "incompatible import type" -) -(assert_unlinkable - (module (import "spectest" "memory" (memory 1 1))) - "incompatible import type" -) - -(module - (import "spectest" "memory" (memory 0 3)) ;; actual has max size 2 - (func (export "grow") (param i32) (result i32) (memory.grow (get_local 0))) -) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 2)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const -1)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 2)) - - -;; Syntax errors - -(assert_malformed - (module quote "(func) (import \"\" \"\" (func))") - "import after function" -) -(assert_malformed - (module quote "(func) (import \"\" \"\" (global i64))") - "import after function" -) -(assert_malformed - (module quote "(func) (import \"\" \"\" (table 0 anyfunc))") - "import after function" -) -(assert_malformed - (module quote "(func) (import \"\" \"\" (memory 0))") - "import after function" -) - -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (func))") - "import after global" -) -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (global f32))") - "import after global" -) -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (table 0 anyfunc))") - "import after global" -) -(assert_malformed - (module quote "(global i64 (i64.const 0)) (import \"\" \"\" (memory 0))") - "import after global" -) - -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (func))") - "import after table" -) -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (global i32))") - "import after table" -) -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (table 0 anyfunc))") - "import after table" -) -(assert_malformed - (module quote "(table 0 anyfunc) (import \"\" \"\" (memory 0))") - "import after table" -) - -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (func))") - "import after memory" -) -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (global i32))") - "import after memory" -) -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (table 1 3 anyfunc))") - "import after memory" -) -(assert_malformed - (module quote "(memory 0) (import \"\" \"\" (memory 1 2))") - "import after memory" -) - -;; This module is required to validate, regardless of whether it can be -;; linked. Overloading is not possible in wasm itself, but it is possible -;; in modules from which wasm can import. -(assert_unlinkable - (module - (import "not wasm" "overloaded" (func)) - (import "not wasm" "overloaded" (func (param i32))) - (import "not wasm" "overloaded" (func (param i32 i32))) - (import "not wasm" "overloaded" (func (param i64))) - (import "not wasm" "overloaded" (func (param f32))) - (import "not wasm" "overloaded" (func (param f64))) - (import "not wasm" "overloaded" (func (result i32))) - (import "not wasm" "overloaded" (func (result i64))) - (import "not wasm" "overloaded" (func (result f32))) - (import "not wasm" "overloaded" (func (result f64))) - (import "not wasm" "overloaded" (global i32)) - (import "not wasm" "overloaded" (global i64)) - (import "not wasm" "overloaded" (global f32)) - (import "not wasm" "overloaded" (global f64)) - (import "not wasm" "overloaded" (table 0 anyfunc)) - (import "not wasm" "overloaded" (memory 0)) - ) - "unknown import" -) diff --git a/tests/samples/inline-module.wast b/tests/samples/inline-module.wast deleted file mode 100644 index dc7ead7..0000000 --- a/tests/samples/inline-module.wast +++ /dev/null @@ -1 +0,0 @@ -(func) (memory 0) (func (export "f")) diff --git a/tests/samples/int_exprs.wast b/tests/samples/int_exprs.wast deleted file mode 100644 index 99396a8..0000000 --- a/tests/samples/int_exprs.wast +++ /dev/null @@ -1,350 +0,0 @@ -;; Test interesting integer "expressions". These tests contain code -;; patterns which tempt common value-changing optimizations. - -;; Test that x+1>n is not folded to x. - -(module - (func (export "i32.no_fold_shl_shr_s") (param $x i32) (result i32) - (i32.shr_s (i32.shl (get_local $x) (i32.const 1)) (i32.const 1))) - (func (export "i32.no_fold_shl_shr_u") (param $x i32) (result i32) - (i32.shr_u (i32.shl (get_local $x) (i32.const 1)) (i32.const 1))) - - (func (export "i64.no_fold_shl_shr_s") (param $x i64) (result i64) - (i64.shr_s (i64.shl (get_local $x) (i64.const 1)) (i64.const 1))) - (func (export "i64.no_fold_shl_shr_u") (param $x i64) (result i64) - (i64.shr_u (i64.shl (get_local $x) (i64.const 1)) (i64.const 1))) -) - -(assert_return (invoke "i32.no_fold_shl_shr_s" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "i32.no_fold_shl_shr_u" (i32.const 0x80000000)) (i32.const 0)) -(assert_return (invoke "i64.no_fold_shl_shr_s" (i64.const 0x8000000000000000)) (i64.const 0)) -(assert_return (invoke "i64.no_fold_shl_shr_u" (i64.const 0x8000000000000000)) (i64.const 0)) - -;; Test that x>>n<?,./ ") (result i32) (i32.const 6)) - - ;; Test that we can use names that have special meaning in JS. - (func (export "NaN") (result i32) (i32.const 7)) - (func (export "Infinity") (result i32) (i32.const 8)) - (func (export "if") (result i32) (i32.const 9)) - - ;; Test that we can use common libc names without conflict. - (func (export "malloc") (result i32) (i32.const 10)) - - ;; Test that we can use some libc hidden names without conflict. - (func (export "_malloc") (result i32) (i32.const 11)) - (func (export "__malloc") (result i32) (i32.const 12)) - - ;; Test that names are case-sensitive. - (func (export "a") (result i32) (i32.const 13)) - (func (export "A") (result i32) (i32.const 14)) - - ;; Test that UTF-8 BOM code points can appear in identifiers. - (func (export "") (result i32) (i32.const 15)) - - ;; Test that Unicode normalization is not applied. These function names - ;; contain different codepoints which normalize to the same thing under - ;; NFC or NFD. - (func (export "Å") (result i32) (i32.const 16)) - (func (export "Å") (result i32) (i32.const 17)) - (func (export "Å") (result i32) (i32.const 18)) - - ;; Test that Unicode compatibility normalization is not applied. These - ;; function names contain different codepoints which normalize to the - ;; same thing under NFKC or NFKD. - (func (export "ffi") (result i32) (i32.const 19)) - (func (export "ffi") (result i32) (i32.const 20)) - (func (export "ffi") (result i32) (i32.const 21)) - - ;; Test the C0 control codes. - (func (export "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f") (result i32) (i32.const 22)) - (func (export "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f") (result i32) (i32.const 23)) - ;; Test miscellaneous control codes. - (func (export " \7f") (result i32) (i32.const 24)) - ;; Test the C1 control codes. - (func (export "\c2\80\c2\81\c2\82\c2\83\c2\84\c2\85\c2\86\c2\87\c2\88\c2\89\c2\8a\c2\8b\c2\8c\c2\8d\c2\8e\c2\8f") (result i32) (i32.const 25)) - (func (export "\c2\90\c2\91\c2\92\c2\93\c2\94\c2\95\c2\96\c2\97\c2\98\c2\99\c2\9a\c2\9b\c2\9c\c2\9d\c2\9e\c2\9f") (result i32) (i32.const 26)) - ;; Test the Unicode Specials. - (func (export "\ef\bf\b0\ef\bf\b1\ef\bf\b2\ef\bf\b3\ef\bf\b4\ef\bf\b5\ef\bf\b6\ef\bf\b7") (result i32) (i32.const 27)) - (func (export "\ef\bf\b8\ef\bf\b9\ef\bf\ba\ef\bf\bb\ef\bf\bc\ef\bf\bd\ef\bf\be\ef\bf\bf") (result i32) (i32.const 28)) - - ;; Test that the control pictures are distinct from the control codes they - ;; depict. These correspond to the C0 and miscellaneous control code tests - ;; above. - (func (export "␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏") (result i32) (i32.const 29)) - (func (export "␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟") (result i32) (i32.const 30)) - (func (export "␠␡") (result i32) (i32.const 31)) - - ;; Test the Unicode Specials in non-escaped form (excluding U+FFFE and - ;; U+FFFF, so that generic tools don't detect this file as non-UTF-8). - (func (export "￰￱￲￳￴￵￶￷￸�") (result i32) (i32.const 32)) - - ;; Test a bare ZWJ code point. - (func (export "‍") (result i32) (i32.const 33)) - ;; Test a bare ZWNJ code point. - (func (export "‌") (result i32) (i32.const 34)) - - ;; Test various bare joiner code points. - (func (export "͏") (result i32) (i32.const 35)) - (func (export "⁠") (result i32) (i32.const 36)) - (func (export "⵿") (result i32) (i32.const 37)) - (func (export "𑁿") (result i32) (i32.const 38)) - (func (export "᠎") (result i32) (i32.const 39)) - - ;; Test various interesting code points: reverse BOM, zero-width space, - ;; no-break space, soft hyphen, word joiner, ogham space mark, - ;; right-to-left override, left-to-right override. - (func (export "￯​ ­⁠ ‮‭") (result i32) (i32.const 40)) - - ;; Test more interesting code points: left-to-right mark, right-to-left mark, - ;; non-breaking hyphen, line separator, paragraph separator, - ;; left-to-right embedding, right-to-left embedding, - ;; pop directional formatting, narrow no-break space, left-to-right isolate, - ;; right-to-left isolate, first strong isolate, pop directional isolate. - (func (export "‎‏‑

‪‫‬ ⁦⁧⁨⁩") (result i32) (i32.const 41)) - - ;; Test some deprecated code points: inhibit symmetric swapping, - ;; activate symmetric swapping, inhibit arabic form shaping, - ;; activate arabic form shaping, national digit shapes, nominal digit shapes. - (func (export "") (result i32) (i32.const 42)) - - ;; Test "invisible" operator code points. - (func (export "⁡⁢⁣⁤") (result i32) (i32.const 43)) - - ;; Test that code points outside the BMP are supported. - (func (export "𐀀󟿿􏿿") (result i32) (i32.const 44)) - - ;; Test that WebAssembly implementations cope in the presence of Zalgo. - (func (export "Z̴͇̫̥̪͓͈͔͎̗̞̺̯̱̞̙̱̜̖̠̏͆̆͛͌͘͞ḁ̶̰̳̭͙̲̱̹̝͎̼͗ͨ̎̄̆͗̿̀́͟͡l̶̷͉̩̹̫̝͖̙̲̼͇͚͍̮͎̥̞̈́͊͗ͦ̈́ͫ̇́̚ͅͅg̶͕͔͚̩̓̐̅ͮ̔̐̎̂̏̾͊̍͋͊ͧ́̆ͦ͞o̡͋̔͐ͪͩ͏̢̧̫̙̤̮͖͙͓̺̜̩̼̘̠́") (result i32) (i32.const 45)) - - ;; Test Hangul filler code points. - (func (export "ᅟᅠㅤᅠ") (result i32) (i32.const 46)) - - ;; Test variation selectors (which are also ID_Continue code points). - (func (export "︀") (result i32) (i32.const 47)) - (func (export "︄") (result i32) (i32.const 48)) - (func (export "󠄀") (result i32) (i32.const 49)) - (func (export "󠇯") (result i32) (i32.const 50)) - - ;; Test an uncombined combining code point. - (func (export "̈") (result i32) (i32.const 51)) - - ;; Test that numerous different present and historical representations of the - ;; "newline" concept are distinct. Tests largely inspired by: - ;; https://en.wikipedia.org/wiki/Newline#Representations - ;; https://en.wikipedia.org/wiki/Newline#Unicode and - ;; https://en.wikipedia.org/wiki/Newline#Reverse_and_partial_line_feeds - (func (export "\0a") (result i32) (i32.const 52)) - (func (export "␤") (result i32) (i32.const 53)) - (func (export "
") (result i32) (i32.const 54)) - (func (export "\0d") (result i32) (i32.const 55)) - (func (export "\0d\0a") (result i32) (i32.const 56)) - (func (export "\0a\0d") (result i32) (i32.const 57)) - (func (export "\1e") (result i32) (i32.const 58)) - (func (export "\0b") (result i32) (i32.const 59)) - (func (export "\0c") (result i32) (i32.const 60)) - (func (export "\c2\85") (result i32) (i32.const 61)) - (func (export "
") (result i32) (i32.const 62)) - (func (export "…") (result i32) (i32.const 63)) - (func (export "⏎") (result i32) (i32.const 64)) - (func (export "\c2\8b") (result i32) (i32.const 65)) - (func (export "\c2\8c") (result i32) (i32.const 66)) - (func (export "\c2\8d") (result i32) (i32.const 67)) - (func (export "↵") (result i32) (i32.const 68)) - (func (export "↩") (result i32) (i32.const 69)) - (func (export "⌤") (result i32) (i32.const 70)) - (func (export "⤶") (result i32) (i32.const 71)) - (func (export "↲") (result i32) (i32.const 72)) - (func (export "⮨") (result i32) (i32.const 73)) - (func (export "⮰") (result i32) (i32.const 74)) - - ;; Test that non-characters are not replaced by the replacement character. - (func (export "�") (result i32) (i32.const 75)) - (func (export "\ef\b7\90") (result i32) (i32.const 76)) - (func (export "\ef\b7\91") (result i32) (i32.const 77)) - (func (export "\ef\b7\92") (result i32) (i32.const 78)) - (func (export "\ef\b7\93") (result i32) (i32.const 79)) - (func (export "\ef\b7\94") (result i32) (i32.const 80)) - (func (export "\ef\b7\95") (result i32) (i32.const 81)) - (func (export "\ef\b7\96") (result i32) (i32.const 82)) - (func (export "\ef\b7\97") (result i32) (i32.const 83)) - (func (export "\ef\b7\98") (result i32) (i32.const 84)) - (func (export "\ef\b7\99") (result i32) (i32.const 85)) - (func (export "\ef\b7\9a") (result i32) (i32.const 86)) - (func (export "\ef\b7\9b") (result i32) (i32.const 87)) - (func (export "\ef\b7\9c") (result i32) (i32.const 88)) - (func (export "\ef\b7\9d") (result i32) (i32.const 89)) - (func (export "\ef\b7\9e") (result i32) (i32.const 90)) - (func (export "\ef\b7\9f") (result i32) (i32.const 91)) - (func (export "\ef\b7\a0") (result i32) (i32.const 92)) - (func (export "\ef\b7\a1") (result i32) (i32.const 93)) - (func (export "\ef\b7\a2") (result i32) (i32.const 94)) - (func (export "\ef\b7\a3") (result i32) (i32.const 95)) - (func (export "\ef\b7\a4") (result i32) (i32.const 96)) - (func (export "\ef\b7\a5") (result i32) (i32.const 97)) - (func (export "\ef\b7\a6") (result i32) (i32.const 98)) - (func (export "\ef\b7\a7") (result i32) (i32.const 99)) - (func (export "\ef\b7\a8") (result i32) (i32.const 100)) - (func (export "\ef\b7\a9") (result i32) (i32.const 101)) - (func (export "\ef\b7\aa") (result i32) (i32.const 102)) - (func (export "\ef\b7\ab") (result i32) (i32.const 103)) - (func (export "\ef\b7\ac") (result i32) (i32.const 104)) - (func (export "\ef\b7\ad") (result i32) (i32.const 105)) - (func (export "\ef\b7\ae") (result i32) (i32.const 106)) - (func (export "\ef\b7\af") (result i32) (i32.const 107)) - (func (export "\ef\bf\be") (result i32) (i32.const 108)) - (func (export "\ef\bf\bf") (result i32) (i32.const 109)) - (func (export "\f0\9f\bf\be") (result i32) (i32.const 110)) - (func (export "\f0\9f\bf\bf") (result i32) (i32.const 111)) - (func (export "\f0\af\bf\be") (result i32) (i32.const 112)) - (func (export "\f0\af\bf\bf") (result i32) (i32.const 113)) - (func (export "\f0\bf\bf\be") (result i32) (i32.const 114)) - (func (export "\f0\bf\bf\bf") (result i32) (i32.const 115)) - (func (export "\f1\8f\bf\be") (result i32) (i32.const 116)) - (func (export "\f1\8f\bf\bf") (result i32) (i32.const 117)) - (func (export "\f1\9f\bf\be") (result i32) (i32.const 118)) - (func (export "\f1\9f\bf\bf") (result i32) (i32.const 119)) - (func (export "\f1\af\bf\be") (result i32) (i32.const 120)) - (func (export "\f1\af\bf\bf") (result i32) (i32.const 121)) - (func (export "\f1\bf\bf\be") (result i32) (i32.const 122)) - (func (export "\f1\bf\bf\bf") (result i32) (i32.const 123)) - (func (export "\f2\8f\bf\be") (result i32) (i32.const 124)) - (func (export "\f2\8f\bf\bf") (result i32) (i32.const 125)) - (func (export "\f2\9f\bf\be") (result i32) (i32.const 126)) - (func (export "\f2\9f\bf\bf") (result i32) (i32.const 127)) - (func (export "\f2\af\bf\be") (result i32) (i32.const 128)) - (func (export "\f2\af\bf\bf") (result i32) (i32.const 129)) - (func (export "\f2\bf\bf\be") (result i32) (i32.const 130)) - (func (export "\f2\bf\bf\bf") (result i32) (i32.const 131)) - (func (export "\f3\8f\bf\be") (result i32) (i32.const 132)) - (func (export "\f3\8f\bf\bf") (result i32) (i32.const 133)) - (func (export "\f3\9f\bf\be") (result i32) (i32.const 134)) - (func (export "\f3\9f\bf\bf") (result i32) (i32.const 135)) - (func (export "\f3\af\bf\be") (result i32) (i32.const 136)) - (func (export "\f3\af\bf\bf") (result i32) (i32.const 137)) - (func (export "\f3\bf\bf\be") (result i32) (i32.const 138)) - (func (export "\f3\bf\bf\bf") (result i32) (i32.const 139)) - (func (export "\f4\8f\bf\be") (result i32) (i32.const 140)) - (func (export "\f4\8f\bf\bf") (result i32) (i32.const 141)) - - ;; Test an interrobang with combining diacritical marks above. - ;; https://xkcd.com/1209/ - (func (export "̈‽̈̉") (result i32) (i32.const 142)) - - ;; Test that RLM/LRM don't change the logical byte order. - (func (export "abc") (result i32) (i32.const 143)) - (func (export "‭abc") (result i32) (i32.const 144)) - (func (export "‮cba") (result i32) (i32.const 145)) - (func (export "‭abc‮") (result i32) (i32.const 146)) - (func (export "‮cba‭") (result i32) (i32.const 147)) - - ;; Test that Unicode font variations are preserved. - (func (export "𝑨") (result i32) (i32.const 148)) - (func (export "𝐴") (result i32) (i32.const 149)) - (func (export "𝘈") (result i32) (i32.const 150)) - (func (export "𝘼") (result i32) (i32.const 151)) - (func (export "𝐀") (result i32) (i32.const 152)) - (func (export "𝓐") (result i32) (i32.const 153)) - (func (export "𝕬") (result i32) (i32.const 154)) - (func (export "𝗔") (result i32) (i32.const 155)) - (func (export "𝒜") (result i32) (i32.const 156)) - (func (export "𝔄") (result i32) (i32.const 157)) - (func (export "𝔸") (result i32) (i32.const 158)) - (func (export "𝖠") (result i32) (i32.const 159)) - (func (export "𝙰") (result i32) (i32.const 160)) - (func (export "ᴀ") (result i32) (i32.const 161)) - - ;; Test that various additional letter variations are preserved. - ;; (U+0040, U+0061, U+0041, U+00C5, U+0041 U+030A, U+212B, and the font - ;; variations are covered above.) - (func (export "ᴬ") (result i32) (i32.const 162)) - (func (export "Ⓐ") (result i32) (i32.const 163)) - (func (export "A") (result i32) (i32.const 164)) - (func (export "🄐") (result i32) (i32.const 165)) - (func (export "🄰") (result i32) (i32.const 166)) - (func (export "󠁁") (result i32) (i32.const 167)) - (func (export "U+0041") (result i32) (i32.const 168)) - (func (export "A​") (result i32) (i32.const 169)) - (func (export "А") (result i32) (i32.const 170)) - (func (export "Ꙗ") (result i32) (i32.const 171)) - (func (export "ⷼ") (result i32) (i32.const 172)) - (func (export "ⷶ") (result i32) (i32.const 173)) - (func (export "Ɐ") (result i32) (i32.const 174)) - (func (export "🅐") (result i32) (i32.const 175)) - (func (export "🅰") (result i32) (i32.const 176)) - (func (export "Ⱝ") (result i32) (i32.const 177)) - (func (export "𐐂") (result i32) (i32.const 178)) - (func (export "𐐈") (result i32) (i32.const 179)) - (func (export "𐒰") (result i32) (i32.const 180)) - (func (export "À") (result i32) (i32.const 181)) - (func (export "Á") (result i32) (i32.const 182)) - (func (export "Â") (result i32) (i32.const 183)) - (func (export "Ã") (result i32) (i32.const 184)) - (func (export "Ä") (result i32) (i32.const 185)) - (func (export "Ā") (result i32) (i32.const 186)) - (func (export "Ă") (result i32) (i32.const 187)) - (func (export "Ą") (result i32) (i32.const 188)) - (func (export "Ǎ") (result i32) (i32.const 189)) - (func (export "Ǟ") (result i32) (i32.const 190)) - (func (export "Ǡ") (result i32) (i32.const 191)) - (func (export "Ǻ") (result i32) (i32.const 192)) - (func (export "Ȁ") (result i32) (i32.const 193)) - (func (export "Ȃ") (result i32) (i32.const 194)) - (func (export "Ȧ") (result i32) (i32.const 195)) - (func (export "Ⱥ") (result i32) (i32.const 196)) - (func (export "Ӑ") (result i32) (i32.const 197)) - (func (export "Ӓ") (result i32) (i32.const 198)) - (func (export "ߊ") (result i32) (i32.const 199)) - (func (export "ࠡ") (result i32) (i32.const 200)) - (func (export "ࠢ") (result i32) (i32.const 201)) - (func (export "ࠣ") (result i32) (i32.const 202)) - (func (export "ࠤ") (result i32) (i32.const 203)) - (func (export "ࠥ") (result i32) (i32.const 204)) - (func (export "ऄ") (result i32) (i32.const 205)) - (func (export "अ") (result i32) (i32.const 206)) - (func (export "ॲ") (result i32) (i32.const 207)) - (func (export "অ") (result i32) (i32.const 208)) - (func (export "ਅ") (result i32) (i32.const 209)) - (func (export "અ") (result i32) (i32.const 210)) - (func (export "ଅ") (result i32) (i32.const 211)) - (func (export "அ") (result i32) (i32.const 212)) - (func (export "అ") (result i32) (i32.const 213)) - (func (export "ಅ") (result i32) (i32.const 214)) - (func (export "അ") (result i32) (i32.const 215)) - (func (export "ะ") (result i32) (i32.const 216)) - (func (export "ະ") (result i32) (i32.const 217)) - (func (export "༁") (result i32) (i32.const 218)) - (func (export "ཨ") (result i32) (i32.const 219)) - (func (export "ྸ") (result i32) (i32.const 220)) - (func (export "အ") (result i32) (i32.const 221)) - (func (export "ဢ") (result i32) (i32.const 222)) - (func (export "ႜ") (result i32) (i32.const 223)) - (func (export "ᅡ") (result i32) (i32.const 224)) - (func (export "አ") (result i32) (i32.const 225)) - (func (export "ዐ") (result i32) (i32.const 226)) - (func (export "Ꭰ") (result i32) (i32.const 227)) - (func (export "ᐊ") (result i32) (i32.const 228)) - (func (export "ᖳ") (result i32) (i32.const 229)) - (func (export "ᚨ") (result i32) (i32.const 230)) - (func (export "ᚪ") (result i32) (i32.const 231)) - (func (export "ᛆ") (result i32) (i32.const 232)) - (func (export "ᜀ") (result i32) (i32.const 233)) - (func (export "ᜠ") (result i32) (i32.const 234)) - (func (export "ᝀ") (result i32) (i32.const 235)) - (func (export "ᝠ") (result i32) (i32.const 236)) - (func (export "ᠠ") (result i32) (i32.const 237)) - (func (export "ᢇ") (result i32) (i32.const 238)) - (func (export "ᤠ") (result i32) (i32.const 239)) - (func (export "ᥣ") (result i32) (i32.const 240)) - (func (export "ᨕ") (result i32) (i32.const 241)) - (func (export "ᩋ") (result i32) (i32.const 242)) - (func (export "ᩡ") (result i32) (i32.const 243)) - (func (export "ᮃ") (result i32) (i32.const 244)) - (func (export "ᯀ") (result i32) (i32.const 245)) - (func (export "ᯁ") (result i32) (i32.const 246)) - (func (export "ᰣ") (result i32) (i32.const 247)) - (func (export "Ḁ") (result i32) (i32.const 248)) - (func (export "Ạ") (result i32) (i32.const 249)) - (func (export "Ả") (result i32) (i32.const 250)) - (func (export "Ấ") (result i32) (i32.const 251)) - (func (export "Ầ") (result i32) (i32.const 252)) - (func (export "Ẩ") (result i32) (i32.const 253)) - (func (export "Ẫ") (result i32) (i32.const 254)) - (func (export "Ậ") (result i32) (i32.const 255)) - (func (export "Ắ") (result i32) (i32.const 256)) - (func (export "Ằ") (result i32) (i32.const 257)) - (func (export "Ẳ") (result i32) (i32.const 258)) - (func (export "Ẵ") (result i32) (i32.const 259)) - (func (export "Ặ") (result i32) (i32.const 260)) - (func (export "あ") (result i32) (i32.const 261)) - (func (export "ア") (result i32) (i32.const 262)) - (func (export "ㄚ") (result i32) (i32.const 263)) - (func (export "ㅏ") (result i32) (i32.const 264)) - (func (export "㈎") (result i32) (i32.const 265)) - (func (export "㈏") (result i32) (i32.const 266)) - (func (export "㈐") (result i32) (i32.const 267)) - (func (export "㈑") (result i32) (i32.const 268)) - (func (export "㈒") (result i32) (i32.const 269)) - (func (export "㈓") (result i32) (i32.const 270)) - (func (export "㈔") (result i32) (i32.const 271)) - (func (export "㈕") (result i32) (i32.const 272)) - (func (export "㈖") (result i32) (i32.const 273)) - (func (export "㈗") (result i32) (i32.const 274)) - (func (export "㈘") (result i32) (i32.const 275)) - (func (export "㈙") (result i32) (i32.const 276)) - (func (export "㈚") (result i32) (i32.const 277)) - (func (export "㈛") (result i32) (i32.const 278)) - (func (export "㉮") (result i32) (i32.const 279)) - (func (export "㉯") (result i32) (i32.const 280)) - (func (export "㉰") (result i32) (i32.const 281)) - (func (export "㉱") (result i32) (i32.const 282)) - (func (export "㉲") (result i32) (i32.const 283)) - (func (export "㉳") (result i32) (i32.const 284)) - (func (export "㉴") (result i32) (i32.const 285)) - (func (export "㉵") (result i32) (i32.const 286)) - (func (export "㉶") (result i32) (i32.const 287)) - (func (export "㉷") (result i32) (i32.const 288)) - (func (export "㉸") (result i32) (i32.const 289)) - (func (export "㉹") (result i32) (i32.const 290)) - (func (export "㉺") (result i32) (i32.const 291)) - (func (export "㉻") (result i32) (i32.const 292)) - (func (export "㋐") (result i32) (i32.const 293)) - (func (export "ꀊ") (result i32) (i32.const 294)) - (func (export "ꓮ") (result i32) (i32.const 295)) - (func (export "ꕉ") (result i32) (i32.const 296)) - (func (export "ꚠ") (result i32) (i32.const 297)) - (func (export "ꠀ") (result i32) (i32.const 298)) - (func (export "ꠣ") (result i32) (i32.const 299)) - (func (export "ꡝ") (result i32) (i32.const 300)) - (func (export "ꢂ") (result i32) (i32.const 301)) - (func (export "꣪") (result i32) (i32.const 302)) - (func (export "ꤢ") (result i32) (i32.const 303)) - (func (export "ꥆ") (result i32) (i32.const 304)) - (func (export "ꦄ") (result i32) (i32.const 305)) - (func (export "ꨀ") (result i32) (i32.const 306)) - (func (export "ア") (result i32) (i32.const 307)) - (func (export "ᅡ") (result i32) (i32.const 308)) - (func (export "𐀀") (result i32) (i32.const 309)) - (func (export "𐊀") (result i32) (i32.const 310)) - (func (export "𐊠") (result i32) (i32.const 311)) - (func (export "𐌀") (result i32) (i32.const 312)) - (func (export "𐎠") (result i32) (i32.const 313)) - (func (export "𐒖") (result i32) (i32.const 314)) - (func (export "𐔀") (result i32) (i32.const 315)) - (func (export "𐝀") (result i32) (i32.const 316)) - (func (export "𐠀") (result i32) (i32.const 317)) - (func (export "𐤠") (result i32) (i32.const 318)) - (func (export "𐦀") (result i32) (i32.const 319)) - (func (export "𐦠") (result i32) (i32.const 320)) - (func (export "𐨀") (result i32) (i32.const 321)) - (func (export "𐬀") (result i32) (i32.const 322)) - (func (export "𐰀") (result i32) (i32.const 323)) - (func (export "𐰁") (result i32) (i32.const 324)) - (func (export "𐲀") (result i32) (i32.const 325)) - (func (export "𑀅") (result i32) (i32.const 326)) - (func (export "𑂃") (result i32) (i32.const 327)) - (func (export "𑄧") (result i32) (i32.const 328)) - (func (export "𑅐") (result i32) (i32.const 329)) - (func (export "𑆃") (result i32) (i32.const 330)) - (func (export "𑈀") (result i32) (i32.const 331)) - (func (export "𑊀") (result i32) (i32.const 332)) - (func (export "𑊰") (result i32) (i32.const 333)) - (func (export "𑌅") (result i32) (i32.const 334)) - (func (export "𑍰") (result i32) (i32.const 335)) - (func (export "𑐀") (result i32) (i32.const 336)) - (func (export "𑒁") (result i32) (i32.const 337)) - (func (export "𑖀") (result i32) (i32.const 338)) - (func (export "𑘀") (result i32) (i32.const 339)) - (func (export "𑚀") (result i32) (i32.const 340)) - (func (export "𑜒") (result i32) (i32.const 341)) - (func (export "𑜠") (result i32) (i32.const 342)) - (func (export "𑢡") (result i32) (i32.const 343)) - (func (export "𑫕") (result i32) (i32.const 344)) - (func (export "𑰀") (result i32) (i32.const 345)) - (func (export "𑲏") (result i32) (i32.const 346)) - (func (export "𑲯") (result i32) (i32.const 347)) - (func (export "𒀀") (result i32) (i32.const 348)) - (func (export "𖧕") (result i32) (i32.const 349)) - (func (export "𖩆") (result i32) (i32.const 350)) - (func (export "𖫧") (result i32) (i32.const 351)) - (func (export "𖽔") (result i32) (i32.const 352)) - (func (export "𛱁") (result i32) (i32.const 353)) - (func (export "𛱤") (result i32) (i32.const 354)) - (func (export "𞠣") (result i32) (i32.const 355)) - (func (export "🇦") (result i32) (i32.const 356)) - (func (export "Ɑ") (result i32) (i32.const 357)) - (func (export "Λ") (result i32) (i32.const 358)) - (func (export "Ɒ") (result i32) (i32.const 359)) - (func (export "ª") (result i32) (i32.const 360)) - (func (export "∀") (result i32) (i32.const 361)) - (func (export "₳") (result i32) (i32.const 362)) - (func (export "𐤀") (result i32) (i32.const 363)) - (func (export "Ⲁ") (result i32) (i32.const 364)) - (func (export "𐌰") (result i32) (i32.const 365)) - (func (export "Ά") (result i32) (i32.const 366)) - (func (export "Α") (result i32) (i32.const 367)) - (func (export "Ἀ") (result i32) (i32.const 368)) - (func (export "Ἁ") (result i32) (i32.const 369)) - (func (export "Ἂ") (result i32) (i32.const 370)) - (func (export "Ἃ") (result i32) (i32.const 371)) - (func (export "Ἄ") (result i32) (i32.const 372)) - (func (export "Ἅ") (result i32) (i32.const 373)) - (func (export "Ἆ") (result i32) (i32.const 374)) - (func (export "Ἇ") (result i32) (i32.const 375)) - (func (export "ᾈ") (result i32) (i32.const 376)) - (func (export "ᾉ") (result i32) (i32.const 377)) - (func (export "ᾊ") (result i32) (i32.const 378)) - (func (export "ᾋ") (result i32) (i32.const 379)) - (func (export "ᾌ") (result i32) (i32.const 380)) - (func (export "ᾍ") (result i32) (i32.const 381)) - (func (export "ᾎ") (result i32) (i32.const 382)) - (func (export "ᾏ") (result i32) (i32.const 383)) - (func (export "Ᾰ") (result i32) (i32.const 384)) - (func (export "Ᾱ") (result i32) (i32.const 385)) - (func (export "Ὰ") (result i32) (i32.const 386)) - (func (export "Ά") (result i32) (i32.const 387)) - (func (export "ᾼ") (result i32) (i32.const 388)) - (func (export "𝚨") (result i32) (i32.const 389)) - (func (export "𝛢") (result i32) (i32.const 390)) - (func (export "𝜜") (result i32) (i32.const 391)) - (func (export "𝝖") (result i32) (i32.const 392)) - (func (export "𝞐") (result i32) (i32.const 393)) - (func (export "⍶") (result i32) (i32.const 394)) - (func (export "⍺") (result i32) (i32.const 395)) - (func (export "⩜") (result i32) (i32.const 396)) - (func (export "ᗅ") (result i32) (i32.const 397)) - (func (export "Ꭺ") (result i32) (i32.const 398)) - - ;; Test unmatched "closing" and "opening" code points. - (func (export ")˺˼𔗏𝅴𝅶𝅸𝅺⁾₎❩❫⟯﴿︶﹚)⦆󠀩❳❵⟧⟩⟫⟭⦈⦊⦖⸣⸥︘︸︺︼︾﹀﹂﹄﹈﹜﹞]}」󠁝󠁽»’”›❯") (result i32) (i32.const 399)) - (func (export "(˹˻𔗎𝅳𝅵𝅷𝅹⁽₍❨❪⟮﴾︵﹙(⦅󠀨❲❴⟦⟨⟪⟬⦇⦉⦕⸢⸤︗︷︹︻︽︿﹁﹃﹇﹛﹝[{「󠁛󠁻«‘“‹❮") (result i32) (i32.const 400)) - (func (export "𝪋𝪤") (result i32) (i32.const 401)) - (func (export "𝪋") (result i32) (i32.const 402)) - - ;; Test that Unicode fraction normalization is not applied. - (func (export "½") (result i32) (i32.const 403)) - (func (export "1⁄2") (result i32) (i32.const 404)) - (func (export "1/2") (result i32) (i32.const 405)) - (func (export "୳") (result i32) (i32.const 406)) - (func (export "൴") (result i32) (i32.const 407)) - (func (export "⳽") (result i32) (i32.const 408)) - (func (export "꠱") (result i32) (i32.const 409)) - (func (export "𐅁") (result i32) (i32.const 410)) - (func (export "𐅵") (result i32) (i32.const 411)) - (func (export "𐅶") (result i32) (i32.const 412)) - (func (export "𐦽") (result i32) (i32.const 413)) - (func (export "𐹻") (result i32) (i32.const 414)) - - ;; Test a full-width quote. - (func (export """) (result i32) (i32.const 415)) - - ;; Test that different present and historical representations of the "delete" - ;; concept are distinct. - (func (export "\7f") (result i32) (i32.const 416)) - (func (export "\08") (result i32) (i32.const 417)) - (func (export "⌫") (result i32) (i32.const 418)) - (func (export "⌦") (result i32) (i32.const 419)) - (func (export "␈") (result i32) (i32.const 420)) - (func (export "␡") (result i32) (i32.const 421)) - (func (export "᷻") (result i32) (i32.const 422)) - (func (export "\0f") (result i32) (i32.const 423)) - (func (export "←") (result i32) (i32.const 424)) - (func (export "⌧") (result i32) (i32.const 425)) - (func (export "⍒") (result i32) (i32.const 426)) - (func (export "⍔") (result i32) (i32.const 427)) - (func (export "⍢") (result i32) (i32.const 428)) - (func (export "⍫") (result i32) (i32.const 429)) - - ;; Test that different representations of the "substitute" concept are - ;; distinct. (U+FFFD is covered above.) - (func (export "\1a") (result i32) (i32.const 430)) - (func (export "␦") (result i32) (i32.const 431)) - (func (export "␚") (result i32) (i32.const 432)) - (func (export "") (result i32) (i32.const 433)) - (func (export "?") (result i32) (i32.const 434)) - (func (export "¿") (result i32) (i32.const 435)) - (func (export "᥅") (result i32) (i32.const 436)) - (func (export ";") (result i32) (i32.const 437)) - (func (export "՞") (result i32) (i32.const 438)) - (func (export "؟") (result i32) (i32.const 439)) - (func (export "፧") (result i32) (i32.const 440)) - (func (export "⁇") (result i32) (i32.const 441)) - (func (export "⍰") (result i32) (i32.const 442)) - (func (export "❓") (result i32) (i32.const 443)) - (func (export "❔") (result i32) (i32.const 444)) - (func (export "⳺") (result i32) (i32.const 445)) - (func (export "⳻") (result i32) (i32.const 446)) - (func (export "⸮") (result i32) (i32.const 447)) - (func (export "㉄") (result i32) (i32.const 448)) - (func (export "꘏") (result i32) (i32.const 449)) - (func (export "꛷") (result i32) (i32.const 450)) - (func (export "︖") (result i32) (i32.const 451)) - (func (export "﹖") (result i32) (i32.const 452)) - (func (export "?") (result i32) (i32.const 453)) - (func (export "𑅃") (result i32) (i32.const 454)) - (func (export "𞥟") (result i32) (i32.const 455)) - (func (export "󠀿") (result i32) (i32.const 456)) - (func (export "𖡄") (result i32) (i32.const 457)) - (func (export "⯑") (result i32) (i32.const 458)) - - ;; Test that different present and historical representations of the - ;; "paragraph" concept are distinct. (U+2029 is covered above). - (func (export "¶") (result i32) (i32.const 459)) - (func (export "⁋") (result i32) (i32.const 460)) - (func (export "܀") (result i32) (i32.const 461)) - (func (export "჻") (result i32) (i32.const 462)) - (func (export "፨") (result i32) (i32.const 463)) - (func (export "〷") (result i32) (i32.const 464)) - (func (export "❡") (result i32) (i32.const 465)) - (func (export "⸏") (result i32) (i32.const 466)) - (func (export "⸐") (result i32) (i32.const 467)) - (func (export "⸑") (result i32) (i32.const 468)) - (func (export "⸎") (result i32) (i32.const 469)) - (func (export "\14") (result i32) (i32.const 470)) ;; ¶ in CP437 - (func (export "☙") (result i32) (i32.const 471)) -) - -(assert_return (invoke "") (i32.const 0)) -(assert_return (invoke "0") (i32.const 1)) -(assert_return (invoke "-0") (i32.const 2)) -(assert_return (invoke "_") (i32.const 3)) -(assert_return (invoke "$") (i32.const 4)) -(assert_return (invoke "@") (i32.const 5)) -(assert_return (invoke "~!@#$%^&*()_+`-={}|[]\\:\";'<>?,./ ") (i32.const 6)) -(assert_return (invoke "NaN") (i32.const 7)) -(assert_return (invoke "Infinity") (i32.const 8)) -(assert_return (invoke "if") (i32.const 9)) -(assert_return (invoke "malloc") (i32.const 10)) -(assert_return (invoke "_malloc") (i32.const 11)) -(assert_return (invoke "__malloc") (i32.const 12)) -(assert_return (invoke "a") (i32.const 13)) -(assert_return (invoke "A") (i32.const 14)) -(assert_return (invoke "") (i32.const 15)) -(assert_return (invoke "Å") (i32.const 16)) -(assert_return (invoke "Å") (i32.const 17)) -(assert_return (invoke "Å") (i32.const 18)) -(assert_return (invoke "ffi") (i32.const 19)) -(assert_return (invoke "ffi") (i32.const 20)) -(assert_return (invoke "ffi") (i32.const 21)) -(assert_return (invoke "\00\01\02\03\04\05\06\07\08\09\0a\0b\0c\0d\0e\0f") (i32.const 22)) -(assert_return (invoke "\10\11\12\13\14\15\16\17\18\19\1a\1b\1c\1d\1e\1f") (i32.const 23)) -(assert_return (invoke " \7f") (i32.const 24)) -(assert_return (invoke "\c2\80\c2\81\c2\82\c2\83\c2\84\c2\85\c2\86\c2\87\c2\88\c2\89\c2\8a\c2\8b\c2\8c\c2\8d\c2\8e\c2\8f") (i32.const 25)) -(assert_return (invoke "\c2\90\c2\91\c2\92\c2\93\c2\94\c2\95\c2\96\c2\97\c2\98\c2\99\c2\9a\c2\9b\c2\9c\c2\9d\c2\9e\c2\9f") (i32.const 26)) -(assert_return (invoke "\ef\bf\b0\ef\bf\b1\ef\bf\b2\ef\bf\b3\ef\bf\b4\ef\bf\b5\ef\bf\b6\ef\bf\b7") (i32.const 27)) -(assert_return (invoke "\ef\bf\b8\ef\bf\b9\ef\bf\ba\ef\bf\bb\ef\bf\bc\ef\bf\bd\ef\bf\be\ef\bf\bf") (i32.const 28)) -(assert_return (invoke "␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏") (i32.const 29)) -(assert_return (invoke "␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟") (i32.const 30)) -(assert_return (invoke "␠␡") (i32.const 31)) -(assert_return (invoke "￰￱￲￳￴￵￶￷￸�") (i32.const 32)) -(assert_return (invoke "‍") (i32.const 33)) -(assert_return (invoke "‌") (i32.const 34)) -(assert_return (invoke "͏") (i32.const 35)) -(assert_return (invoke "⁠") (i32.const 36)) -(assert_return (invoke "⵿") (i32.const 37)) -(assert_return (invoke "𑁿") (i32.const 38)) -(assert_return (invoke "᠎") (i32.const 39)) -(assert_return (invoke "￯​ ­⁠ ‮‭") (i32.const 40)) -(assert_return (invoke "‎‏‑

‪‫‬ ⁦⁧⁨⁩") (i32.const 41)) -(assert_return (invoke "") (i32.const 42)) -(assert_return (invoke "⁡⁢⁣⁤") (i32.const 43)) -(assert_return (invoke "𐀀󟿿􏿿") (i32.const 44)) -(assert_return (invoke "Z̴͇̫̥̪͓͈͔͎̗̞̺̯̱̞̙̱̜̖̠̏͆̆͛͌͘͞ḁ̶̰̳̭͙̲̱̹̝͎̼͗ͨ̎̄̆͗̿̀́͟͡l̶̷͉̩̹̫̝͖̙̲̼͇͚͍̮͎̥̞̈́͊͗ͦ̈́ͫ̇́̚ͅͅg̶͕͔͚̩̓̐̅ͮ̔̐̎̂̏̾͊̍͋͊ͧ́̆ͦ͞o̡͋̔͐ͪͩ͏̢̧̫̙̤̮͖͙͓̺̜̩̼̘̠́") (i32.const 45)) -(assert_return (invoke "ᅟᅠㅤᅠ") (i32.const 46)) -(assert_return (invoke "︀") (i32.const 47)) -(assert_return (invoke "︄") (i32.const 48)) -(assert_return (invoke "󠄀") (i32.const 49)) -(assert_return (invoke "󠇯") (i32.const 50)) -(assert_return (invoke "̈") (i32.const 51)) -(assert_return (invoke "\0a") (i32.const 52)) -(assert_return (invoke "␤") (i32.const 53)) -(assert_return (invoke "
") (i32.const 54)) -(assert_return (invoke "\0d") (i32.const 55)) -(assert_return (invoke "\0d\0a") (i32.const 56)) -(assert_return (invoke "\0a\0d") (i32.const 57)) -(assert_return (invoke "\1e") (i32.const 58)) -(assert_return (invoke "\0b") (i32.const 59)) -(assert_return (invoke "\0c") (i32.const 60)) -(assert_return (invoke "\c2\85") (i32.const 61)) -(assert_return (invoke "
") (i32.const 62)) -(assert_return (invoke "…") (i32.const 63)) -(assert_return (invoke "⏎") (i32.const 64)) -(assert_return (invoke "\c2\8b") (i32.const 65)) -(assert_return (invoke "\c2\8c") (i32.const 66)) -(assert_return (invoke "\c2\8d") (i32.const 67)) -(assert_return (invoke "↵") (i32.const 68)) -(assert_return (invoke "↩") (i32.const 69)) -(assert_return (invoke "⌤") (i32.const 70)) -(assert_return (invoke "⤶") (i32.const 71)) -(assert_return (invoke "↲") (i32.const 72)) -(assert_return (invoke "⮨") (i32.const 73)) -(assert_return (invoke "⮰") (i32.const 74)) -(assert_return (invoke "�") (i32.const 75)) -(assert_return (invoke "\ef\b7\90") (i32.const 76)) -(assert_return (invoke "\ef\b7\91") (i32.const 77)) -(assert_return (invoke "\ef\b7\92") (i32.const 78)) -(assert_return (invoke "\ef\b7\93") (i32.const 79)) -(assert_return (invoke "\ef\b7\94") (i32.const 80)) -(assert_return (invoke "\ef\b7\95") (i32.const 81)) -(assert_return (invoke "\ef\b7\96") (i32.const 82)) -(assert_return (invoke "\ef\b7\97") (i32.const 83)) -(assert_return (invoke "\ef\b7\98") (i32.const 84)) -(assert_return (invoke "\ef\b7\99") (i32.const 85)) -(assert_return (invoke "\ef\b7\9a") (i32.const 86)) -(assert_return (invoke "\ef\b7\9b") (i32.const 87)) -(assert_return (invoke "\ef\b7\9c") (i32.const 88)) -(assert_return (invoke "\ef\b7\9d") (i32.const 89)) -(assert_return (invoke "\ef\b7\9e") (i32.const 90)) -(assert_return (invoke "\ef\b7\9f") (i32.const 91)) -(assert_return (invoke "\ef\b7\a0") (i32.const 92)) -(assert_return (invoke "\ef\b7\a1") (i32.const 93)) -(assert_return (invoke "\ef\b7\a2") (i32.const 94)) -(assert_return (invoke "\ef\b7\a3") (i32.const 95)) -(assert_return (invoke "\ef\b7\a4") (i32.const 96)) -(assert_return (invoke "\ef\b7\a5") (i32.const 97)) -(assert_return (invoke "\ef\b7\a6") (i32.const 98)) -(assert_return (invoke "\ef\b7\a7") (i32.const 99)) -(assert_return (invoke "\ef\b7\a8") (i32.const 100)) -(assert_return (invoke "\ef\b7\a9") (i32.const 101)) -(assert_return (invoke "\ef\b7\aa") (i32.const 102)) -(assert_return (invoke "\ef\b7\ab") (i32.const 103)) -(assert_return (invoke "\ef\b7\ac") (i32.const 104)) -(assert_return (invoke "\ef\b7\ad") (i32.const 105)) -(assert_return (invoke "\ef\b7\ae") (i32.const 106)) -(assert_return (invoke "\ef\b7\af") (i32.const 107)) -(assert_return (invoke "\ef\bf\be") (i32.const 108)) -(assert_return (invoke "\ef\bf\bf") (i32.const 109)) -(assert_return (invoke "\f0\9f\bf\be") (i32.const 110)) -(assert_return (invoke "\f0\9f\bf\bf") (i32.const 111)) -(assert_return (invoke "\f0\af\bf\be") (i32.const 112)) -(assert_return (invoke "\f0\af\bf\bf") (i32.const 113)) -(assert_return (invoke "\f0\bf\bf\be") (i32.const 114)) -(assert_return (invoke "\f0\bf\bf\bf") (i32.const 115)) -(assert_return (invoke "\f1\8f\bf\be") (i32.const 116)) -(assert_return (invoke "\f1\8f\bf\bf") (i32.const 117)) -(assert_return (invoke "\f1\9f\bf\be") (i32.const 118)) -(assert_return (invoke "\f1\9f\bf\bf") (i32.const 119)) -(assert_return (invoke "\f1\af\bf\be") (i32.const 120)) -(assert_return (invoke "\f1\af\bf\bf") (i32.const 121)) -(assert_return (invoke "\f1\bf\bf\be") (i32.const 122)) -(assert_return (invoke "\f1\bf\bf\bf") (i32.const 123)) -(assert_return (invoke "\f2\8f\bf\be") (i32.const 124)) -(assert_return (invoke "\f2\8f\bf\bf") (i32.const 125)) -(assert_return (invoke "\f2\9f\bf\be") (i32.const 126)) -(assert_return (invoke "\f2\9f\bf\bf") (i32.const 127)) -(assert_return (invoke "\f2\af\bf\be") (i32.const 128)) -(assert_return (invoke "\f2\af\bf\bf") (i32.const 129)) -(assert_return (invoke "\f2\bf\bf\be") (i32.const 130)) -(assert_return (invoke "\f2\bf\bf\bf") (i32.const 131)) -(assert_return (invoke "\f3\8f\bf\be") (i32.const 132)) -(assert_return (invoke "\f3\8f\bf\bf") (i32.const 133)) -(assert_return (invoke "\f3\9f\bf\be") (i32.const 134)) -(assert_return (invoke "\f3\9f\bf\bf") (i32.const 135)) -(assert_return (invoke "\f3\af\bf\be") (i32.const 136)) -(assert_return (invoke "\f3\af\bf\bf") (i32.const 137)) -(assert_return (invoke "\f3\bf\bf\be") (i32.const 138)) -(assert_return (invoke "\f3\bf\bf\bf") (i32.const 139)) -(assert_return (invoke "\f4\8f\bf\be") (i32.const 140)) -(assert_return (invoke "\f4\8f\bf\bf") (i32.const 141)) -(assert_return (invoke "̈‽̈̉") (i32.const 142)) -(assert_return (invoke "abc") (i32.const 143)) -(assert_return (invoke "‭abc") (i32.const 144)) -(assert_return (invoke "‮cba") (i32.const 145)) -(assert_return (invoke "‭abc‮") (i32.const 146)) -(assert_return (invoke "‮cba‭") (i32.const 147)) -(assert_return (invoke "𝑨") (i32.const 148)) -(assert_return (invoke "𝐴") (i32.const 149)) -(assert_return (invoke "𝘈") (i32.const 150)) -(assert_return (invoke "𝘼") (i32.const 151)) -(assert_return (invoke "𝐀") (i32.const 152)) -(assert_return (invoke "𝓐") (i32.const 153)) -(assert_return (invoke "𝕬") (i32.const 154)) -(assert_return (invoke "𝗔") (i32.const 155)) -(assert_return (invoke "𝒜") (i32.const 156)) -(assert_return (invoke "𝔄") (i32.const 157)) -(assert_return (invoke "𝔸") (i32.const 158)) -(assert_return (invoke "𝖠") (i32.const 159)) -(assert_return (invoke "𝙰") (i32.const 160)) -(assert_return (invoke "ᴀ") (i32.const 161)) -(assert_return (invoke "ᴬ") (i32.const 162)) -(assert_return (invoke "Ⓐ") (i32.const 163)) -(assert_return (invoke "A") (i32.const 164)) -(assert_return (invoke "🄐") (i32.const 165)) -(assert_return (invoke "🄰") (i32.const 166)) -(assert_return (invoke "󠁁") (i32.const 167)) -(assert_return (invoke "U+0041") (i32.const 168)) -(assert_return (invoke "A​") (i32.const 169)) -(assert_return (invoke "А") (i32.const 170)) -(assert_return (invoke "Ꙗ") (i32.const 171)) -(assert_return (invoke "ⷼ") (i32.const 172)) -(assert_return (invoke "ⷶ") (i32.const 173)) -(assert_return (invoke "Ɐ") (i32.const 174)) -(assert_return (invoke "🅐") (i32.const 175)) -(assert_return (invoke "🅰") (i32.const 176)) -(assert_return (invoke "Ⱝ") (i32.const 177)) -(assert_return (invoke "𐐂") (i32.const 178)) -(assert_return (invoke "𐐈") (i32.const 179)) -(assert_return (invoke "𐒰") (i32.const 180)) -(assert_return (invoke "À") (i32.const 181)) -(assert_return (invoke "Á") (i32.const 182)) -(assert_return (invoke "Â") (i32.const 183)) -(assert_return (invoke "Ã") (i32.const 184)) -(assert_return (invoke "Ä") (i32.const 185)) -(assert_return (invoke "Ā") (i32.const 186)) -(assert_return (invoke "Ă") (i32.const 187)) -(assert_return (invoke "Ą") (i32.const 188)) -(assert_return (invoke "Ǎ") (i32.const 189)) -(assert_return (invoke "Ǟ") (i32.const 190)) -(assert_return (invoke "Ǡ") (i32.const 191)) -(assert_return (invoke "Ǻ") (i32.const 192)) -(assert_return (invoke "Ȁ") (i32.const 193)) -(assert_return (invoke "Ȃ") (i32.const 194)) -(assert_return (invoke "Ȧ") (i32.const 195)) -(assert_return (invoke "Ⱥ") (i32.const 196)) -(assert_return (invoke "Ӑ") (i32.const 197)) -(assert_return (invoke "Ӓ") (i32.const 198)) -(assert_return (invoke "ߊ") (i32.const 199)) -(assert_return (invoke "ࠡ") (i32.const 200)) -(assert_return (invoke "ࠢ") (i32.const 201)) -(assert_return (invoke "ࠣ") (i32.const 202)) -(assert_return (invoke "ࠤ") (i32.const 203)) -(assert_return (invoke "ࠥ") (i32.const 204)) -(assert_return (invoke "ऄ") (i32.const 205)) -(assert_return (invoke "अ") (i32.const 206)) -(assert_return (invoke "ॲ") (i32.const 207)) -(assert_return (invoke "অ") (i32.const 208)) -(assert_return (invoke "ਅ") (i32.const 209)) -(assert_return (invoke "અ") (i32.const 210)) -(assert_return (invoke "ଅ") (i32.const 211)) -(assert_return (invoke "அ") (i32.const 212)) -(assert_return (invoke "అ") (i32.const 213)) -(assert_return (invoke "ಅ") (i32.const 214)) -(assert_return (invoke "അ") (i32.const 215)) -(assert_return (invoke "ะ") (i32.const 216)) -(assert_return (invoke "ະ") (i32.const 217)) -(assert_return (invoke "༁") (i32.const 218)) -(assert_return (invoke "ཨ") (i32.const 219)) -(assert_return (invoke "ྸ") (i32.const 220)) -(assert_return (invoke "အ") (i32.const 221)) -(assert_return (invoke "ဢ") (i32.const 222)) -(assert_return (invoke "ႜ") (i32.const 223)) -(assert_return (invoke "ᅡ") (i32.const 224)) -(assert_return (invoke "አ") (i32.const 225)) -(assert_return (invoke "ዐ") (i32.const 226)) -(assert_return (invoke "Ꭰ") (i32.const 227)) -(assert_return (invoke "ᐊ") (i32.const 228)) -(assert_return (invoke "ᖳ") (i32.const 229)) -(assert_return (invoke "ᚨ") (i32.const 230)) -(assert_return (invoke "ᚪ") (i32.const 231)) -(assert_return (invoke "ᛆ") (i32.const 232)) -(assert_return (invoke "ᜀ") (i32.const 233)) -(assert_return (invoke "ᜠ") (i32.const 234)) -(assert_return (invoke "ᝀ") (i32.const 235)) -(assert_return (invoke "ᝠ") (i32.const 236)) -(assert_return (invoke "ᠠ") (i32.const 237)) -(assert_return (invoke "ᢇ") (i32.const 238)) -(assert_return (invoke "ᤠ") (i32.const 239)) -(assert_return (invoke "ᥣ") (i32.const 240)) -(assert_return (invoke "ᨕ") (i32.const 241)) -(assert_return (invoke "ᩋ") (i32.const 242)) -(assert_return (invoke "ᩡ") (i32.const 243)) -(assert_return (invoke "ᮃ") (i32.const 244)) -(assert_return (invoke "ᯀ") (i32.const 245)) -(assert_return (invoke "ᯁ") (i32.const 246)) -(assert_return (invoke "ᰣ") (i32.const 247)) -(assert_return (invoke "Ḁ") (i32.const 248)) -(assert_return (invoke "Ạ") (i32.const 249)) -(assert_return (invoke "Ả") (i32.const 250)) -(assert_return (invoke "Ấ") (i32.const 251)) -(assert_return (invoke "Ầ") (i32.const 252)) -(assert_return (invoke "Ẩ") (i32.const 253)) -(assert_return (invoke "Ẫ") (i32.const 254)) -(assert_return (invoke "Ậ") (i32.const 255)) -(assert_return (invoke "Ắ") (i32.const 256)) -(assert_return (invoke "Ằ") (i32.const 257)) -(assert_return (invoke "Ẳ") (i32.const 258)) -(assert_return (invoke "Ẵ") (i32.const 259)) -(assert_return (invoke "Ặ") (i32.const 260)) -(assert_return (invoke "あ") (i32.const 261)) -(assert_return (invoke "ア") (i32.const 262)) -(assert_return (invoke "ㄚ") (i32.const 263)) -(assert_return (invoke "ㅏ") (i32.const 264)) -(assert_return (invoke "㈎") (i32.const 265)) -(assert_return (invoke "㈏") (i32.const 266)) -(assert_return (invoke "㈐") (i32.const 267)) -(assert_return (invoke "㈑") (i32.const 268)) -(assert_return (invoke "㈒") (i32.const 269)) -(assert_return (invoke "㈓") (i32.const 270)) -(assert_return (invoke "㈔") (i32.const 271)) -(assert_return (invoke "㈕") (i32.const 272)) -(assert_return (invoke "㈖") (i32.const 273)) -(assert_return (invoke "㈗") (i32.const 274)) -(assert_return (invoke "㈘") (i32.const 275)) -(assert_return (invoke "㈙") (i32.const 276)) -(assert_return (invoke "㈚") (i32.const 277)) -(assert_return (invoke "㈛") (i32.const 278)) -(assert_return (invoke "㉮") (i32.const 279)) -(assert_return (invoke "㉯") (i32.const 280)) -(assert_return (invoke "㉰") (i32.const 281)) -(assert_return (invoke "㉱") (i32.const 282)) -(assert_return (invoke "㉲") (i32.const 283)) -(assert_return (invoke "㉳") (i32.const 284)) -(assert_return (invoke "㉴") (i32.const 285)) -(assert_return (invoke "㉵") (i32.const 286)) -(assert_return (invoke "㉶") (i32.const 287)) -(assert_return (invoke "㉷") (i32.const 288)) -(assert_return (invoke "㉸") (i32.const 289)) -(assert_return (invoke "㉹") (i32.const 290)) -(assert_return (invoke "㉺") (i32.const 291)) -(assert_return (invoke "㉻") (i32.const 292)) -(assert_return (invoke "㋐") (i32.const 293)) -(assert_return (invoke "ꀊ") (i32.const 294)) -(assert_return (invoke "ꓮ") (i32.const 295)) -(assert_return (invoke "ꕉ") (i32.const 296)) -(assert_return (invoke "ꚠ") (i32.const 297)) -(assert_return (invoke "ꠀ") (i32.const 298)) -(assert_return (invoke "ꠣ") (i32.const 299)) -(assert_return (invoke "ꡝ") (i32.const 300)) -(assert_return (invoke "ꢂ") (i32.const 301)) -(assert_return (invoke "꣪") (i32.const 302)) -(assert_return (invoke "ꤢ") (i32.const 303)) -(assert_return (invoke "ꥆ") (i32.const 304)) -(assert_return (invoke "ꦄ") (i32.const 305)) -(assert_return (invoke "ꨀ") (i32.const 306)) -(assert_return (invoke "ア") (i32.const 307)) -(assert_return (invoke "ᅡ") (i32.const 308)) -(assert_return (invoke "𐀀") (i32.const 309)) -(assert_return (invoke "𐊀") (i32.const 310)) -(assert_return (invoke "𐊠") (i32.const 311)) -(assert_return (invoke "𐌀") (i32.const 312)) -(assert_return (invoke "𐎠") (i32.const 313)) -(assert_return (invoke "𐒖") (i32.const 314)) -(assert_return (invoke "𐔀") (i32.const 315)) -(assert_return (invoke "𐝀") (i32.const 316)) -(assert_return (invoke "𐠀") (i32.const 317)) -(assert_return (invoke "𐤠") (i32.const 318)) -(assert_return (invoke "𐦀") (i32.const 319)) -(assert_return (invoke "𐦠") (i32.const 320)) -(assert_return (invoke "𐨀") (i32.const 321)) -(assert_return (invoke "𐬀") (i32.const 322)) -(assert_return (invoke "𐰀") (i32.const 323)) -(assert_return (invoke "𐰁") (i32.const 324)) -(assert_return (invoke "𐲀") (i32.const 325)) -(assert_return (invoke "𑀅") (i32.const 326)) -(assert_return (invoke "𑂃") (i32.const 327)) -(assert_return (invoke "𑄧") (i32.const 328)) -(assert_return (invoke "𑅐") (i32.const 329)) -(assert_return (invoke "𑆃") (i32.const 330)) -(assert_return (invoke "𑈀") (i32.const 331)) -(assert_return (invoke "𑊀") (i32.const 332)) -(assert_return (invoke "𑊰") (i32.const 333)) -(assert_return (invoke "𑌅") (i32.const 334)) -(assert_return (invoke "𑍰") (i32.const 335)) -(assert_return (invoke "𑐀") (i32.const 336)) -(assert_return (invoke "𑒁") (i32.const 337)) -(assert_return (invoke "𑖀") (i32.const 338)) -(assert_return (invoke "𑘀") (i32.const 339)) -(assert_return (invoke "𑚀") (i32.const 340)) -(assert_return (invoke "𑜒") (i32.const 341)) -(assert_return (invoke "𑜠") (i32.const 342)) -(assert_return (invoke "𑢡") (i32.const 343)) -(assert_return (invoke "𑫕") (i32.const 344)) -(assert_return (invoke "𑰀") (i32.const 345)) -(assert_return (invoke "𑲏") (i32.const 346)) -(assert_return (invoke "𑲯") (i32.const 347)) -(assert_return (invoke "𒀀") (i32.const 348)) -(assert_return (invoke "𖧕") (i32.const 349)) -(assert_return (invoke "𖩆") (i32.const 350)) -(assert_return (invoke "𖫧") (i32.const 351)) -(assert_return (invoke "𖽔") (i32.const 352)) -(assert_return (invoke "𛱁") (i32.const 353)) -(assert_return (invoke "𛱤") (i32.const 354)) -(assert_return (invoke "𞠣") (i32.const 355)) -(assert_return (invoke "🇦") (i32.const 356)) -(assert_return (invoke "Ɑ") (i32.const 357)) -(assert_return (invoke "Λ") (i32.const 358)) -(assert_return (invoke "Ɒ") (i32.const 359)) -(assert_return (invoke "ª") (i32.const 360)) -(assert_return (invoke "∀") (i32.const 361)) -(assert_return (invoke "₳") (i32.const 362)) -(assert_return (invoke "𐤀") (i32.const 363)) -(assert_return (invoke "Ⲁ") (i32.const 364)) -(assert_return (invoke "𐌰") (i32.const 365)) -(assert_return (invoke "Ά") (i32.const 366)) -(assert_return (invoke "Α") (i32.const 367)) -(assert_return (invoke "Ἀ") (i32.const 368)) -(assert_return (invoke "Ἁ") (i32.const 369)) -(assert_return (invoke "Ἂ") (i32.const 370)) -(assert_return (invoke "Ἃ") (i32.const 371)) -(assert_return (invoke "Ἄ") (i32.const 372)) -(assert_return (invoke "Ἅ") (i32.const 373)) -(assert_return (invoke "Ἆ") (i32.const 374)) -(assert_return (invoke "Ἇ") (i32.const 375)) -(assert_return (invoke "ᾈ") (i32.const 376)) -(assert_return (invoke "ᾉ") (i32.const 377)) -(assert_return (invoke "ᾊ") (i32.const 378)) -(assert_return (invoke "ᾋ") (i32.const 379)) -(assert_return (invoke "ᾌ") (i32.const 380)) -(assert_return (invoke "ᾍ") (i32.const 381)) -(assert_return (invoke "ᾎ") (i32.const 382)) -(assert_return (invoke "ᾏ") (i32.const 383)) -(assert_return (invoke "Ᾰ") (i32.const 384)) -(assert_return (invoke "Ᾱ") (i32.const 385)) -(assert_return (invoke "Ὰ") (i32.const 386)) -(assert_return (invoke "Ά") (i32.const 387)) -(assert_return (invoke "ᾼ") (i32.const 388)) -(assert_return (invoke "𝚨") (i32.const 389)) -(assert_return (invoke "𝛢") (i32.const 390)) -(assert_return (invoke "𝜜") (i32.const 391)) -(assert_return (invoke "𝝖") (i32.const 392)) -(assert_return (invoke "𝞐") (i32.const 393)) -(assert_return (invoke "⍶") (i32.const 394)) -(assert_return (invoke "⍺") (i32.const 395)) -(assert_return (invoke "⩜") (i32.const 396)) -(assert_return (invoke "ᗅ") (i32.const 397)) -(assert_return (invoke "Ꭺ") (i32.const 398)) -(assert_return (invoke ")˺˼𔗏𝅴𝅶𝅸𝅺⁾₎❩❫⟯﴿︶﹚)⦆󠀩❳❵⟧⟩⟫⟭⦈⦊⦖⸣⸥︘︸︺︼︾﹀﹂﹄﹈﹜﹞]}」󠁝󠁽»’”›❯") (i32.const 399)) -(assert_return (invoke "(˹˻𔗎𝅳𝅵𝅷𝅹⁽₍❨❪⟮﴾︵﹙(⦅󠀨❲❴⟦⟨⟪⟬⦇⦉⦕⸢⸤︗︷︹︻︽︿﹁﹃﹇﹛﹝[{「󠁛󠁻«‘“‹❮") (i32.const 400)) -(assert_return (invoke "𝪋𝪤") (i32.const 401)) -(assert_return (invoke "𝪋") (i32.const 402)) -(assert_return (invoke "½") (i32.const 403)) -(assert_return (invoke "1⁄2") (i32.const 404)) -(assert_return (invoke "1/2") (i32.const 405)) -(assert_return (invoke "୳") (i32.const 406)) -(assert_return (invoke "൴") (i32.const 407)) -(assert_return (invoke "⳽") (i32.const 408)) -(assert_return (invoke "꠱") (i32.const 409)) -(assert_return (invoke "𐅁") (i32.const 410)) -(assert_return (invoke "𐅵") (i32.const 411)) -(assert_return (invoke "𐅶") (i32.const 412)) -(assert_return (invoke "𐦽") (i32.const 413)) -(assert_return (invoke "𐹻") (i32.const 414)) -(assert_return (invoke """) (i32.const 415)) -(assert_return (invoke "\7f") (i32.const 416)) -(assert_return (invoke "\08") (i32.const 417)) -(assert_return (invoke "⌫") (i32.const 418)) -(assert_return (invoke "⌦") (i32.const 419)) -(assert_return (invoke "␈") (i32.const 420)) -(assert_return (invoke "␡") (i32.const 421)) -(assert_return (invoke "᷻") (i32.const 422)) -(assert_return (invoke "\0f") (i32.const 423)) -(assert_return (invoke "←") (i32.const 424)) -(assert_return (invoke "⌧") (i32.const 425)) -(assert_return (invoke "⍒") (i32.const 426)) -(assert_return (invoke "⍔") (i32.const 427)) -(assert_return (invoke "⍢") (i32.const 428)) -(assert_return (invoke "⍫") (i32.const 429)) -(assert_return (invoke "\1a") (i32.const 430)) -(assert_return (invoke "␦") (i32.const 431)) -(assert_return (invoke "␚") (i32.const 432)) -(assert_return (invoke "") (i32.const 433)) -(assert_return (invoke "?") (i32.const 434)) -(assert_return (invoke "¿") (i32.const 435)) -(assert_return (invoke "᥅") (i32.const 436)) -(assert_return (invoke ";") (i32.const 437)) -(assert_return (invoke "՞") (i32.const 438)) -(assert_return (invoke "؟") (i32.const 439)) -(assert_return (invoke "፧") (i32.const 440)) -(assert_return (invoke "⁇") (i32.const 441)) -(assert_return (invoke "⍰") (i32.const 442)) -(assert_return (invoke "❓") (i32.const 443)) -(assert_return (invoke "❔") (i32.const 444)) -(assert_return (invoke "⳺") (i32.const 445)) -(assert_return (invoke "⳻") (i32.const 446)) -(assert_return (invoke "⸮") (i32.const 447)) -(assert_return (invoke "㉄") (i32.const 448)) -(assert_return (invoke "꘏") (i32.const 449)) -(assert_return (invoke "꛷") (i32.const 450)) -(assert_return (invoke "︖") (i32.const 451)) -(assert_return (invoke "﹖") (i32.const 452)) -(assert_return (invoke "?") (i32.const 453)) -(assert_return (invoke "𑅃") (i32.const 454)) -(assert_return (invoke "𞥟") (i32.const 455)) -(assert_return (invoke "󠀿") (i32.const 456)) -(assert_return (invoke "𖡄") (i32.const 457)) -(assert_return (invoke "⯑") (i32.const 458)) -(assert_return (invoke "¶") (i32.const 459)) -(assert_return (invoke "⁋") (i32.const 460)) -(assert_return (invoke "܀") (i32.const 461)) -(assert_return (invoke "჻") (i32.const 462)) -(assert_return (invoke "፨") (i32.const 463)) -(assert_return (invoke "〷") (i32.const 464)) -(assert_return (invoke "❡") (i32.const 465)) -(assert_return (invoke "⸏") (i32.const 466)) -(assert_return (invoke "⸐") (i32.const 467)) -(assert_return (invoke "⸑") (i32.const 468)) -(assert_return (invoke "⸎") (i32.const 469)) -(assert_return (invoke "\14") (i32.const 470)) -(assert_return (invoke "☙") (i32.const 471)) - -(module - ;; Test that we can use indices instead of names to reference imports, - ;; exports, functions and parameters. - (import "spectest" "print_i32" (func (param i32))) - (func (import "spectest" "print_i32") (param i32)) - (func (param i32) (param i32) - (call 0 (get_local 0)) - (call 1 (get_local 1)) - ) - (export "print32" (func 2)) -) - -(assert_return (invoke "print32" (i32.const 42) (i32.const 123))) diff --git a/tests/samples/nop.wast b/tests/samples/nop.wast deleted file mode 100644 index 02b4028..0000000 --- a/tests/samples/nop.wast +++ /dev/null @@ -1,264 +0,0 @@ -;; Test `nop` operator. - -(module - ;; Auxiliary definitions - (func $dummy) - (func $3-ary (param i32 i32 i32) (result i32) - get_local 0 get_local 1 get_local 2 i32.sub i32.add - ) - (memory 1) - - (func (export "as-func-first") (result i32) - (nop) (i32.const 1) - ) - (func (export "as-func-mid") (result i32) - (call $dummy) (nop) (i32.const 2) - ) - (func (export "as-func-last") (result i32) - (call $dummy) (i32.const 3) (nop) - ) - (func (export "as-func-everywhere") (result i32) - (nop) (nop) (call $dummy) (nop) (i32.const 4) (nop) (nop) - ) - - (func (export "as-drop-last") (param i32) - (get_local 0) (nop) (drop) - ) - (func (export "as-drop-everywhere") (param i32) - (nop) (nop) (get_local 0) (nop) (nop) (drop) - ) - - (func (export "as-select-mid1") (param i32) (result i32) - (get_local 0) (nop) (get_local 0) (get_local 0) (select) - ) - (func (export "as-select-mid2") (param i32) (result i32) - (get_local 0) (get_local 0) (nop) (get_local 0) (select) - ) - (func (export "as-select-last") (param i32) (result i32) - (get_local 0) (get_local 0) (get_local 0) (nop) (select) - ) - (func (export "as-select-everywhere") (param i32) (result i32) - (nop) (get_local 0) (nop) (nop) (get_local 0) - (nop) (nop) (get_local 0) (nop) (nop) (select) - ) - - (func (export "as-block-first") (result i32) - (block (result i32) (nop) (i32.const 2)) - ) - (func (export "as-block-mid") (result i32) - (block (result i32) (call $dummy) (nop) (i32.const 2)) - ) - (func (export "as-block-last") (result i32) - (block (result i32) (nop) (call $dummy) (i32.const 3) (nop)) - ) - (func (export "as-block-everywhere") (result i32) - (block (result i32) - (nop) (nop) (call $dummy) (nop) (i32.const 4) (nop) (nop) - ) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (nop) (i32.const 2)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) (call $dummy) (nop) (i32.const 2)) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) (call $dummy) (i32.const 3) (nop)) - ) - (func (export "as-loop-everywhere") (result i32) - (loop (result i32) - (nop) (nop) (call $dummy) (nop) (i32.const 4) (nop) (nop) - ) - ) - - (func (export "as-if-condition") (param i32) - (get_local 0) (nop) (if (then (call $dummy))) - ) - (func (export "as-if-then") (param i32) - (if (get_local 0) (then (nop)) (else (call $dummy))) - ) - (func (export "as-if-else") (param i32) - (if (get_local 0) (then (call $dummy)) (else (nop))) - ) - - (func (export "as-br-last") (param i32) (result i32) - (block (result i32) (get_local 0) (nop) (br 0)) - ) - (func (export "as-br-everywhere") (param i32) (result i32) - (block (result i32) (nop) (nop) (get_local 0) (nop) (nop) (br 0)) - ) - - (func (export "as-br_if-mid") (param i32) (result i32) - (block (result i32) (get_local 0) (nop) (get_local 0) (br_if 0)) - ) - (func (export "as-br_if-last") (param i32) (result i32) - (block (result i32) (get_local 0) (get_local 0) (nop) (br_if 0)) - ) - (func (export "as-br_if-everywhere") (param i32) (result i32) - (block (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) - (br_if 0) - ) - ) - - (func (export "as-br_table-mid") (param i32) (result i32) - (block (result i32) (get_local 0) (nop) (get_local 0) (br_table 0 0)) - ) - (func (export "as-br_table-last") (param i32) (result i32) - (block (result i32) (get_local 0) (get_local 0) (nop) (br_table 0 0)) - ) - (func (export "as-br_table-everywhere") (param i32) (result i32) - (block (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) - (br_table 0 0) - ) - ) - - (func (export "as-return-last") (param i32) (result i32) - (get_local 0) (nop) (return) - ) - (func (export "as-return-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (return) - ) - - (func (export "as-call-mid1") (param i32 i32 i32) (result i32) - (get_local 0) (nop) (get_local 1) (get_local 2) (call $3-ary) - ) - (func (export "as-call-mid2") (param i32 i32 i32) (result i32) - (get_local 0) (get_local 1) (nop) (get_local 2) (call $3-ary) - ) - (func (export "as-call-last") (param i32 i32 i32) (result i32) - (get_local 0) (get_local 1) (get_local 2) (nop) (call $3-ary) - ) - (func (export "as-call-everywhere") (param i32 i32 i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (get_local 1) - (nop) (nop) (get_local 2) (nop) (nop) (call $3-ary) - ) - - ;; TODO(stack): call_indirect, *_local, load*, store* - - (func (export "as-unary-last") (param i32) (result i32) - (get_local 0) (nop) (i32.ctz) - ) - (func (export "as-unary-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (i32.ctz) - ) - - (func (export "as-binary-mid") (param i32) (result i32) - (get_local 0) (nop) (get_local 0) (i32.add) - ) - (func (export "as-binary-last") (param i32) (result i32) - (get_local 0) (get_local 0) (nop) (i32.add) - ) - (func (export "as-binary-everywhere") (param i32) (result i32) - (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) (i32.add) - ) - - (func (export "as-test-last") (param i32) (result i32) - (get_local 0) (nop) (i32.eqz) - ) - (func (export "as-test-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) i32.eqz - ) - - (func (export "as-compare-mid") (param i32) (result i32) - (get_local 0) (nop) (get_local 0) (i32.ne) - ) - (func (export "as-compare-last") (param i32) (result i32) - (get_local 0) (get_local 0) (nop) (i32.lt_u) - ) - (func (export "as-compare-everywhere") (param i32) (result i32) - (nop) (get_local 0) (nop) (nop) (get_local 0) (nop) (nop) (i32.le_s) - ) - - (func (export "as-memory.grow-last") (param i32) (result i32) - (get_local 0) (nop) (memory.grow) - ) - (func (export "as-memory.grow-everywhere") (param i32) (result i32) - (nop) (nop) (get_local 0) (nop) (nop) (memory.grow) - ) -) - -(assert_return (invoke "as-func-first") (i32.const 1)) -(assert_return (invoke "as-func-mid") (i32.const 2)) -(assert_return (invoke "as-func-last") (i32.const 3)) -(assert_return (invoke "as-func-everywhere") (i32.const 4)) - -(assert_return (invoke "as-drop-last" (i32.const 0))) -(assert_return (invoke "as-drop-everywhere" (i32.const 0))) - -(assert_return (invoke "as-select-mid1" (i32.const 3)) (i32.const 3)) -(assert_return (invoke "as-select-mid2" (i32.const 3)) (i32.const 3)) -(assert_return (invoke "as-select-last" (i32.const 3)) (i32.const 3)) -(assert_return (invoke "as-select-everywhere" (i32.const 3)) (i32.const 3)) - -(assert_return (invoke "as-block-first") (i32.const 2)) -(assert_return (invoke "as-block-mid") (i32.const 2)) -(assert_return (invoke "as-block-last") (i32.const 3)) -(assert_return (invoke "as-block-everywhere") (i32.const 4)) - -(assert_return (invoke "as-loop-first") (i32.const 2)) -(assert_return (invoke "as-loop-mid") (i32.const 2)) -(assert_return (invoke "as-loop-last") (i32.const 3)) -(assert_return (invoke "as-loop-everywhere") (i32.const 4)) - -(assert_return (invoke "as-if-condition" (i32.const 0))) -(assert_return (invoke "as-if-condition" (i32.const -1))) -(assert_return (invoke "as-if-then" (i32.const 0))) -(assert_return (invoke "as-if-then" (i32.const 4))) -(assert_return (invoke "as-if-else" (i32.const 0))) -(assert_return (invoke "as-if-else" (i32.const 3))) - -(assert_return (invoke "as-br-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-br-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-br_if-mid" (i32.const 5)) (i32.const 5)) -(assert_return (invoke "as-br_if-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-br_if-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-br_table-mid" (i32.const 5)) (i32.const 5)) -(assert_return (invoke "as-br_table-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-br_table-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-return-last" (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-return-everywhere" (i32.const 7)) (i32.const 7)) - -(assert_return (invoke "as-call-mid1" (i32.const 3) (i32.const 1) (i32.const 2)) (i32.const 2)) -(assert_return (invoke "as-call-mid2" (i32.const 0) (i32.const 3) (i32.const 1)) (i32.const 2)) -(assert_return (invoke "as-call-last" (i32.const 10) (i32.const 9) (i32.const -1)) (i32.const 20)) -(assert_return (invoke "as-call-everywhere" (i32.const 2) (i32.const 1) (i32.const 5)) (i32.const -2)) - -(assert_return (invoke "as-unary-last" (i32.const 30)) (i32.const 1)) -(assert_return (invoke "as-unary-everywhere" (i32.const 12)) (i32.const 2)) - -(assert_return (invoke "as-binary-mid" (i32.const 3)) (i32.const 6)) -(assert_return (invoke "as-binary-last" (i32.const 3)) (i32.const 6)) -(assert_return (invoke "as-binary-everywhere" (i32.const 3)) (i32.const 6)) - -(assert_return (invoke "as-test-last" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "as-test-everywhere" (i32.const 0)) (i32.const 1)) - -(assert_return (invoke "as-compare-mid" (i32.const 3)) (i32.const 0)) -(assert_return (invoke "as-compare-last" (i32.const 3)) (i32.const 0)) -(assert_return (invoke "as-compare-everywhere" (i32.const 3)) (i32.const 1)) - -(assert_return (invoke "as-memory.grow-last" (i32.const 2)) (i32.const 1)) -(assert_return (invoke "as-memory.grow-everywhere" (i32.const 12)) (i32.const 3)) - -(assert_invalid - (module (func $type-i32 (result i32) (nop))) - "type mismatch" -) -(assert_invalid - (module (func $type-i64 (result i64) (nop))) - "type mismatch" -) -(assert_invalid - (module (func $type-f32 (result f32) (nop))) - "type mismatch" -) -(assert_invalid - (module (func $type-f64 (result f64) (nop))) - "type mismatch" -) diff --git a/tests/samples/resizing.wast b/tests/samples/resizing.wast deleted file mode 100644 index 183332e..0000000 --- a/tests/samples/resizing.wast +++ /dev/null @@ -1,60 +0,0 @@ -(module - (memory 0) - - (func (export "load_at_zero") (result i32) (i32.load (i32.const 0))) - (func (export "store_at_zero") (i32.store (i32.const 0) (i32.const 2))) - - (func (export "load_at_page_size") (result i32) (i32.load (i32.const 0x10000))) - (func (export "store_at_page_size") (i32.store (i32.const 0x10000) (i32.const 3))) - - (func (export "grow") (param $sz i32) (result i32) (memory.grow (get_local $sz))) - (func (export "size") (result i32) (memory.size)) -) - -(assert_return (invoke "size") (i32.const 0)) -(assert_trap (invoke "store_at_zero") "out of bounds memory access") -(assert_trap (invoke "load_at_zero") "out of bounds memory access") -(assert_trap (invoke "store_at_page_size") "out of bounds memory access") -(assert_trap (invoke "load_at_page_size") "out of bounds memory access") -(assert_return (invoke "grow" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "size") (i32.const 1)) -(assert_return (invoke "load_at_zero") (i32.const 0)) -(assert_return (invoke "store_at_zero")) -(assert_return (invoke "load_at_zero") (i32.const 2)) -(assert_trap (invoke "store_at_page_size") "out of bounds memory access") -(assert_trap (invoke "load_at_page_size") "out of bounds memory access") -(assert_return (invoke "grow" (i32.const 4)) (i32.const 1)) -(assert_return (invoke "size") (i32.const 5)) -(assert_return (invoke "load_at_zero") (i32.const 2)) -(assert_return (invoke "store_at_zero")) -(assert_return (invoke "load_at_zero") (i32.const 2)) -(assert_return (invoke "load_at_page_size") (i32.const 0)) -(assert_return (invoke "store_at_page_size")) -(assert_return (invoke "load_at_page_size") (i32.const 3)) - - -(module - (memory 0) - (func (export "grow") (param i32) (result i32) (memory.grow (get_local 0))) -) - -(assert_return (invoke "grow" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 2)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 800)) (i32.const 3)) -(assert_return (invoke "grow" (i32.const 0x10000)) (i32.const -1)) - -(module - (memory 0 10) - (func (export "grow") (param i32) (result i32) (memory.grow (get_local 0))) -) - -(assert_return (invoke "grow" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 0)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const 1)) -(assert_return (invoke "grow" (i32.const 2)) (i32.const 2)) -(assert_return (invoke "grow" (i32.const 6)) (i32.const 4)) -(assert_return (invoke "grow" (i32.const 0)) (i32.const 10)) -(assert_return (invoke "grow" (i32.const 1)) (i32.const -1)) -(assert_return (invoke "grow" (i32.const 0x10000)) (i32.const -1)) diff --git a/tests/samples/return.wast b/tests/samples/return.wast deleted file mode 100644 index 727680a..0000000 --- a/tests/samples/return.wast +++ /dev/null @@ -1,295 +0,0 @@ -;; Test `return` operator - -(module - ;; Auxiliary definition - (func $dummy) - - (func (export "type-i32") (drop (i32.ctz (return)))) - (func (export "type-i64") (drop (i64.ctz (return)))) - (func (export "type-f32") (drop (f32.neg (return)))) - (func (export "type-f64") (drop (f64.neg (return)))) - - (func (export "nullary") (return)) - (func (export "unary") (result f64) (return (f64.const 3))) - - (func (export "as-func-first") (result i32) - (return (i32.const 1)) (i32.const 2) - ) - (func (export "as-func-mid") (result i32) - (call $dummy) (return (i32.const 2)) (i32.const 3) - ) - (func (export "as-func-last") - (nop) (call $dummy) (return) - ) - (func (export "as-func-value") (result i32) - (nop) (call $dummy) (return (i32.const 3)) - ) - - (func (export "as-block-first") - (block (return) (call $dummy)) - ) - (func (export "as-block-mid") - (block (call $dummy) (return) (call $dummy)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (return)) - ) - (func (export "as-block-value") (result i32) - (block (result i32) (nop) (call $dummy) (return (i32.const 2))) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (return (i32.const 3)) (i32.const 2)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) (call $dummy) (return (i32.const 4)) (i32.const 2)) - ) - (func (export "as-loop-last") (result i32) - (loop (result i32) (nop) (call $dummy) (return (i32.const 5))) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (return (i32.const 9)))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (return))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (return (i32.const 8)) (i32.const 1))) (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (return (i32.const 9)))) (i32.const 7) - ) - ) - - (func (export "as-br_table-index") (result i64) - (block (br_table 0 0 0 (return (i64.const 9)))) (i64.const -1) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (return (i32.const 10)) (i32.const 1)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (return (i32.const 11))) (i32.const 7) - ) - ) - - (func (export "as-return-value") (result i64) - (return (return (i64.const 7))) - ) - - (func (export "as-if-cond") (result i32) - (if (result i32) - (return (i32.const 2)) (then (i32.const 0)) (else (i32.const 1)) - ) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (if (result i32) - (get_local 0) (then (return (i32.const 3))) (else (get_local 1)) - ) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (if (result i32) - (get_local 0) (then (get_local 1)) (else (return (i32.const 4))) - ) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (select (return (i32.const 5)) (get_local 0) (get_local 1)) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (select (get_local 0) (return (i32.const 6)) (get_local 1)) - ) - (func (export "as-select-cond") (result i32) - (select (i32.const 0) (i32.const 1) (return (i32.const 7))) - ) - - (func $f (param i32 i32 i32) (result i32) (i32.const -1)) - (func (export "as-call-first") (result i32) - (call $f (return (i32.const 12)) (i32.const 2) (i32.const 3)) - ) - (func (export "as-call-mid") (result i32) - (call $f (i32.const 1) (return (i32.const 13)) (i32.const 3)) - ) - (func (export "as-call-last") (result i32) - (call $f (i32.const 1) (i32.const 2) (return (i32.const 14))) - ) - - (type $sig (func (param i32 i32 i32) (result i32))) - (table anyfunc (elem $f)) - (func (export "as-call_indirect-func") (result i32) - (call_indirect (type $sig) - (return (i32.const 20)) (i32.const 1) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-first") (result i32) - (call_indirect (type $sig) - (i32.const 0) (return (i32.const 21)) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-mid") (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (return (i32.const 22)) (i32.const 3) - ) - ) - (func (export "as-call_indirect-last") (result i32) - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) (return (i32.const 23)) - ) - ) - - (func (export "as-set_local-value") (result i32) (local f32) - (set_local 0 (return (i32.const 17))) (i32.const -1) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (f32.load (return (f32.const 1.7))) - ) - (func (export "as-loadN-address") (result i64) - (i64.load8_s (return (i64.const 30))) - ) - - (func (export "as-store-address") (result i32) - (f64.store (return (i32.const 30)) (f64.const 7)) (i32.const -1) - ) - (func (export "as-store-value") (result i32) - (i64.store (i32.const 2) (return (i32.const 31))) (i32.const -1) - ) - - (func (export "as-storeN-address") (result i32) - (i32.store8 (return (i32.const 32)) (i32.const 7)) (i32.const -1) - ) - (func (export "as-storeN-value") (result i32) - (i64.store16 (i32.const 2) (return (i32.const 33))) (i32.const -1) - ) - - (func (export "as-unary-operand") (result f32) - (f32.neg (return (f32.const 3.4))) - ) - - (func (export "as-binary-left") (result i32) - (i32.add (return (i32.const 3)) (i32.const 10)) - ) - (func (export "as-binary-right") (result i64) - (i64.sub (i64.const 10) (return (i64.const 45))) - ) - - (func (export "as-test-operand") (result i32) - (i32.eqz (return (i32.const 44))) - ) - - (func (export "as-compare-left") (result i32) - (f64.le (return (i32.const 43)) (f64.const 10)) - ) - (func (export "as-compare-right") (result i32) - (f32.ne (f32.const 10) (return (i32.const 42))) - ) - - (func (export "as-convert-operand") (result i32) - (i32.wrap/i64 (return (i32.const 41))) - ) - - (func (export "as-memory.grow-size") (result i32) - (memory.grow (return (i32.const 40))) - ) -) - -(assert_return (invoke "type-i32")) -(assert_return (invoke "type-i64")) -(assert_return (invoke "type-f32")) -(assert_return (invoke "type-f64")) - -(assert_return (invoke "nullary")) -(assert_return (invoke "unary") (f64.const 3)) - -(assert_return (invoke "as-func-first") (i32.const 1)) -(assert_return (invoke "as-func-mid") (i32.const 2)) -(assert_return (invoke "as-func-last")) -(assert_return (invoke "as-func-value") (i32.const 3)) - -(assert_return (invoke "as-block-first")) -(assert_return (invoke "as-block-mid")) -(assert_return (invoke "as-block-last")) -(assert_return (invoke "as-block-value") (i32.const 2)) - -(assert_return (invoke "as-loop-first") (i32.const 3)) -(assert_return (invoke "as-loop-mid") (i32.const 4)) -(assert_return (invoke "as-loop-last") (i32.const 5)) - -(assert_return (invoke "as-br-value") (i32.const 9)) - -(assert_return (invoke "as-br_if-cond")) -(assert_return (invoke "as-br_if-value") (i32.const 8)) -(assert_return (invoke "as-br_if-value-cond") (i32.const 9)) - -(assert_return (invoke "as-br_table-index") (i64.const 9)) -(assert_return (invoke "as-br_table-value") (i32.const 10)) -(assert_return (invoke "as-br_table-value-index") (i32.const 11)) - -(assert_return (invoke "as-return-value") (i64.const 7)) - -(assert_return (invoke "as-if-cond") (i32.const 2)) -(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3)) -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4)) -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5)) -(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6)) -(assert_return (invoke "as-select-cond") (i32.const 7)) - -(assert_return (invoke "as-call-first") (i32.const 12)) -(assert_return (invoke "as-call-mid") (i32.const 13)) -(assert_return (invoke "as-call-last") (i32.const 14)) - -(assert_return (invoke "as-call_indirect-func") (i32.const 20)) -(assert_return (invoke "as-call_indirect-first") (i32.const 21)) -(assert_return (invoke "as-call_indirect-mid") (i32.const 22)) -(assert_return (invoke "as-call_indirect-last") (i32.const 23)) - -(assert_return (invoke "as-set_local-value") (i32.const 17)) - -(assert_return (invoke "as-load-address") (f32.const 1.7)) -(assert_return (invoke "as-loadN-address") (i64.const 30)) - -(assert_return (invoke "as-store-address") (i32.const 30)) -(assert_return (invoke "as-store-value") (i32.const 31)) -(assert_return (invoke "as-storeN-address") (i32.const 32)) -(assert_return (invoke "as-storeN-value") (i32.const 33)) - -(assert_return (invoke "as-unary-operand") (f32.const 3.4)) - -(assert_return (invoke "as-binary-left") (i32.const 3)) -(assert_return (invoke "as-binary-right") (i64.const 45)) - -(assert_return (invoke "as-test-operand") (i32.const 44)) - -(assert_return (invoke "as-compare-left") (i32.const 43)) -(assert_return (invoke "as-compare-right") (i32.const 42)) - -(assert_return (invoke "as-convert-operand") (i32.const 41)) - -(assert_return (invoke "as-memory.grow-size") (i32.const 40)) - -(assert_invalid - (module (func $type-value-empty-vs-num (result f64) (return))) - "type mismatch" -) -(assert_invalid - (module (func $type-value-void-vs-num (result f64) (return (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-value-num-vs-num (result f64) (return (i64.const 1)))) - "type mismatch" -) - diff --git a/tests/samples/select.wast b/tests/samples/select.wast deleted file mode 100644 index 4dfa456..0000000 --- a/tests/samples/select.wast +++ /dev/null @@ -1,67 +0,0 @@ -(module - (func (export "select_i32") (param $lhs i32) (param $rhs i32) (param $cond i32) (result i32) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - (func (export "select_i64") (param $lhs i64) (param $rhs i64) (param $cond i32) (result i64) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - (func (export "select_f32") (param $lhs f32) (param $rhs f32) (param $cond i32) (result f32) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - (func (export "select_f64") (param $lhs f64) (param $rhs f64) (param $cond i32) (result f64) - (select (get_local $lhs) (get_local $rhs) (get_local $cond))) - - ;; Check that both sides of the select are evaluated - (func (export "select_trap_l") (param $cond i32) (result i32) - (select (unreachable) (i32.const 0) (get_local $cond)) - ) - (func (export "select_trap_r") (param $cond i32) (result i32) - (select (i32.const 0) (unreachable) (get_local $cond)) - ) - - (func (export "select_unreached") - (unreachable) (select) - (unreachable) (i32.const 0) (select) - (unreachable) (i32.const 0) (i32.const 0) (select) - (unreachable) (f32.const 0) (i32.const 0) (select) - (unreachable) - ) -) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 1)) (i64.const 2)) -(assert_return (invoke "select_f32" (f32.const 1) (f32.const 2) (i32.const 1)) (f32.const 1)) -(assert_return (invoke "select_f64" (f64.const 1) (f64.const 2) (i32.const 1)) (f64.const 1)) - -(assert_return (invoke "select_i32" (i32.const 1) (i32.const 2) (i32.const 0)) (i32.const 2)) -(assert_return (invoke "select_i32" (i32.const 2) (i32.const 1) (i32.const 0)) (i32.const 1)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const -1)) (i64.const 2)) -(assert_return (invoke "select_i64" (i64.const 2) (i64.const 1) (i32.const 0xf0f0f0f0)) (i64.const 2)) - -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 1)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 1)) (f32.const nan:0x20304)) -(assert_return (invoke "select_f32" (f32.const nan) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const nan:0x20304) (f32.const 1) (i32.const 0)) (f32.const 1)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 1)) (f32.const 2)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan) (i32.const 0)) (f32.const nan)) -(assert_return (invoke "select_f32" (f32.const 2) (f32.const nan:0x20304) (i32.const 0)) (f32.const nan:0x20304)) - -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 1)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 1)) (f64.const nan:0x20304)) -(assert_return (invoke "select_f64" (f64.const nan) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const nan:0x20304) (f64.const 1) (i32.const 0)) (f64.const 1)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 1)) (f64.const 2)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan) (i32.const 0)) (f64.const nan)) -(assert_return (invoke "select_f64" (f64.const 2) (f64.const nan:0x20304) (i32.const 0)) (f64.const nan:0x20304)) - -(assert_trap (invoke "select_trap_l" (i32.const 1)) "unreachable executed") -(assert_trap (invoke "select_trap_l" (i32.const 0)) "unreachable executed") -(assert_trap (invoke "select_trap_r" (i32.const 1)) "unreachable executed") -(assert_trap (invoke "select_trap_r" (i32.const 0)) "unreachable executed") - -(assert_invalid - (module (func $arity-0 (select (nop) (nop) (i32.const 1)))) - "type mismatch" -) diff --git a/tests/samples/set_local.wast b/tests/samples/set_local.wast deleted file mode 100644 index 5a006e1..0000000 --- a/tests/samples/set_local.wast +++ /dev/null @@ -1,205 +0,0 @@ -;; Test `set_local` operator - -(module - ;; Typing - - (func (export "type-local-i32") (local i32) (set_local 0 (i32.const 0))) - (func (export "type-local-i64") (local i64) (set_local 0 (i64.const 0))) - (func (export "type-local-f32") (local f32) (set_local 0 (f32.const 0))) - (func (export "type-local-f64") (local f64) (set_local 0 (f64.const 0))) - - (func (export "type-param-i32") (param i32) (set_local 0 (i32.const 10))) - (func (export "type-param-i64") (param i64) (set_local 0 (i64.const 11))) - (func (export "type-param-f32") (param f32) (set_local 0 (f32.const 11.1))) - (func (export "type-param-f64") (param f64) (set_local 0 (f64.const 12.2))) - - (func (export "type-mixed") (param i64 f32 f64 i32 i32) (local f32 i64 i64 f64) - (set_local 0 (i64.const 0)) - (set_local 1 (f32.const 0)) - (set_local 2 (f64.const 0)) - (set_local 3 (i32.const 0)) - (set_local 4 (i32.const 0)) - (set_local 5 (f32.const 0)) - (set_local 6 (i64.const 0)) - (set_local 7 (i64.const 0)) - (set_local 8 (f64.const 0)) - ) - - ;; Writing - - (func (export "write") (param i64 f32 f64 i32 i32) (result i64) - (local f32 i64 i64 f64) - (set_local 1 (f32.const -0.3)) - (set_local 3 (i32.const 40)) - (set_local 4 (i32.const -7)) - (set_local 5 (f32.const 5.5)) - (set_local 6 (i64.const 6)) - (set_local 8 (f64.const 8)) - (i64.trunc_s/f64 - (f64.add - (f64.convert_u/i64 (get_local 0)) - (f64.add - (f64.promote/f32 (get_local 1)) - (f64.add - (get_local 2) - (f64.add - (f64.convert_u/i32 (get_local 3)) - (f64.add - (f64.convert_s/i32 (get_local 4)) - (f64.add - (f64.promote/f32 (get_local 5)) - (f64.add - (f64.convert_u/i64 (get_local 6)) - (f64.add - (f64.convert_u/i64 (get_local 7)) - (get_local 8) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) - -(assert_return (invoke "type-local-i32")) -(assert_return (invoke "type-local-i64")) -(assert_return (invoke "type-local-f32")) -(assert_return (invoke "type-local-f64")) - -(assert_return (invoke "type-param-i32" (i32.const 2))) -(assert_return (invoke "type-param-i64" (i64.const 3))) -(assert_return (invoke "type-param-f32" (f32.const 4.4))) -(assert_return (invoke "type-param-f64" (f64.const 5.5))) - -(assert_return - (invoke "type-mixed" - (i64.const 1) (f32.const 2.2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) -) - -(assert_return - (invoke "write" - (i64.const 1) (f32.const 2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) - (i64.const 56) -) - - -;; Invalid typing of access to locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) - (set_local 0 (i32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) - (i32.eqz (set_local 0 (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) - (f64.neg (set_local 1 (i64.const 0))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-local-arg-void-vs-num (local i32) (set_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local i32) (set_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f32) (set_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f64 i64) (set_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid typing of access to parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-param-arg-void-vs-num (param i32) (set_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param i32) (set_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f32) (set_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f64 i64) (set_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid local index - -(assert_invalid - (module (func $unbound-local (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-local (local i32 i64) (get_local 14324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-param (param i32 i64) (get_local 2))) - "unknown local" -) -(assert_invalid - (module (func $large-param (local i32 i64) (get_local 714324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) - "unknown local" -) - -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param f32) (local i32) (set_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64 i32) (local f32) (set_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64) (local f64 i64) (set_local 1 (i64.const 0)))) - "type mismatch" -) - diff --git a/tests/samples/skip-stack-guard-page.wast b/tests/samples/skip-stack-guard-page.wast deleted file mode 100644 index f2449dc..0000000 --- a/tests/samples/skip-stack-guard-page.wast +++ /dev/null @@ -1,2284 +0,0 @@ -;; This tests that the stack overflow guard page can't be skipped by a function with more than a page of locals. -(module - (memory 1) - (export "test-guard-page-skip" (func $test-guard-page-skip)) - - (func $test-guard-page-skip - (param $depth i32) - (if (i32.eq (get_local $depth) (i32.const 0)) - (then (call $function-with-many-locals)) - (else (call $test-guard-page-skip (i32.sub (get_local $depth) (i32.const 1)))) - ) - ) - - (func $function-with-many-locals - - ;; 1056 i64 = 8448 bytes of locals - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x000-0x007 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x008-0x00f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x010-0x017 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x018-0x01f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x020-0x027 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x028-0x02f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x030-0x037 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x038-0x03f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x040-0x047 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x048-0x04f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x050-0x057 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x058-0x05f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x060-0x067 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x068-0x06f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x070-0x077 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x078-0x07f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x080-0x087 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x088-0x08f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x090-0x097 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x098-0x09f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0a0-0x0a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0a8-0x0af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0b0-0x0b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0b8-0x0bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0c0-0x0c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0c8-0x0cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0d0-0x0d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0d8-0x0df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0e0-0x0e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0e8-0x0ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0f0-0x0f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x0f8-0x0ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x100-0x107 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x108-0x10f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x110-0x117 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x118-0x11f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x120-0x127 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x128-0x12f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x130-0x137 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x138-0x13f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x140-0x147 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x148-0x14f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x150-0x157 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x158-0x15f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x160-0x167 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x168-0x16f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x170-0x177 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x178-0x17f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x180-0x187 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x188-0x18f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x190-0x197 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x198-0x19f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1a0-0x1a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1a8-0x1af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1b0-0x1b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1b8-0x1bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1c0-0x1c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1c8-0x1cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1d0-0x1d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1d8-0x1df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1e0-0x1e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1e8-0x1ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1f0-0x1f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x1f8-0x1ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x200-0x207 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x208-0x20f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x210-0x217 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x218-0x21f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x220-0x227 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x228-0x22f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x230-0x237 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x238-0x23f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x240-0x247 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x248-0x24f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x250-0x257 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x258-0x25f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x260-0x267 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x268-0x26f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x270-0x277 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x278-0x27f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x280-0x287 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x288-0x28f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x290-0x297 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x298-0x29f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2a0-0x2a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2a8-0x2af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2b0-0x2b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2b8-0x2bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2c0-0x2c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2c8-0x2cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2d0-0x2d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2d8-0x2df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2e0-0x2e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2e8-0x2ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2f0-0x2f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x2f8-0x2ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x300-0x307 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x308-0x30f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x310-0x317 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x318-0x31f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x320-0x327 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x328-0x32f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x330-0x337 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x338-0x33f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x340-0x347 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x348-0x34f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x350-0x357 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x358-0x35f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x360-0x367 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x368-0x36f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x370-0x377 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x378-0x37f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x380-0x387 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x388-0x38f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x390-0x397 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x398-0x39f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3a0-0x3a7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3a8-0x3af - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3b0-0x3b7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3b8-0x3bf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3c0-0x3c7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3c8-0x3cf - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3d0-0x3d7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3d8-0x3df - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3e0-0x3e7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3e8-0x3ef - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3f0-0x3f7 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x3f8-0x3ff - - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x400-0x407 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x408-0x40f - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x410-0x417 - (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) (local i64) ;; 0x418-0x41f - - ;; recurse first to try to make the callee access the stack below the space allocated for the locals before the locals themselves have been initialized. - (call $function-with-many-locals) - - ;; load from memory into the locals - (set_local 0x000 (i64.load offset=0x000 align=1 (i32.const 0))) - (set_local 0x001 (i64.load offset=0x001 align=1 (i32.const 0))) - (set_local 0x002 (i64.load offset=0x002 align=1 (i32.const 0))) - (set_local 0x003 (i64.load offset=0x003 align=1 (i32.const 0))) - (set_local 0x004 (i64.load offset=0x004 align=1 (i32.const 0))) - (set_local 0x005 (i64.load offset=0x005 align=1 (i32.const 0))) - (set_local 0x006 (i64.load offset=0x006 align=1 (i32.const 0))) - (set_local 0x007 (i64.load offset=0x007 align=1 (i32.const 0))) - (set_local 0x008 (i64.load offset=0x008 align=1 (i32.const 0))) - (set_local 0x009 (i64.load offset=0x009 align=1 (i32.const 0))) - (set_local 0x00a (i64.load offset=0x00a align=1 (i32.const 0))) - (set_local 0x00b (i64.load offset=0x00b align=1 (i32.const 0))) - (set_local 0x00c (i64.load offset=0x00c align=1 (i32.const 0))) - (set_local 0x00d (i64.load offset=0x00d align=1 (i32.const 0))) - (set_local 0x00e (i64.load offset=0x00e align=1 (i32.const 0))) - (set_local 0x00f (i64.load offset=0x00f align=1 (i32.const 0))) - (set_local 0x010 (i64.load offset=0x010 align=1 (i32.const 0))) - (set_local 0x011 (i64.load offset=0x011 align=1 (i32.const 0))) - (set_local 0x012 (i64.load offset=0x012 align=1 (i32.const 0))) - (set_local 0x013 (i64.load offset=0x013 align=1 (i32.const 0))) - (set_local 0x014 (i64.load offset=0x014 align=1 (i32.const 0))) - (set_local 0x015 (i64.load offset=0x015 align=1 (i32.const 0))) - (set_local 0x016 (i64.load offset=0x016 align=1 (i32.const 0))) - (set_local 0x017 (i64.load offset=0x017 align=1 (i32.const 0))) - (set_local 0x018 (i64.load offset=0x018 align=1 (i32.const 0))) - (set_local 0x019 (i64.load offset=0x019 align=1 (i32.const 0))) - (set_local 0x01a (i64.load offset=0x01a align=1 (i32.const 0))) - (set_local 0x01b (i64.load offset=0x01b align=1 (i32.const 0))) - (set_local 0x01c (i64.load offset=0x01c align=1 (i32.const 0))) - (set_local 0x01d (i64.load offset=0x01d align=1 (i32.const 0))) - (set_local 0x01e (i64.load offset=0x01e align=1 (i32.const 0))) - (set_local 0x01f (i64.load offset=0x01f align=1 (i32.const 0))) - (set_local 0x020 (i64.load offset=0x020 align=1 (i32.const 0))) - (set_local 0x021 (i64.load offset=0x021 align=1 (i32.const 0))) - (set_local 0x022 (i64.load offset=0x022 align=1 (i32.const 0))) - (set_local 0x023 (i64.load offset=0x023 align=1 (i32.const 0))) - (set_local 0x024 (i64.load offset=0x024 align=1 (i32.const 0))) - (set_local 0x025 (i64.load offset=0x025 align=1 (i32.const 0))) - (set_local 0x026 (i64.load offset=0x026 align=1 (i32.const 0))) - (set_local 0x027 (i64.load offset=0x027 align=1 (i32.const 0))) - (set_local 0x028 (i64.load offset=0x028 align=1 (i32.const 0))) - (set_local 0x029 (i64.load offset=0x029 align=1 (i32.const 0))) - (set_local 0x02a (i64.load offset=0x02a align=1 (i32.const 0))) - (set_local 0x02b (i64.load offset=0x02b align=1 (i32.const 0))) - (set_local 0x02c (i64.load offset=0x02c align=1 (i32.const 0))) - (set_local 0x02d (i64.load offset=0x02d align=1 (i32.const 0))) - (set_local 0x02e (i64.load offset=0x02e align=1 (i32.const 0))) - (set_local 0x02f (i64.load offset=0x02f align=1 (i32.const 0))) - (set_local 0x030 (i64.load offset=0x030 align=1 (i32.const 0))) - (set_local 0x031 (i64.load offset=0x031 align=1 (i32.const 0))) - (set_local 0x032 (i64.load offset=0x032 align=1 (i32.const 0))) - (set_local 0x033 (i64.load offset=0x033 align=1 (i32.const 0))) - (set_local 0x034 (i64.load offset=0x034 align=1 (i32.const 0))) - (set_local 0x035 (i64.load offset=0x035 align=1 (i32.const 0))) - (set_local 0x036 (i64.load offset=0x036 align=1 (i32.const 0))) - (set_local 0x037 (i64.load offset=0x037 align=1 (i32.const 0))) - (set_local 0x038 (i64.load offset=0x038 align=1 (i32.const 0))) - (set_local 0x039 (i64.load offset=0x039 align=1 (i32.const 0))) - (set_local 0x03a (i64.load offset=0x03a align=1 (i32.const 0))) - (set_local 0x03b (i64.load offset=0x03b align=1 (i32.const 0))) - (set_local 0x03c (i64.load offset=0x03c align=1 (i32.const 0))) - (set_local 0x03d (i64.load offset=0x03d align=1 (i32.const 0))) - (set_local 0x03e (i64.load offset=0x03e align=1 (i32.const 0))) - (set_local 0x03f (i64.load offset=0x03f align=1 (i32.const 0))) - (set_local 0x040 (i64.load offset=0x040 align=1 (i32.const 0))) - (set_local 0x041 (i64.load offset=0x041 align=1 (i32.const 0))) - (set_local 0x042 (i64.load offset=0x042 align=1 (i32.const 0))) - (set_local 0x043 (i64.load offset=0x043 align=1 (i32.const 0))) - (set_local 0x044 (i64.load offset=0x044 align=1 (i32.const 0))) - (set_local 0x045 (i64.load offset=0x045 align=1 (i32.const 0))) - (set_local 0x046 (i64.load offset=0x046 align=1 (i32.const 0))) - (set_local 0x047 (i64.load offset=0x047 align=1 (i32.const 0))) - (set_local 0x048 (i64.load offset=0x048 align=1 (i32.const 0))) - (set_local 0x049 (i64.load offset=0x049 align=1 (i32.const 0))) - (set_local 0x04a (i64.load offset=0x04a align=1 (i32.const 0))) - (set_local 0x04b (i64.load offset=0x04b align=1 (i32.const 0))) - (set_local 0x04c (i64.load offset=0x04c align=1 (i32.const 0))) - (set_local 0x04d (i64.load offset=0x04d align=1 (i32.const 0))) - (set_local 0x04e (i64.load offset=0x04e align=1 (i32.const 0))) - (set_local 0x04f (i64.load offset=0x04f align=1 (i32.const 0))) - (set_local 0x050 (i64.load offset=0x050 align=1 (i32.const 0))) - (set_local 0x051 (i64.load offset=0x051 align=1 (i32.const 0))) - (set_local 0x052 (i64.load offset=0x052 align=1 (i32.const 0))) - (set_local 0x053 (i64.load offset=0x053 align=1 (i32.const 0))) - (set_local 0x054 (i64.load offset=0x054 align=1 (i32.const 0))) - (set_local 0x055 (i64.load offset=0x055 align=1 (i32.const 0))) - (set_local 0x056 (i64.load offset=0x056 align=1 (i32.const 0))) - (set_local 0x057 (i64.load offset=0x057 align=1 (i32.const 0))) - (set_local 0x058 (i64.load offset=0x058 align=1 (i32.const 0))) - (set_local 0x059 (i64.load offset=0x059 align=1 (i32.const 0))) - (set_local 0x05a (i64.load offset=0x05a align=1 (i32.const 0))) - (set_local 0x05b (i64.load offset=0x05b align=1 (i32.const 0))) - (set_local 0x05c (i64.load offset=0x05c align=1 (i32.const 0))) - (set_local 0x05d (i64.load offset=0x05d align=1 (i32.const 0))) - (set_local 0x05e (i64.load offset=0x05e align=1 (i32.const 0))) - (set_local 0x05f (i64.load offset=0x05f align=1 (i32.const 0))) - (set_local 0x060 (i64.load offset=0x060 align=1 (i32.const 0))) - (set_local 0x061 (i64.load offset=0x061 align=1 (i32.const 0))) - (set_local 0x062 (i64.load offset=0x062 align=1 (i32.const 0))) - (set_local 0x063 (i64.load offset=0x063 align=1 (i32.const 0))) - (set_local 0x064 (i64.load offset=0x064 align=1 (i32.const 0))) - (set_local 0x065 (i64.load offset=0x065 align=1 (i32.const 0))) - (set_local 0x066 (i64.load offset=0x066 align=1 (i32.const 0))) - (set_local 0x067 (i64.load offset=0x067 align=1 (i32.const 0))) - (set_local 0x068 (i64.load offset=0x068 align=1 (i32.const 0))) - (set_local 0x069 (i64.load offset=0x069 align=1 (i32.const 0))) - (set_local 0x06a (i64.load offset=0x06a align=1 (i32.const 0))) - (set_local 0x06b (i64.load offset=0x06b align=1 (i32.const 0))) - (set_local 0x06c (i64.load offset=0x06c align=1 (i32.const 0))) - (set_local 0x06d (i64.load offset=0x06d align=1 (i32.const 0))) - (set_local 0x06e (i64.load offset=0x06e align=1 (i32.const 0))) - (set_local 0x06f (i64.load offset=0x06f align=1 (i32.const 0))) - (set_local 0x070 (i64.load offset=0x070 align=1 (i32.const 0))) - (set_local 0x071 (i64.load offset=0x071 align=1 (i32.const 0))) - (set_local 0x072 (i64.load offset=0x072 align=1 (i32.const 0))) - (set_local 0x073 (i64.load offset=0x073 align=1 (i32.const 0))) - (set_local 0x074 (i64.load offset=0x074 align=1 (i32.const 0))) - (set_local 0x075 (i64.load offset=0x075 align=1 (i32.const 0))) - (set_local 0x076 (i64.load offset=0x076 align=1 (i32.const 0))) - (set_local 0x077 (i64.load offset=0x077 align=1 (i32.const 0))) - (set_local 0x078 (i64.load offset=0x078 align=1 (i32.const 0))) - (set_local 0x079 (i64.load offset=0x079 align=1 (i32.const 0))) - (set_local 0x07a (i64.load offset=0x07a align=1 (i32.const 0))) - (set_local 0x07b (i64.load offset=0x07b align=1 (i32.const 0))) - (set_local 0x07c (i64.load offset=0x07c align=1 (i32.const 0))) - (set_local 0x07d (i64.load offset=0x07d align=1 (i32.const 0))) - (set_local 0x07e (i64.load offset=0x07e align=1 (i32.const 0))) - (set_local 0x07f (i64.load offset=0x07f align=1 (i32.const 0))) - (set_local 0x080 (i64.load offset=0x080 align=1 (i32.const 0))) - (set_local 0x081 (i64.load offset=0x081 align=1 (i32.const 0))) - (set_local 0x082 (i64.load offset=0x082 align=1 (i32.const 0))) - (set_local 0x083 (i64.load offset=0x083 align=1 (i32.const 0))) - (set_local 0x084 (i64.load offset=0x084 align=1 (i32.const 0))) - (set_local 0x085 (i64.load offset=0x085 align=1 (i32.const 0))) - (set_local 0x086 (i64.load offset=0x086 align=1 (i32.const 0))) - (set_local 0x087 (i64.load offset=0x087 align=1 (i32.const 0))) - (set_local 0x088 (i64.load offset=0x088 align=1 (i32.const 0))) - (set_local 0x089 (i64.load offset=0x089 align=1 (i32.const 0))) - (set_local 0x08a (i64.load offset=0x08a align=1 (i32.const 0))) - (set_local 0x08b (i64.load offset=0x08b align=1 (i32.const 0))) - (set_local 0x08c (i64.load offset=0x08c align=1 (i32.const 0))) - (set_local 0x08d (i64.load offset=0x08d align=1 (i32.const 0))) - (set_local 0x08e (i64.load offset=0x08e align=1 (i32.const 0))) - (set_local 0x08f (i64.load offset=0x08f align=1 (i32.const 0))) - (set_local 0x090 (i64.load offset=0x090 align=1 (i32.const 0))) - (set_local 0x091 (i64.load offset=0x091 align=1 (i32.const 0))) - (set_local 0x092 (i64.load offset=0x092 align=1 (i32.const 0))) - (set_local 0x093 (i64.load offset=0x093 align=1 (i32.const 0))) - (set_local 0x094 (i64.load offset=0x094 align=1 (i32.const 0))) - (set_local 0x095 (i64.load offset=0x095 align=1 (i32.const 0))) - (set_local 0x096 (i64.load offset=0x096 align=1 (i32.const 0))) - (set_local 0x097 (i64.load offset=0x097 align=1 (i32.const 0))) - (set_local 0x098 (i64.load offset=0x098 align=1 (i32.const 0))) - (set_local 0x099 (i64.load offset=0x099 align=1 (i32.const 0))) - (set_local 0x09a (i64.load offset=0x09a align=1 (i32.const 0))) - (set_local 0x09b (i64.load offset=0x09b align=1 (i32.const 0))) - (set_local 0x09c (i64.load offset=0x09c align=1 (i32.const 0))) - (set_local 0x09d (i64.load offset=0x09d align=1 (i32.const 0))) - (set_local 0x09e (i64.load offset=0x09e align=1 (i32.const 0))) - (set_local 0x09f (i64.load offset=0x09f align=1 (i32.const 0))) - (set_local 0x0a0 (i64.load offset=0x0a0 align=1 (i32.const 0))) - (set_local 0x0a1 (i64.load offset=0x0a1 align=1 (i32.const 0))) - (set_local 0x0a2 (i64.load offset=0x0a2 align=1 (i32.const 0))) - (set_local 0x0a3 (i64.load offset=0x0a3 align=1 (i32.const 0))) - (set_local 0x0a4 (i64.load offset=0x0a4 align=1 (i32.const 0))) - (set_local 0x0a5 (i64.load offset=0x0a5 align=1 (i32.const 0))) - (set_local 0x0a6 (i64.load offset=0x0a6 align=1 (i32.const 0))) - (set_local 0x0a7 (i64.load offset=0x0a7 align=1 (i32.const 0))) - (set_local 0x0a8 (i64.load offset=0x0a8 align=1 (i32.const 0))) - (set_local 0x0a9 (i64.load offset=0x0a9 align=1 (i32.const 0))) - (set_local 0x0aa (i64.load offset=0x0aa align=1 (i32.const 0))) - (set_local 0x0ab (i64.load offset=0x0ab align=1 (i32.const 0))) - (set_local 0x0ac (i64.load offset=0x0ac align=1 (i32.const 0))) - (set_local 0x0ad (i64.load offset=0x0ad align=1 (i32.const 0))) - (set_local 0x0ae (i64.load offset=0x0ae align=1 (i32.const 0))) - (set_local 0x0af (i64.load offset=0x0af align=1 (i32.const 0))) - (set_local 0x0b0 (i64.load offset=0x0b0 align=1 (i32.const 0))) - (set_local 0x0b1 (i64.load offset=0x0b1 align=1 (i32.const 0))) - (set_local 0x0b2 (i64.load offset=0x0b2 align=1 (i32.const 0))) - (set_local 0x0b3 (i64.load offset=0x0b3 align=1 (i32.const 0))) - (set_local 0x0b4 (i64.load offset=0x0b4 align=1 (i32.const 0))) - (set_local 0x0b5 (i64.load offset=0x0b5 align=1 (i32.const 0))) - (set_local 0x0b6 (i64.load offset=0x0b6 align=1 (i32.const 0))) - (set_local 0x0b7 (i64.load offset=0x0b7 align=1 (i32.const 0))) - (set_local 0x0b8 (i64.load offset=0x0b8 align=1 (i32.const 0))) - (set_local 0x0b9 (i64.load offset=0x0b9 align=1 (i32.const 0))) - (set_local 0x0ba (i64.load offset=0x0ba align=1 (i32.const 0))) - (set_local 0x0bb (i64.load offset=0x0bb align=1 (i32.const 0))) - (set_local 0x0bc (i64.load offset=0x0bc align=1 (i32.const 0))) - (set_local 0x0bd (i64.load offset=0x0bd align=1 (i32.const 0))) - (set_local 0x0be (i64.load offset=0x0be align=1 (i32.const 0))) - (set_local 0x0bf (i64.load offset=0x0bf align=1 (i32.const 0))) - (set_local 0x0c0 (i64.load offset=0x0c0 align=1 (i32.const 0))) - (set_local 0x0c1 (i64.load offset=0x0c1 align=1 (i32.const 0))) - (set_local 0x0c2 (i64.load offset=0x0c2 align=1 (i32.const 0))) - (set_local 0x0c3 (i64.load offset=0x0c3 align=1 (i32.const 0))) - (set_local 0x0c4 (i64.load offset=0x0c4 align=1 (i32.const 0))) - (set_local 0x0c5 (i64.load offset=0x0c5 align=1 (i32.const 0))) - (set_local 0x0c6 (i64.load offset=0x0c6 align=1 (i32.const 0))) - (set_local 0x0c7 (i64.load offset=0x0c7 align=1 (i32.const 0))) - (set_local 0x0c8 (i64.load offset=0x0c8 align=1 (i32.const 0))) - (set_local 0x0c9 (i64.load offset=0x0c9 align=1 (i32.const 0))) - (set_local 0x0ca (i64.load offset=0x0ca align=1 (i32.const 0))) - (set_local 0x0cb (i64.load offset=0x0cb align=1 (i32.const 0))) - (set_local 0x0cc (i64.load offset=0x0cc align=1 (i32.const 0))) - (set_local 0x0cd (i64.load offset=0x0cd align=1 (i32.const 0))) - (set_local 0x0ce (i64.load offset=0x0ce align=1 (i32.const 0))) - (set_local 0x0cf (i64.load offset=0x0cf align=1 (i32.const 0))) - (set_local 0x0d0 (i64.load offset=0x0d0 align=1 (i32.const 0))) - (set_local 0x0d1 (i64.load offset=0x0d1 align=1 (i32.const 0))) - (set_local 0x0d2 (i64.load offset=0x0d2 align=1 (i32.const 0))) - (set_local 0x0d3 (i64.load offset=0x0d3 align=1 (i32.const 0))) - (set_local 0x0d4 (i64.load offset=0x0d4 align=1 (i32.const 0))) - (set_local 0x0d5 (i64.load offset=0x0d5 align=1 (i32.const 0))) - (set_local 0x0d6 (i64.load offset=0x0d6 align=1 (i32.const 0))) - (set_local 0x0d7 (i64.load offset=0x0d7 align=1 (i32.const 0))) - (set_local 0x0d8 (i64.load offset=0x0d8 align=1 (i32.const 0))) - (set_local 0x0d9 (i64.load offset=0x0d9 align=1 (i32.const 0))) - (set_local 0x0da (i64.load offset=0x0da align=1 (i32.const 0))) - (set_local 0x0db (i64.load offset=0x0db align=1 (i32.const 0))) - (set_local 0x0dc (i64.load offset=0x0dc align=1 (i32.const 0))) - (set_local 0x0dd (i64.load offset=0x0dd align=1 (i32.const 0))) - (set_local 0x0de (i64.load offset=0x0de align=1 (i32.const 0))) - (set_local 0x0df (i64.load offset=0x0df align=1 (i32.const 0))) - (set_local 0x0e0 (i64.load offset=0x0e0 align=1 (i32.const 0))) - (set_local 0x0e1 (i64.load offset=0x0e1 align=1 (i32.const 0))) - (set_local 0x0e2 (i64.load offset=0x0e2 align=1 (i32.const 0))) - (set_local 0x0e3 (i64.load offset=0x0e3 align=1 (i32.const 0))) - (set_local 0x0e4 (i64.load offset=0x0e4 align=1 (i32.const 0))) - (set_local 0x0e5 (i64.load offset=0x0e5 align=1 (i32.const 0))) - (set_local 0x0e6 (i64.load offset=0x0e6 align=1 (i32.const 0))) - (set_local 0x0e7 (i64.load offset=0x0e7 align=1 (i32.const 0))) - (set_local 0x0e8 (i64.load offset=0x0e8 align=1 (i32.const 0))) - (set_local 0x0e9 (i64.load offset=0x0e9 align=1 (i32.const 0))) - (set_local 0x0ea (i64.load offset=0x0ea align=1 (i32.const 0))) - (set_local 0x0eb (i64.load offset=0x0eb align=1 (i32.const 0))) - (set_local 0x0ec (i64.load offset=0x0ec align=1 (i32.const 0))) - (set_local 0x0ed (i64.load offset=0x0ed align=1 (i32.const 0))) - (set_local 0x0ee (i64.load offset=0x0ee align=1 (i32.const 0))) - (set_local 0x0ef (i64.load offset=0x0ef align=1 (i32.const 0))) - (set_local 0x0f0 (i64.load offset=0x0f0 align=1 (i32.const 0))) - (set_local 0x0f1 (i64.load offset=0x0f1 align=1 (i32.const 0))) - (set_local 0x0f2 (i64.load offset=0x0f2 align=1 (i32.const 0))) - (set_local 0x0f3 (i64.load offset=0x0f3 align=1 (i32.const 0))) - (set_local 0x0f4 (i64.load offset=0x0f4 align=1 (i32.const 0))) - (set_local 0x0f5 (i64.load offset=0x0f5 align=1 (i32.const 0))) - (set_local 0x0f6 (i64.load offset=0x0f6 align=1 (i32.const 0))) - (set_local 0x0f7 (i64.load offset=0x0f7 align=1 (i32.const 0))) - (set_local 0x0f8 (i64.load offset=0x0f8 align=1 (i32.const 0))) - (set_local 0x0f9 (i64.load offset=0x0f9 align=1 (i32.const 0))) - (set_local 0x0fa (i64.load offset=0x0fa align=1 (i32.const 0))) - (set_local 0x0fb (i64.load offset=0x0fb align=1 (i32.const 0))) - (set_local 0x0fc (i64.load offset=0x0fc align=1 (i32.const 0))) - (set_local 0x0fd (i64.load offset=0x0fd align=1 (i32.const 0))) - (set_local 0x0fe (i64.load offset=0x0fe align=1 (i32.const 0))) - (set_local 0x0ff (i64.load offset=0x0ff align=1 (i32.const 0))) - (set_local 0x100 (i64.load offset=0x100 align=1 (i32.const 0))) - (set_local 0x101 (i64.load offset=0x101 align=1 (i32.const 0))) - (set_local 0x102 (i64.load offset=0x102 align=1 (i32.const 0))) - (set_local 0x103 (i64.load offset=0x103 align=1 (i32.const 0))) - (set_local 0x104 (i64.load offset=0x104 align=1 (i32.const 0))) - (set_local 0x105 (i64.load offset=0x105 align=1 (i32.const 0))) - (set_local 0x106 (i64.load offset=0x106 align=1 (i32.const 0))) - (set_local 0x107 (i64.load offset=0x107 align=1 (i32.const 0))) - (set_local 0x108 (i64.load offset=0x108 align=1 (i32.const 0))) - (set_local 0x109 (i64.load offset=0x109 align=1 (i32.const 0))) - (set_local 0x10a (i64.load offset=0x10a align=1 (i32.const 0))) - (set_local 0x10b (i64.load offset=0x10b align=1 (i32.const 0))) - (set_local 0x10c (i64.load offset=0x10c align=1 (i32.const 0))) - (set_local 0x10d (i64.load offset=0x10d align=1 (i32.const 0))) - (set_local 0x10e (i64.load offset=0x10e align=1 (i32.const 0))) - (set_local 0x10f (i64.load offset=0x10f align=1 (i32.const 0))) - (set_local 0x110 (i64.load offset=0x110 align=1 (i32.const 0))) - (set_local 0x111 (i64.load offset=0x111 align=1 (i32.const 0))) - (set_local 0x112 (i64.load offset=0x112 align=1 (i32.const 0))) - (set_local 0x113 (i64.load offset=0x113 align=1 (i32.const 0))) - (set_local 0x114 (i64.load offset=0x114 align=1 (i32.const 0))) - (set_local 0x115 (i64.load offset=0x115 align=1 (i32.const 0))) - (set_local 0x116 (i64.load offset=0x116 align=1 (i32.const 0))) - (set_local 0x117 (i64.load offset=0x117 align=1 (i32.const 0))) - (set_local 0x118 (i64.load offset=0x118 align=1 (i32.const 0))) - (set_local 0x119 (i64.load offset=0x119 align=1 (i32.const 0))) - (set_local 0x11a (i64.load offset=0x11a align=1 (i32.const 0))) - (set_local 0x11b (i64.load offset=0x11b align=1 (i32.const 0))) - (set_local 0x11c (i64.load offset=0x11c align=1 (i32.const 0))) - (set_local 0x11d (i64.load offset=0x11d align=1 (i32.const 0))) - (set_local 0x11e (i64.load offset=0x11e align=1 (i32.const 0))) - (set_local 0x11f (i64.load offset=0x11f align=1 (i32.const 0))) - (set_local 0x120 (i64.load offset=0x120 align=1 (i32.const 0))) - (set_local 0x121 (i64.load offset=0x121 align=1 (i32.const 0))) - (set_local 0x122 (i64.load offset=0x122 align=1 (i32.const 0))) - (set_local 0x123 (i64.load offset=0x123 align=1 (i32.const 0))) - (set_local 0x124 (i64.load offset=0x124 align=1 (i32.const 0))) - (set_local 0x125 (i64.load offset=0x125 align=1 (i32.const 0))) - (set_local 0x126 (i64.load offset=0x126 align=1 (i32.const 0))) - (set_local 0x127 (i64.load offset=0x127 align=1 (i32.const 0))) - (set_local 0x128 (i64.load offset=0x128 align=1 (i32.const 0))) - (set_local 0x129 (i64.load offset=0x129 align=1 (i32.const 0))) - (set_local 0x12a (i64.load offset=0x12a align=1 (i32.const 0))) - (set_local 0x12b (i64.load offset=0x12b align=1 (i32.const 0))) - (set_local 0x12c (i64.load offset=0x12c align=1 (i32.const 0))) - (set_local 0x12d (i64.load offset=0x12d align=1 (i32.const 0))) - (set_local 0x12e (i64.load offset=0x12e align=1 (i32.const 0))) - (set_local 0x12f (i64.load offset=0x12f align=1 (i32.const 0))) - (set_local 0x130 (i64.load offset=0x130 align=1 (i32.const 0))) - (set_local 0x131 (i64.load offset=0x131 align=1 (i32.const 0))) - (set_local 0x132 (i64.load offset=0x132 align=1 (i32.const 0))) - (set_local 0x133 (i64.load offset=0x133 align=1 (i32.const 0))) - (set_local 0x134 (i64.load offset=0x134 align=1 (i32.const 0))) - (set_local 0x135 (i64.load offset=0x135 align=1 (i32.const 0))) - (set_local 0x136 (i64.load offset=0x136 align=1 (i32.const 0))) - (set_local 0x137 (i64.load offset=0x137 align=1 (i32.const 0))) - (set_local 0x138 (i64.load offset=0x138 align=1 (i32.const 0))) - (set_local 0x139 (i64.load offset=0x139 align=1 (i32.const 0))) - (set_local 0x13a (i64.load offset=0x13a align=1 (i32.const 0))) - (set_local 0x13b (i64.load offset=0x13b align=1 (i32.const 0))) - (set_local 0x13c (i64.load offset=0x13c align=1 (i32.const 0))) - (set_local 0x13d (i64.load offset=0x13d align=1 (i32.const 0))) - (set_local 0x13e (i64.load offset=0x13e align=1 (i32.const 0))) - (set_local 0x13f (i64.load offset=0x13f align=1 (i32.const 0))) - (set_local 0x140 (i64.load offset=0x140 align=1 (i32.const 0))) - (set_local 0x141 (i64.load offset=0x141 align=1 (i32.const 0))) - (set_local 0x142 (i64.load offset=0x142 align=1 (i32.const 0))) - (set_local 0x143 (i64.load offset=0x143 align=1 (i32.const 0))) - (set_local 0x144 (i64.load offset=0x144 align=1 (i32.const 0))) - (set_local 0x145 (i64.load offset=0x145 align=1 (i32.const 0))) - (set_local 0x146 (i64.load offset=0x146 align=1 (i32.const 0))) - (set_local 0x147 (i64.load offset=0x147 align=1 (i32.const 0))) - (set_local 0x148 (i64.load offset=0x148 align=1 (i32.const 0))) - (set_local 0x149 (i64.load offset=0x149 align=1 (i32.const 0))) - (set_local 0x14a (i64.load offset=0x14a align=1 (i32.const 0))) - (set_local 0x14b (i64.load offset=0x14b align=1 (i32.const 0))) - (set_local 0x14c (i64.load offset=0x14c align=1 (i32.const 0))) - (set_local 0x14d (i64.load offset=0x14d align=1 (i32.const 0))) - (set_local 0x14e (i64.load offset=0x14e align=1 (i32.const 0))) - (set_local 0x14f (i64.load offset=0x14f align=1 (i32.const 0))) - (set_local 0x150 (i64.load offset=0x150 align=1 (i32.const 0))) - (set_local 0x151 (i64.load offset=0x151 align=1 (i32.const 0))) - (set_local 0x152 (i64.load offset=0x152 align=1 (i32.const 0))) - (set_local 0x153 (i64.load offset=0x153 align=1 (i32.const 0))) - (set_local 0x154 (i64.load offset=0x154 align=1 (i32.const 0))) - (set_local 0x155 (i64.load offset=0x155 align=1 (i32.const 0))) - (set_local 0x156 (i64.load offset=0x156 align=1 (i32.const 0))) - (set_local 0x157 (i64.load offset=0x157 align=1 (i32.const 0))) - (set_local 0x158 (i64.load offset=0x158 align=1 (i32.const 0))) - (set_local 0x159 (i64.load offset=0x159 align=1 (i32.const 0))) - (set_local 0x15a (i64.load offset=0x15a align=1 (i32.const 0))) - (set_local 0x15b (i64.load offset=0x15b align=1 (i32.const 0))) - (set_local 0x15c (i64.load offset=0x15c align=1 (i32.const 0))) - (set_local 0x15d (i64.load offset=0x15d align=1 (i32.const 0))) - (set_local 0x15e (i64.load offset=0x15e align=1 (i32.const 0))) - (set_local 0x15f (i64.load offset=0x15f align=1 (i32.const 0))) - (set_local 0x160 (i64.load offset=0x160 align=1 (i32.const 0))) - (set_local 0x161 (i64.load offset=0x161 align=1 (i32.const 0))) - (set_local 0x162 (i64.load offset=0x162 align=1 (i32.const 0))) - (set_local 0x163 (i64.load offset=0x163 align=1 (i32.const 0))) - (set_local 0x164 (i64.load offset=0x164 align=1 (i32.const 0))) - (set_local 0x165 (i64.load offset=0x165 align=1 (i32.const 0))) - (set_local 0x166 (i64.load offset=0x166 align=1 (i32.const 0))) - (set_local 0x167 (i64.load offset=0x167 align=1 (i32.const 0))) - (set_local 0x168 (i64.load offset=0x168 align=1 (i32.const 0))) - (set_local 0x169 (i64.load offset=0x169 align=1 (i32.const 0))) - (set_local 0x16a (i64.load offset=0x16a align=1 (i32.const 0))) - (set_local 0x16b (i64.load offset=0x16b align=1 (i32.const 0))) - (set_local 0x16c (i64.load offset=0x16c align=1 (i32.const 0))) - (set_local 0x16d (i64.load offset=0x16d align=1 (i32.const 0))) - (set_local 0x16e (i64.load offset=0x16e align=1 (i32.const 0))) - (set_local 0x16f (i64.load offset=0x16f align=1 (i32.const 0))) - (set_local 0x170 (i64.load offset=0x170 align=1 (i32.const 0))) - (set_local 0x171 (i64.load offset=0x171 align=1 (i32.const 0))) - (set_local 0x172 (i64.load offset=0x172 align=1 (i32.const 0))) - (set_local 0x173 (i64.load offset=0x173 align=1 (i32.const 0))) - (set_local 0x174 (i64.load offset=0x174 align=1 (i32.const 0))) - (set_local 0x175 (i64.load offset=0x175 align=1 (i32.const 0))) - (set_local 0x176 (i64.load offset=0x176 align=1 (i32.const 0))) - (set_local 0x177 (i64.load offset=0x177 align=1 (i32.const 0))) - (set_local 0x178 (i64.load offset=0x178 align=1 (i32.const 0))) - (set_local 0x179 (i64.load offset=0x179 align=1 (i32.const 0))) - (set_local 0x17a (i64.load offset=0x17a align=1 (i32.const 0))) - (set_local 0x17b (i64.load offset=0x17b align=1 (i32.const 0))) - (set_local 0x17c (i64.load offset=0x17c align=1 (i32.const 0))) - (set_local 0x17d (i64.load offset=0x17d align=1 (i32.const 0))) - (set_local 0x17e (i64.load offset=0x17e align=1 (i32.const 0))) - (set_local 0x17f (i64.load offset=0x17f align=1 (i32.const 0))) - (set_local 0x180 (i64.load offset=0x180 align=1 (i32.const 0))) - (set_local 0x181 (i64.load offset=0x181 align=1 (i32.const 0))) - (set_local 0x182 (i64.load offset=0x182 align=1 (i32.const 0))) - (set_local 0x183 (i64.load offset=0x183 align=1 (i32.const 0))) - (set_local 0x184 (i64.load offset=0x184 align=1 (i32.const 0))) - (set_local 0x185 (i64.load offset=0x185 align=1 (i32.const 0))) - (set_local 0x186 (i64.load offset=0x186 align=1 (i32.const 0))) - (set_local 0x187 (i64.load offset=0x187 align=1 (i32.const 0))) - (set_local 0x188 (i64.load offset=0x188 align=1 (i32.const 0))) - (set_local 0x189 (i64.load offset=0x189 align=1 (i32.const 0))) - (set_local 0x18a (i64.load offset=0x18a align=1 (i32.const 0))) - (set_local 0x18b (i64.load offset=0x18b align=1 (i32.const 0))) - (set_local 0x18c (i64.load offset=0x18c align=1 (i32.const 0))) - (set_local 0x18d (i64.load offset=0x18d align=1 (i32.const 0))) - (set_local 0x18e (i64.load offset=0x18e align=1 (i32.const 0))) - (set_local 0x18f (i64.load offset=0x18f align=1 (i32.const 0))) - (set_local 0x190 (i64.load offset=0x190 align=1 (i32.const 0))) - (set_local 0x191 (i64.load offset=0x191 align=1 (i32.const 0))) - (set_local 0x192 (i64.load offset=0x192 align=1 (i32.const 0))) - (set_local 0x193 (i64.load offset=0x193 align=1 (i32.const 0))) - (set_local 0x194 (i64.load offset=0x194 align=1 (i32.const 0))) - (set_local 0x195 (i64.load offset=0x195 align=1 (i32.const 0))) - (set_local 0x196 (i64.load offset=0x196 align=1 (i32.const 0))) - (set_local 0x197 (i64.load offset=0x197 align=1 (i32.const 0))) - (set_local 0x198 (i64.load offset=0x198 align=1 (i32.const 0))) - (set_local 0x199 (i64.load offset=0x199 align=1 (i32.const 0))) - (set_local 0x19a (i64.load offset=0x19a align=1 (i32.const 0))) - (set_local 0x19b (i64.load offset=0x19b align=1 (i32.const 0))) - (set_local 0x19c (i64.load offset=0x19c align=1 (i32.const 0))) - (set_local 0x19d (i64.load offset=0x19d align=1 (i32.const 0))) - (set_local 0x19e (i64.load offset=0x19e align=1 (i32.const 0))) - (set_local 0x19f (i64.load offset=0x19f align=1 (i32.const 0))) - (set_local 0x1a0 (i64.load offset=0x1a0 align=1 (i32.const 0))) - (set_local 0x1a1 (i64.load offset=0x1a1 align=1 (i32.const 0))) - (set_local 0x1a2 (i64.load offset=0x1a2 align=1 (i32.const 0))) - (set_local 0x1a3 (i64.load offset=0x1a3 align=1 (i32.const 0))) - (set_local 0x1a4 (i64.load offset=0x1a4 align=1 (i32.const 0))) - (set_local 0x1a5 (i64.load offset=0x1a5 align=1 (i32.const 0))) - (set_local 0x1a6 (i64.load offset=0x1a6 align=1 (i32.const 0))) - (set_local 0x1a7 (i64.load offset=0x1a7 align=1 (i32.const 0))) - (set_local 0x1a8 (i64.load offset=0x1a8 align=1 (i32.const 0))) - (set_local 0x1a9 (i64.load offset=0x1a9 align=1 (i32.const 0))) - (set_local 0x1aa (i64.load offset=0x1aa align=1 (i32.const 0))) - (set_local 0x1ab (i64.load offset=0x1ab align=1 (i32.const 0))) - (set_local 0x1ac (i64.load offset=0x1ac align=1 (i32.const 0))) - (set_local 0x1ad (i64.load offset=0x1ad align=1 (i32.const 0))) - (set_local 0x1ae (i64.load offset=0x1ae align=1 (i32.const 0))) - (set_local 0x1af (i64.load offset=0x1af align=1 (i32.const 0))) - (set_local 0x1b0 (i64.load offset=0x1b0 align=1 (i32.const 0))) - (set_local 0x1b1 (i64.load offset=0x1b1 align=1 (i32.const 0))) - (set_local 0x1b2 (i64.load offset=0x1b2 align=1 (i32.const 0))) - (set_local 0x1b3 (i64.load offset=0x1b3 align=1 (i32.const 0))) - (set_local 0x1b4 (i64.load offset=0x1b4 align=1 (i32.const 0))) - (set_local 0x1b5 (i64.load offset=0x1b5 align=1 (i32.const 0))) - (set_local 0x1b6 (i64.load offset=0x1b6 align=1 (i32.const 0))) - (set_local 0x1b7 (i64.load offset=0x1b7 align=1 (i32.const 0))) - (set_local 0x1b8 (i64.load offset=0x1b8 align=1 (i32.const 0))) - (set_local 0x1b9 (i64.load offset=0x1b9 align=1 (i32.const 0))) - (set_local 0x1ba (i64.load offset=0x1ba align=1 (i32.const 0))) - (set_local 0x1bb (i64.load offset=0x1bb align=1 (i32.const 0))) - (set_local 0x1bc (i64.load offset=0x1bc align=1 (i32.const 0))) - (set_local 0x1bd (i64.load offset=0x1bd align=1 (i32.const 0))) - (set_local 0x1be (i64.load offset=0x1be align=1 (i32.const 0))) - (set_local 0x1bf (i64.load offset=0x1bf align=1 (i32.const 0))) - (set_local 0x1c0 (i64.load offset=0x1c0 align=1 (i32.const 0))) - (set_local 0x1c1 (i64.load offset=0x1c1 align=1 (i32.const 0))) - (set_local 0x1c2 (i64.load offset=0x1c2 align=1 (i32.const 0))) - (set_local 0x1c3 (i64.load offset=0x1c3 align=1 (i32.const 0))) - (set_local 0x1c4 (i64.load offset=0x1c4 align=1 (i32.const 0))) - (set_local 0x1c5 (i64.load offset=0x1c5 align=1 (i32.const 0))) - (set_local 0x1c6 (i64.load offset=0x1c6 align=1 (i32.const 0))) - (set_local 0x1c7 (i64.load offset=0x1c7 align=1 (i32.const 0))) - (set_local 0x1c8 (i64.load offset=0x1c8 align=1 (i32.const 0))) - (set_local 0x1c9 (i64.load offset=0x1c9 align=1 (i32.const 0))) - (set_local 0x1ca (i64.load offset=0x1ca align=1 (i32.const 0))) - (set_local 0x1cb (i64.load offset=0x1cb align=1 (i32.const 0))) - (set_local 0x1cc (i64.load offset=0x1cc align=1 (i32.const 0))) - (set_local 0x1cd (i64.load offset=0x1cd align=1 (i32.const 0))) - (set_local 0x1ce (i64.load offset=0x1ce align=1 (i32.const 0))) - (set_local 0x1cf (i64.load offset=0x1cf align=1 (i32.const 0))) - (set_local 0x1d0 (i64.load offset=0x1d0 align=1 (i32.const 0))) - (set_local 0x1d1 (i64.load offset=0x1d1 align=1 (i32.const 0))) - (set_local 0x1d2 (i64.load offset=0x1d2 align=1 (i32.const 0))) - (set_local 0x1d3 (i64.load offset=0x1d3 align=1 (i32.const 0))) - (set_local 0x1d4 (i64.load offset=0x1d4 align=1 (i32.const 0))) - (set_local 0x1d5 (i64.load offset=0x1d5 align=1 (i32.const 0))) - (set_local 0x1d6 (i64.load offset=0x1d6 align=1 (i32.const 0))) - (set_local 0x1d7 (i64.load offset=0x1d7 align=1 (i32.const 0))) - (set_local 0x1d8 (i64.load offset=0x1d8 align=1 (i32.const 0))) - (set_local 0x1d9 (i64.load offset=0x1d9 align=1 (i32.const 0))) - (set_local 0x1da (i64.load offset=0x1da align=1 (i32.const 0))) - (set_local 0x1db (i64.load offset=0x1db align=1 (i32.const 0))) - (set_local 0x1dc (i64.load offset=0x1dc align=1 (i32.const 0))) - (set_local 0x1dd (i64.load offset=0x1dd align=1 (i32.const 0))) - (set_local 0x1de (i64.load offset=0x1de align=1 (i32.const 0))) - (set_local 0x1df (i64.load offset=0x1df align=1 (i32.const 0))) - (set_local 0x1e0 (i64.load offset=0x1e0 align=1 (i32.const 0))) - (set_local 0x1e1 (i64.load offset=0x1e1 align=1 (i32.const 0))) - (set_local 0x1e2 (i64.load offset=0x1e2 align=1 (i32.const 0))) - (set_local 0x1e3 (i64.load offset=0x1e3 align=1 (i32.const 0))) - (set_local 0x1e4 (i64.load offset=0x1e4 align=1 (i32.const 0))) - (set_local 0x1e5 (i64.load offset=0x1e5 align=1 (i32.const 0))) - (set_local 0x1e6 (i64.load offset=0x1e6 align=1 (i32.const 0))) - (set_local 0x1e7 (i64.load offset=0x1e7 align=1 (i32.const 0))) - (set_local 0x1e8 (i64.load offset=0x1e8 align=1 (i32.const 0))) - (set_local 0x1e9 (i64.load offset=0x1e9 align=1 (i32.const 0))) - (set_local 0x1ea (i64.load offset=0x1ea align=1 (i32.const 0))) - (set_local 0x1eb (i64.load offset=0x1eb align=1 (i32.const 0))) - (set_local 0x1ec (i64.load offset=0x1ec align=1 (i32.const 0))) - (set_local 0x1ed (i64.load offset=0x1ed align=1 (i32.const 0))) - (set_local 0x1ee (i64.load offset=0x1ee align=1 (i32.const 0))) - (set_local 0x1ef (i64.load offset=0x1ef align=1 (i32.const 0))) - (set_local 0x1f0 (i64.load offset=0x1f0 align=1 (i32.const 0))) - (set_local 0x1f1 (i64.load offset=0x1f1 align=1 (i32.const 0))) - (set_local 0x1f2 (i64.load offset=0x1f2 align=1 (i32.const 0))) - (set_local 0x1f3 (i64.load offset=0x1f3 align=1 (i32.const 0))) - (set_local 0x1f4 (i64.load offset=0x1f4 align=1 (i32.const 0))) - (set_local 0x1f5 (i64.load offset=0x1f5 align=1 (i32.const 0))) - (set_local 0x1f6 (i64.load offset=0x1f6 align=1 (i32.const 0))) - (set_local 0x1f7 (i64.load offset=0x1f7 align=1 (i32.const 0))) - (set_local 0x1f8 (i64.load offset=0x1f8 align=1 (i32.const 0))) - (set_local 0x1f9 (i64.load offset=0x1f9 align=1 (i32.const 0))) - (set_local 0x1fa (i64.load offset=0x1fa align=1 (i32.const 0))) - (set_local 0x1fb (i64.load offset=0x1fb align=1 (i32.const 0))) - (set_local 0x1fc (i64.load offset=0x1fc align=1 (i32.const 0))) - (set_local 0x1fd (i64.load offset=0x1fd align=1 (i32.const 0))) - (set_local 0x1fe (i64.load offset=0x1fe align=1 (i32.const 0))) - (set_local 0x1ff (i64.load offset=0x1ff align=1 (i32.const 0))) - (set_local 0x200 (i64.load offset=0x200 align=1 (i32.const 0))) - (set_local 0x201 (i64.load offset=0x201 align=1 (i32.const 0))) - (set_local 0x202 (i64.load offset=0x202 align=1 (i32.const 0))) - (set_local 0x203 (i64.load offset=0x203 align=1 (i32.const 0))) - (set_local 0x204 (i64.load offset=0x204 align=1 (i32.const 0))) - (set_local 0x205 (i64.load offset=0x205 align=1 (i32.const 0))) - (set_local 0x206 (i64.load offset=0x206 align=1 (i32.const 0))) - (set_local 0x207 (i64.load offset=0x207 align=1 (i32.const 0))) - (set_local 0x208 (i64.load offset=0x208 align=1 (i32.const 0))) - (set_local 0x209 (i64.load offset=0x209 align=1 (i32.const 0))) - (set_local 0x20a (i64.load offset=0x20a align=1 (i32.const 0))) - (set_local 0x20b (i64.load offset=0x20b align=1 (i32.const 0))) - (set_local 0x20c (i64.load offset=0x20c align=1 (i32.const 0))) - (set_local 0x20d (i64.load offset=0x20d align=1 (i32.const 0))) - (set_local 0x20e (i64.load offset=0x20e align=1 (i32.const 0))) - (set_local 0x20f (i64.load offset=0x20f align=1 (i32.const 0))) - (set_local 0x210 (i64.load offset=0x210 align=1 (i32.const 0))) - (set_local 0x211 (i64.load offset=0x211 align=1 (i32.const 0))) - (set_local 0x212 (i64.load offset=0x212 align=1 (i32.const 0))) - (set_local 0x213 (i64.load offset=0x213 align=1 (i32.const 0))) - (set_local 0x214 (i64.load offset=0x214 align=1 (i32.const 0))) - (set_local 0x215 (i64.load offset=0x215 align=1 (i32.const 0))) - (set_local 0x216 (i64.load offset=0x216 align=1 (i32.const 0))) - (set_local 0x217 (i64.load offset=0x217 align=1 (i32.const 0))) - (set_local 0x218 (i64.load offset=0x218 align=1 (i32.const 0))) - (set_local 0x219 (i64.load offset=0x219 align=1 (i32.const 0))) - (set_local 0x21a (i64.load offset=0x21a align=1 (i32.const 0))) - (set_local 0x21b (i64.load offset=0x21b align=1 (i32.const 0))) - (set_local 0x21c (i64.load offset=0x21c align=1 (i32.const 0))) - (set_local 0x21d (i64.load offset=0x21d align=1 (i32.const 0))) - (set_local 0x21e (i64.load offset=0x21e align=1 (i32.const 0))) - (set_local 0x21f (i64.load offset=0x21f align=1 (i32.const 0))) - (set_local 0x220 (i64.load offset=0x220 align=1 (i32.const 0))) - (set_local 0x221 (i64.load offset=0x221 align=1 (i32.const 0))) - (set_local 0x222 (i64.load offset=0x222 align=1 (i32.const 0))) - (set_local 0x223 (i64.load offset=0x223 align=1 (i32.const 0))) - (set_local 0x224 (i64.load offset=0x224 align=1 (i32.const 0))) - (set_local 0x225 (i64.load offset=0x225 align=1 (i32.const 0))) - (set_local 0x226 (i64.load offset=0x226 align=1 (i32.const 0))) - (set_local 0x227 (i64.load offset=0x227 align=1 (i32.const 0))) - (set_local 0x228 (i64.load offset=0x228 align=1 (i32.const 0))) - (set_local 0x229 (i64.load offset=0x229 align=1 (i32.const 0))) - (set_local 0x22a (i64.load offset=0x22a align=1 (i32.const 0))) - (set_local 0x22b (i64.load offset=0x22b align=1 (i32.const 0))) - (set_local 0x22c (i64.load offset=0x22c align=1 (i32.const 0))) - (set_local 0x22d (i64.load offset=0x22d align=1 (i32.const 0))) - (set_local 0x22e (i64.load offset=0x22e align=1 (i32.const 0))) - (set_local 0x22f (i64.load offset=0x22f align=1 (i32.const 0))) - (set_local 0x230 (i64.load offset=0x230 align=1 (i32.const 0))) - (set_local 0x231 (i64.load offset=0x231 align=1 (i32.const 0))) - (set_local 0x232 (i64.load offset=0x232 align=1 (i32.const 0))) - (set_local 0x233 (i64.load offset=0x233 align=1 (i32.const 0))) - (set_local 0x234 (i64.load offset=0x234 align=1 (i32.const 0))) - (set_local 0x235 (i64.load offset=0x235 align=1 (i32.const 0))) - (set_local 0x236 (i64.load offset=0x236 align=1 (i32.const 0))) - (set_local 0x237 (i64.load offset=0x237 align=1 (i32.const 0))) - (set_local 0x238 (i64.load offset=0x238 align=1 (i32.const 0))) - (set_local 0x239 (i64.load offset=0x239 align=1 (i32.const 0))) - (set_local 0x23a (i64.load offset=0x23a align=1 (i32.const 0))) - (set_local 0x23b (i64.load offset=0x23b align=1 (i32.const 0))) - (set_local 0x23c (i64.load offset=0x23c align=1 (i32.const 0))) - (set_local 0x23d (i64.load offset=0x23d align=1 (i32.const 0))) - (set_local 0x23e (i64.load offset=0x23e align=1 (i32.const 0))) - (set_local 0x23f (i64.load offset=0x23f align=1 (i32.const 0))) - (set_local 0x240 (i64.load offset=0x240 align=1 (i32.const 0))) - (set_local 0x241 (i64.load offset=0x241 align=1 (i32.const 0))) - (set_local 0x242 (i64.load offset=0x242 align=1 (i32.const 0))) - (set_local 0x243 (i64.load offset=0x243 align=1 (i32.const 0))) - (set_local 0x244 (i64.load offset=0x244 align=1 (i32.const 0))) - (set_local 0x245 (i64.load offset=0x245 align=1 (i32.const 0))) - (set_local 0x246 (i64.load offset=0x246 align=1 (i32.const 0))) - (set_local 0x247 (i64.load offset=0x247 align=1 (i32.const 0))) - (set_local 0x248 (i64.load offset=0x248 align=1 (i32.const 0))) - (set_local 0x249 (i64.load offset=0x249 align=1 (i32.const 0))) - (set_local 0x24a (i64.load offset=0x24a align=1 (i32.const 0))) - (set_local 0x24b (i64.load offset=0x24b align=1 (i32.const 0))) - (set_local 0x24c (i64.load offset=0x24c align=1 (i32.const 0))) - (set_local 0x24d (i64.load offset=0x24d align=1 (i32.const 0))) - (set_local 0x24e (i64.load offset=0x24e align=1 (i32.const 0))) - (set_local 0x24f (i64.load offset=0x24f align=1 (i32.const 0))) - (set_local 0x250 (i64.load offset=0x250 align=1 (i32.const 0))) - (set_local 0x251 (i64.load offset=0x251 align=1 (i32.const 0))) - (set_local 0x252 (i64.load offset=0x252 align=1 (i32.const 0))) - (set_local 0x253 (i64.load offset=0x253 align=1 (i32.const 0))) - (set_local 0x254 (i64.load offset=0x254 align=1 (i32.const 0))) - (set_local 0x255 (i64.load offset=0x255 align=1 (i32.const 0))) - (set_local 0x256 (i64.load offset=0x256 align=1 (i32.const 0))) - (set_local 0x257 (i64.load offset=0x257 align=1 (i32.const 0))) - (set_local 0x258 (i64.load offset=0x258 align=1 (i32.const 0))) - (set_local 0x259 (i64.load offset=0x259 align=1 (i32.const 0))) - (set_local 0x25a (i64.load offset=0x25a align=1 (i32.const 0))) - (set_local 0x25b (i64.load offset=0x25b align=1 (i32.const 0))) - (set_local 0x25c (i64.load offset=0x25c align=1 (i32.const 0))) - (set_local 0x25d (i64.load offset=0x25d align=1 (i32.const 0))) - (set_local 0x25e (i64.load offset=0x25e align=1 (i32.const 0))) - (set_local 0x25f (i64.load offset=0x25f align=1 (i32.const 0))) - (set_local 0x260 (i64.load offset=0x260 align=1 (i32.const 0))) - (set_local 0x261 (i64.load offset=0x261 align=1 (i32.const 0))) - (set_local 0x262 (i64.load offset=0x262 align=1 (i32.const 0))) - (set_local 0x263 (i64.load offset=0x263 align=1 (i32.const 0))) - (set_local 0x264 (i64.load offset=0x264 align=1 (i32.const 0))) - (set_local 0x265 (i64.load offset=0x265 align=1 (i32.const 0))) - (set_local 0x266 (i64.load offset=0x266 align=1 (i32.const 0))) - (set_local 0x267 (i64.load offset=0x267 align=1 (i32.const 0))) - (set_local 0x268 (i64.load offset=0x268 align=1 (i32.const 0))) - (set_local 0x269 (i64.load offset=0x269 align=1 (i32.const 0))) - (set_local 0x26a (i64.load offset=0x26a align=1 (i32.const 0))) - (set_local 0x26b (i64.load offset=0x26b align=1 (i32.const 0))) - (set_local 0x26c (i64.load offset=0x26c align=1 (i32.const 0))) - (set_local 0x26d (i64.load offset=0x26d align=1 (i32.const 0))) - (set_local 0x26e (i64.load offset=0x26e align=1 (i32.const 0))) - (set_local 0x26f (i64.load offset=0x26f align=1 (i32.const 0))) - (set_local 0x270 (i64.load offset=0x270 align=1 (i32.const 0))) - (set_local 0x271 (i64.load offset=0x271 align=1 (i32.const 0))) - (set_local 0x272 (i64.load offset=0x272 align=1 (i32.const 0))) - (set_local 0x273 (i64.load offset=0x273 align=1 (i32.const 0))) - (set_local 0x274 (i64.load offset=0x274 align=1 (i32.const 0))) - (set_local 0x275 (i64.load offset=0x275 align=1 (i32.const 0))) - (set_local 0x276 (i64.load offset=0x276 align=1 (i32.const 0))) - (set_local 0x277 (i64.load offset=0x277 align=1 (i32.const 0))) - (set_local 0x278 (i64.load offset=0x278 align=1 (i32.const 0))) - (set_local 0x279 (i64.load offset=0x279 align=1 (i32.const 0))) - (set_local 0x27a (i64.load offset=0x27a align=1 (i32.const 0))) - (set_local 0x27b (i64.load offset=0x27b align=1 (i32.const 0))) - (set_local 0x27c (i64.load offset=0x27c align=1 (i32.const 0))) - (set_local 0x27d (i64.load offset=0x27d align=1 (i32.const 0))) - (set_local 0x27e (i64.load offset=0x27e align=1 (i32.const 0))) - (set_local 0x27f (i64.load offset=0x27f align=1 (i32.const 0))) - (set_local 0x280 (i64.load offset=0x280 align=1 (i32.const 0))) - (set_local 0x281 (i64.load offset=0x281 align=1 (i32.const 0))) - (set_local 0x282 (i64.load offset=0x282 align=1 (i32.const 0))) - (set_local 0x283 (i64.load offset=0x283 align=1 (i32.const 0))) - (set_local 0x284 (i64.load offset=0x284 align=1 (i32.const 0))) - (set_local 0x285 (i64.load offset=0x285 align=1 (i32.const 0))) - (set_local 0x286 (i64.load offset=0x286 align=1 (i32.const 0))) - (set_local 0x287 (i64.load offset=0x287 align=1 (i32.const 0))) - (set_local 0x288 (i64.load offset=0x288 align=1 (i32.const 0))) - (set_local 0x289 (i64.load offset=0x289 align=1 (i32.const 0))) - (set_local 0x28a (i64.load offset=0x28a align=1 (i32.const 0))) - (set_local 0x28b (i64.load offset=0x28b align=1 (i32.const 0))) - (set_local 0x28c (i64.load offset=0x28c align=1 (i32.const 0))) - (set_local 0x28d (i64.load offset=0x28d align=1 (i32.const 0))) - (set_local 0x28e (i64.load offset=0x28e align=1 (i32.const 0))) - (set_local 0x28f (i64.load offset=0x28f align=1 (i32.const 0))) - (set_local 0x290 (i64.load offset=0x290 align=1 (i32.const 0))) - (set_local 0x291 (i64.load offset=0x291 align=1 (i32.const 0))) - (set_local 0x292 (i64.load offset=0x292 align=1 (i32.const 0))) - (set_local 0x293 (i64.load offset=0x293 align=1 (i32.const 0))) - (set_local 0x294 (i64.load offset=0x294 align=1 (i32.const 0))) - (set_local 0x295 (i64.load offset=0x295 align=1 (i32.const 0))) - (set_local 0x296 (i64.load offset=0x296 align=1 (i32.const 0))) - (set_local 0x297 (i64.load offset=0x297 align=1 (i32.const 0))) - (set_local 0x298 (i64.load offset=0x298 align=1 (i32.const 0))) - (set_local 0x299 (i64.load offset=0x299 align=1 (i32.const 0))) - (set_local 0x29a (i64.load offset=0x29a align=1 (i32.const 0))) - (set_local 0x29b (i64.load offset=0x29b align=1 (i32.const 0))) - (set_local 0x29c (i64.load offset=0x29c align=1 (i32.const 0))) - (set_local 0x29d (i64.load offset=0x29d align=1 (i32.const 0))) - (set_local 0x29e (i64.load offset=0x29e align=1 (i32.const 0))) - (set_local 0x29f (i64.load offset=0x29f align=1 (i32.const 0))) - (set_local 0x2a0 (i64.load offset=0x2a0 align=1 (i32.const 0))) - (set_local 0x2a1 (i64.load offset=0x2a1 align=1 (i32.const 0))) - (set_local 0x2a2 (i64.load offset=0x2a2 align=1 (i32.const 0))) - (set_local 0x2a3 (i64.load offset=0x2a3 align=1 (i32.const 0))) - (set_local 0x2a4 (i64.load offset=0x2a4 align=1 (i32.const 0))) - (set_local 0x2a5 (i64.load offset=0x2a5 align=1 (i32.const 0))) - (set_local 0x2a6 (i64.load offset=0x2a6 align=1 (i32.const 0))) - (set_local 0x2a7 (i64.load offset=0x2a7 align=1 (i32.const 0))) - (set_local 0x2a8 (i64.load offset=0x2a8 align=1 (i32.const 0))) - (set_local 0x2a9 (i64.load offset=0x2a9 align=1 (i32.const 0))) - (set_local 0x2aa (i64.load offset=0x2aa align=1 (i32.const 0))) - (set_local 0x2ab (i64.load offset=0x2ab align=1 (i32.const 0))) - (set_local 0x2ac (i64.load offset=0x2ac align=1 (i32.const 0))) - (set_local 0x2ad (i64.load offset=0x2ad align=1 (i32.const 0))) - (set_local 0x2ae (i64.load offset=0x2ae align=1 (i32.const 0))) - (set_local 0x2af (i64.load offset=0x2af align=1 (i32.const 0))) - (set_local 0x2b0 (i64.load offset=0x2b0 align=1 (i32.const 0))) - (set_local 0x2b1 (i64.load offset=0x2b1 align=1 (i32.const 0))) - (set_local 0x2b2 (i64.load offset=0x2b2 align=1 (i32.const 0))) - (set_local 0x2b3 (i64.load offset=0x2b3 align=1 (i32.const 0))) - (set_local 0x2b4 (i64.load offset=0x2b4 align=1 (i32.const 0))) - (set_local 0x2b5 (i64.load offset=0x2b5 align=1 (i32.const 0))) - (set_local 0x2b6 (i64.load offset=0x2b6 align=1 (i32.const 0))) - (set_local 0x2b7 (i64.load offset=0x2b7 align=1 (i32.const 0))) - (set_local 0x2b8 (i64.load offset=0x2b8 align=1 (i32.const 0))) - (set_local 0x2b9 (i64.load offset=0x2b9 align=1 (i32.const 0))) - (set_local 0x2ba (i64.load offset=0x2ba align=1 (i32.const 0))) - (set_local 0x2bb (i64.load offset=0x2bb align=1 (i32.const 0))) - (set_local 0x2bc (i64.load offset=0x2bc align=1 (i32.const 0))) - (set_local 0x2bd (i64.load offset=0x2bd align=1 (i32.const 0))) - (set_local 0x2be (i64.load offset=0x2be align=1 (i32.const 0))) - (set_local 0x2bf (i64.load offset=0x2bf align=1 (i32.const 0))) - (set_local 0x2c0 (i64.load offset=0x2c0 align=1 (i32.const 0))) - (set_local 0x2c1 (i64.load offset=0x2c1 align=1 (i32.const 0))) - (set_local 0x2c2 (i64.load offset=0x2c2 align=1 (i32.const 0))) - (set_local 0x2c3 (i64.load offset=0x2c3 align=1 (i32.const 0))) - (set_local 0x2c4 (i64.load offset=0x2c4 align=1 (i32.const 0))) - (set_local 0x2c5 (i64.load offset=0x2c5 align=1 (i32.const 0))) - (set_local 0x2c6 (i64.load offset=0x2c6 align=1 (i32.const 0))) - (set_local 0x2c7 (i64.load offset=0x2c7 align=1 (i32.const 0))) - (set_local 0x2c8 (i64.load offset=0x2c8 align=1 (i32.const 0))) - (set_local 0x2c9 (i64.load offset=0x2c9 align=1 (i32.const 0))) - (set_local 0x2ca (i64.load offset=0x2ca align=1 (i32.const 0))) - (set_local 0x2cb (i64.load offset=0x2cb align=1 (i32.const 0))) - (set_local 0x2cc (i64.load offset=0x2cc align=1 (i32.const 0))) - (set_local 0x2cd (i64.load offset=0x2cd align=1 (i32.const 0))) - (set_local 0x2ce (i64.load offset=0x2ce align=1 (i32.const 0))) - (set_local 0x2cf (i64.load offset=0x2cf align=1 (i32.const 0))) - (set_local 0x2d0 (i64.load offset=0x2d0 align=1 (i32.const 0))) - (set_local 0x2d1 (i64.load offset=0x2d1 align=1 (i32.const 0))) - (set_local 0x2d2 (i64.load offset=0x2d2 align=1 (i32.const 0))) - (set_local 0x2d3 (i64.load offset=0x2d3 align=1 (i32.const 0))) - (set_local 0x2d4 (i64.load offset=0x2d4 align=1 (i32.const 0))) - (set_local 0x2d5 (i64.load offset=0x2d5 align=1 (i32.const 0))) - (set_local 0x2d6 (i64.load offset=0x2d6 align=1 (i32.const 0))) - (set_local 0x2d7 (i64.load offset=0x2d7 align=1 (i32.const 0))) - (set_local 0x2d8 (i64.load offset=0x2d8 align=1 (i32.const 0))) - (set_local 0x2d9 (i64.load offset=0x2d9 align=1 (i32.const 0))) - (set_local 0x2da (i64.load offset=0x2da align=1 (i32.const 0))) - (set_local 0x2db (i64.load offset=0x2db align=1 (i32.const 0))) - (set_local 0x2dc (i64.load offset=0x2dc align=1 (i32.const 0))) - (set_local 0x2dd (i64.load offset=0x2dd align=1 (i32.const 0))) - (set_local 0x2de (i64.load offset=0x2de align=1 (i32.const 0))) - (set_local 0x2df (i64.load offset=0x2df align=1 (i32.const 0))) - (set_local 0x2e0 (i64.load offset=0x2e0 align=1 (i32.const 0))) - (set_local 0x2e1 (i64.load offset=0x2e1 align=1 (i32.const 0))) - (set_local 0x2e2 (i64.load offset=0x2e2 align=1 (i32.const 0))) - (set_local 0x2e3 (i64.load offset=0x2e3 align=1 (i32.const 0))) - (set_local 0x2e4 (i64.load offset=0x2e4 align=1 (i32.const 0))) - (set_local 0x2e5 (i64.load offset=0x2e5 align=1 (i32.const 0))) - (set_local 0x2e6 (i64.load offset=0x2e6 align=1 (i32.const 0))) - (set_local 0x2e7 (i64.load offset=0x2e7 align=1 (i32.const 0))) - (set_local 0x2e8 (i64.load offset=0x2e8 align=1 (i32.const 0))) - (set_local 0x2e9 (i64.load offset=0x2e9 align=1 (i32.const 0))) - (set_local 0x2ea (i64.load offset=0x2ea align=1 (i32.const 0))) - (set_local 0x2eb (i64.load offset=0x2eb align=1 (i32.const 0))) - (set_local 0x2ec (i64.load offset=0x2ec align=1 (i32.const 0))) - (set_local 0x2ed (i64.load offset=0x2ed align=1 (i32.const 0))) - (set_local 0x2ee (i64.load offset=0x2ee align=1 (i32.const 0))) - (set_local 0x2ef (i64.load offset=0x2ef align=1 (i32.const 0))) - (set_local 0x2f0 (i64.load offset=0x2f0 align=1 (i32.const 0))) - (set_local 0x2f1 (i64.load offset=0x2f1 align=1 (i32.const 0))) - (set_local 0x2f2 (i64.load offset=0x2f2 align=1 (i32.const 0))) - (set_local 0x2f3 (i64.load offset=0x2f3 align=1 (i32.const 0))) - (set_local 0x2f4 (i64.load offset=0x2f4 align=1 (i32.const 0))) - (set_local 0x2f5 (i64.load offset=0x2f5 align=1 (i32.const 0))) - (set_local 0x2f6 (i64.load offset=0x2f6 align=1 (i32.const 0))) - (set_local 0x2f7 (i64.load offset=0x2f7 align=1 (i32.const 0))) - (set_local 0x2f8 (i64.load offset=0x2f8 align=1 (i32.const 0))) - (set_local 0x2f9 (i64.load offset=0x2f9 align=1 (i32.const 0))) - (set_local 0x2fa (i64.load offset=0x2fa align=1 (i32.const 0))) - (set_local 0x2fb (i64.load offset=0x2fb align=1 (i32.const 0))) - (set_local 0x2fc (i64.load offset=0x2fc align=1 (i32.const 0))) - (set_local 0x2fd (i64.load offset=0x2fd align=1 (i32.const 0))) - (set_local 0x2fe (i64.load offset=0x2fe align=1 (i32.const 0))) - (set_local 0x2ff (i64.load offset=0x2ff align=1 (i32.const 0))) - (set_local 0x300 (i64.load offset=0x300 align=1 (i32.const 0))) - (set_local 0x301 (i64.load offset=0x301 align=1 (i32.const 0))) - (set_local 0x302 (i64.load offset=0x302 align=1 (i32.const 0))) - (set_local 0x303 (i64.load offset=0x303 align=1 (i32.const 0))) - (set_local 0x304 (i64.load offset=0x304 align=1 (i32.const 0))) - (set_local 0x305 (i64.load offset=0x305 align=1 (i32.const 0))) - (set_local 0x306 (i64.load offset=0x306 align=1 (i32.const 0))) - (set_local 0x307 (i64.load offset=0x307 align=1 (i32.const 0))) - (set_local 0x308 (i64.load offset=0x308 align=1 (i32.const 0))) - (set_local 0x309 (i64.load offset=0x309 align=1 (i32.const 0))) - (set_local 0x30a (i64.load offset=0x30a align=1 (i32.const 0))) - (set_local 0x30b (i64.load offset=0x30b align=1 (i32.const 0))) - (set_local 0x30c (i64.load offset=0x30c align=1 (i32.const 0))) - (set_local 0x30d (i64.load offset=0x30d align=1 (i32.const 0))) - (set_local 0x30e (i64.load offset=0x30e align=1 (i32.const 0))) - (set_local 0x30f (i64.load offset=0x30f align=1 (i32.const 0))) - (set_local 0x310 (i64.load offset=0x310 align=1 (i32.const 0))) - (set_local 0x311 (i64.load offset=0x311 align=1 (i32.const 0))) - (set_local 0x312 (i64.load offset=0x312 align=1 (i32.const 0))) - (set_local 0x313 (i64.load offset=0x313 align=1 (i32.const 0))) - (set_local 0x314 (i64.load offset=0x314 align=1 (i32.const 0))) - (set_local 0x315 (i64.load offset=0x315 align=1 (i32.const 0))) - (set_local 0x316 (i64.load offset=0x316 align=1 (i32.const 0))) - (set_local 0x317 (i64.load offset=0x317 align=1 (i32.const 0))) - (set_local 0x318 (i64.load offset=0x318 align=1 (i32.const 0))) - (set_local 0x319 (i64.load offset=0x319 align=1 (i32.const 0))) - (set_local 0x31a (i64.load offset=0x31a align=1 (i32.const 0))) - (set_local 0x31b (i64.load offset=0x31b align=1 (i32.const 0))) - (set_local 0x31c (i64.load offset=0x31c align=1 (i32.const 0))) - (set_local 0x31d (i64.load offset=0x31d align=1 (i32.const 0))) - (set_local 0x31e (i64.load offset=0x31e align=1 (i32.const 0))) - (set_local 0x31f (i64.load offset=0x31f align=1 (i32.const 0))) - (set_local 0x320 (i64.load offset=0x320 align=1 (i32.const 0))) - (set_local 0x321 (i64.load offset=0x321 align=1 (i32.const 0))) - (set_local 0x322 (i64.load offset=0x322 align=1 (i32.const 0))) - (set_local 0x323 (i64.load offset=0x323 align=1 (i32.const 0))) - (set_local 0x324 (i64.load offset=0x324 align=1 (i32.const 0))) - (set_local 0x325 (i64.load offset=0x325 align=1 (i32.const 0))) - (set_local 0x326 (i64.load offset=0x326 align=1 (i32.const 0))) - (set_local 0x327 (i64.load offset=0x327 align=1 (i32.const 0))) - (set_local 0x328 (i64.load offset=0x328 align=1 (i32.const 0))) - (set_local 0x329 (i64.load offset=0x329 align=1 (i32.const 0))) - (set_local 0x32a (i64.load offset=0x32a align=1 (i32.const 0))) - (set_local 0x32b (i64.load offset=0x32b align=1 (i32.const 0))) - (set_local 0x32c (i64.load offset=0x32c align=1 (i32.const 0))) - (set_local 0x32d (i64.load offset=0x32d align=1 (i32.const 0))) - (set_local 0x32e (i64.load offset=0x32e align=1 (i32.const 0))) - (set_local 0x32f (i64.load offset=0x32f align=1 (i32.const 0))) - (set_local 0x330 (i64.load offset=0x330 align=1 (i32.const 0))) - (set_local 0x331 (i64.load offset=0x331 align=1 (i32.const 0))) - (set_local 0x332 (i64.load offset=0x332 align=1 (i32.const 0))) - (set_local 0x333 (i64.load offset=0x333 align=1 (i32.const 0))) - (set_local 0x334 (i64.load offset=0x334 align=1 (i32.const 0))) - (set_local 0x335 (i64.load offset=0x335 align=1 (i32.const 0))) - (set_local 0x336 (i64.load offset=0x336 align=1 (i32.const 0))) - (set_local 0x337 (i64.load offset=0x337 align=1 (i32.const 0))) - (set_local 0x338 (i64.load offset=0x338 align=1 (i32.const 0))) - (set_local 0x339 (i64.load offset=0x339 align=1 (i32.const 0))) - (set_local 0x33a (i64.load offset=0x33a align=1 (i32.const 0))) - (set_local 0x33b (i64.load offset=0x33b align=1 (i32.const 0))) - (set_local 0x33c (i64.load offset=0x33c align=1 (i32.const 0))) - (set_local 0x33d (i64.load offset=0x33d align=1 (i32.const 0))) - (set_local 0x33e (i64.load offset=0x33e align=1 (i32.const 0))) - (set_local 0x33f (i64.load offset=0x33f align=1 (i32.const 0))) - (set_local 0x340 (i64.load offset=0x340 align=1 (i32.const 0))) - (set_local 0x341 (i64.load offset=0x341 align=1 (i32.const 0))) - (set_local 0x342 (i64.load offset=0x342 align=1 (i32.const 0))) - (set_local 0x343 (i64.load offset=0x343 align=1 (i32.const 0))) - (set_local 0x344 (i64.load offset=0x344 align=1 (i32.const 0))) - (set_local 0x345 (i64.load offset=0x345 align=1 (i32.const 0))) - (set_local 0x346 (i64.load offset=0x346 align=1 (i32.const 0))) - (set_local 0x347 (i64.load offset=0x347 align=1 (i32.const 0))) - (set_local 0x348 (i64.load offset=0x348 align=1 (i32.const 0))) - (set_local 0x349 (i64.load offset=0x349 align=1 (i32.const 0))) - (set_local 0x34a (i64.load offset=0x34a align=1 (i32.const 0))) - (set_local 0x34b (i64.load offset=0x34b align=1 (i32.const 0))) - (set_local 0x34c (i64.load offset=0x34c align=1 (i32.const 0))) - (set_local 0x34d (i64.load offset=0x34d align=1 (i32.const 0))) - (set_local 0x34e (i64.load offset=0x34e align=1 (i32.const 0))) - (set_local 0x34f (i64.load offset=0x34f align=1 (i32.const 0))) - (set_local 0x350 (i64.load offset=0x350 align=1 (i32.const 0))) - (set_local 0x351 (i64.load offset=0x351 align=1 (i32.const 0))) - (set_local 0x352 (i64.load offset=0x352 align=1 (i32.const 0))) - (set_local 0x353 (i64.load offset=0x353 align=1 (i32.const 0))) - (set_local 0x354 (i64.load offset=0x354 align=1 (i32.const 0))) - (set_local 0x355 (i64.load offset=0x355 align=1 (i32.const 0))) - (set_local 0x356 (i64.load offset=0x356 align=1 (i32.const 0))) - (set_local 0x357 (i64.load offset=0x357 align=1 (i32.const 0))) - (set_local 0x358 (i64.load offset=0x358 align=1 (i32.const 0))) - (set_local 0x359 (i64.load offset=0x359 align=1 (i32.const 0))) - (set_local 0x35a (i64.load offset=0x35a align=1 (i32.const 0))) - (set_local 0x35b (i64.load offset=0x35b align=1 (i32.const 0))) - (set_local 0x35c (i64.load offset=0x35c align=1 (i32.const 0))) - (set_local 0x35d (i64.load offset=0x35d align=1 (i32.const 0))) - (set_local 0x35e (i64.load offset=0x35e align=1 (i32.const 0))) - (set_local 0x35f (i64.load offset=0x35f align=1 (i32.const 0))) - (set_local 0x360 (i64.load offset=0x360 align=1 (i32.const 0))) - (set_local 0x361 (i64.load offset=0x361 align=1 (i32.const 0))) - (set_local 0x362 (i64.load offset=0x362 align=1 (i32.const 0))) - (set_local 0x363 (i64.load offset=0x363 align=1 (i32.const 0))) - (set_local 0x364 (i64.load offset=0x364 align=1 (i32.const 0))) - (set_local 0x365 (i64.load offset=0x365 align=1 (i32.const 0))) - (set_local 0x366 (i64.load offset=0x366 align=1 (i32.const 0))) - (set_local 0x367 (i64.load offset=0x367 align=1 (i32.const 0))) - (set_local 0x368 (i64.load offset=0x368 align=1 (i32.const 0))) - (set_local 0x369 (i64.load offset=0x369 align=1 (i32.const 0))) - (set_local 0x36a (i64.load offset=0x36a align=1 (i32.const 0))) - (set_local 0x36b (i64.load offset=0x36b align=1 (i32.const 0))) - (set_local 0x36c (i64.load offset=0x36c align=1 (i32.const 0))) - (set_local 0x36d (i64.load offset=0x36d align=1 (i32.const 0))) - (set_local 0x36e (i64.load offset=0x36e align=1 (i32.const 0))) - (set_local 0x36f (i64.load offset=0x36f align=1 (i32.const 0))) - (set_local 0x370 (i64.load offset=0x370 align=1 (i32.const 0))) - (set_local 0x371 (i64.load offset=0x371 align=1 (i32.const 0))) - (set_local 0x372 (i64.load offset=0x372 align=1 (i32.const 0))) - (set_local 0x373 (i64.load offset=0x373 align=1 (i32.const 0))) - (set_local 0x374 (i64.load offset=0x374 align=1 (i32.const 0))) - (set_local 0x375 (i64.load offset=0x375 align=1 (i32.const 0))) - (set_local 0x376 (i64.load offset=0x376 align=1 (i32.const 0))) - (set_local 0x377 (i64.load offset=0x377 align=1 (i32.const 0))) - (set_local 0x378 (i64.load offset=0x378 align=1 (i32.const 0))) - (set_local 0x379 (i64.load offset=0x379 align=1 (i32.const 0))) - (set_local 0x37a (i64.load offset=0x37a align=1 (i32.const 0))) - (set_local 0x37b (i64.load offset=0x37b align=1 (i32.const 0))) - (set_local 0x37c (i64.load offset=0x37c align=1 (i32.const 0))) - (set_local 0x37d (i64.load offset=0x37d align=1 (i32.const 0))) - (set_local 0x37e (i64.load offset=0x37e align=1 (i32.const 0))) - (set_local 0x37f (i64.load offset=0x37f align=1 (i32.const 0))) - (set_local 0x380 (i64.load offset=0x380 align=1 (i32.const 0))) - (set_local 0x381 (i64.load offset=0x381 align=1 (i32.const 0))) - (set_local 0x382 (i64.load offset=0x382 align=1 (i32.const 0))) - (set_local 0x383 (i64.load offset=0x383 align=1 (i32.const 0))) - (set_local 0x384 (i64.load offset=0x384 align=1 (i32.const 0))) - (set_local 0x385 (i64.load offset=0x385 align=1 (i32.const 0))) - (set_local 0x386 (i64.load offset=0x386 align=1 (i32.const 0))) - (set_local 0x387 (i64.load offset=0x387 align=1 (i32.const 0))) - (set_local 0x388 (i64.load offset=0x388 align=1 (i32.const 0))) - (set_local 0x389 (i64.load offset=0x389 align=1 (i32.const 0))) - (set_local 0x38a (i64.load offset=0x38a align=1 (i32.const 0))) - (set_local 0x38b (i64.load offset=0x38b align=1 (i32.const 0))) - (set_local 0x38c (i64.load offset=0x38c align=1 (i32.const 0))) - (set_local 0x38d (i64.load offset=0x38d align=1 (i32.const 0))) - (set_local 0x38e (i64.load offset=0x38e align=1 (i32.const 0))) - (set_local 0x38f (i64.load offset=0x38f align=1 (i32.const 0))) - (set_local 0x390 (i64.load offset=0x390 align=1 (i32.const 0))) - (set_local 0x391 (i64.load offset=0x391 align=1 (i32.const 0))) - (set_local 0x392 (i64.load offset=0x392 align=1 (i32.const 0))) - (set_local 0x393 (i64.load offset=0x393 align=1 (i32.const 0))) - (set_local 0x394 (i64.load offset=0x394 align=1 (i32.const 0))) - (set_local 0x395 (i64.load offset=0x395 align=1 (i32.const 0))) - (set_local 0x396 (i64.load offset=0x396 align=1 (i32.const 0))) - (set_local 0x397 (i64.load offset=0x397 align=1 (i32.const 0))) - (set_local 0x398 (i64.load offset=0x398 align=1 (i32.const 0))) - (set_local 0x399 (i64.load offset=0x399 align=1 (i32.const 0))) - (set_local 0x39a (i64.load offset=0x39a align=1 (i32.const 0))) - (set_local 0x39b (i64.load offset=0x39b align=1 (i32.const 0))) - (set_local 0x39c (i64.load offset=0x39c align=1 (i32.const 0))) - (set_local 0x39d (i64.load offset=0x39d align=1 (i32.const 0))) - (set_local 0x39e (i64.load offset=0x39e align=1 (i32.const 0))) - (set_local 0x39f (i64.load offset=0x39f align=1 (i32.const 0))) - (set_local 0x3a0 (i64.load offset=0x3a0 align=1 (i32.const 0))) - (set_local 0x3a1 (i64.load offset=0x3a1 align=1 (i32.const 0))) - (set_local 0x3a2 (i64.load offset=0x3a2 align=1 (i32.const 0))) - (set_local 0x3a3 (i64.load offset=0x3a3 align=1 (i32.const 0))) - (set_local 0x3a4 (i64.load offset=0x3a4 align=1 (i32.const 0))) - (set_local 0x3a5 (i64.load offset=0x3a5 align=1 (i32.const 0))) - (set_local 0x3a6 (i64.load offset=0x3a6 align=1 (i32.const 0))) - (set_local 0x3a7 (i64.load offset=0x3a7 align=1 (i32.const 0))) - (set_local 0x3a8 (i64.load offset=0x3a8 align=1 (i32.const 0))) - (set_local 0x3a9 (i64.load offset=0x3a9 align=1 (i32.const 0))) - (set_local 0x3aa (i64.load offset=0x3aa align=1 (i32.const 0))) - (set_local 0x3ab (i64.load offset=0x3ab align=1 (i32.const 0))) - (set_local 0x3ac (i64.load offset=0x3ac align=1 (i32.const 0))) - (set_local 0x3ad (i64.load offset=0x3ad align=1 (i32.const 0))) - (set_local 0x3ae (i64.load offset=0x3ae align=1 (i32.const 0))) - (set_local 0x3af (i64.load offset=0x3af align=1 (i32.const 0))) - (set_local 0x3b0 (i64.load offset=0x3b0 align=1 (i32.const 0))) - (set_local 0x3b1 (i64.load offset=0x3b1 align=1 (i32.const 0))) - (set_local 0x3b2 (i64.load offset=0x3b2 align=1 (i32.const 0))) - (set_local 0x3b3 (i64.load offset=0x3b3 align=1 (i32.const 0))) - (set_local 0x3b4 (i64.load offset=0x3b4 align=1 (i32.const 0))) - (set_local 0x3b5 (i64.load offset=0x3b5 align=1 (i32.const 0))) - (set_local 0x3b6 (i64.load offset=0x3b6 align=1 (i32.const 0))) - (set_local 0x3b7 (i64.load offset=0x3b7 align=1 (i32.const 0))) - (set_local 0x3b8 (i64.load offset=0x3b8 align=1 (i32.const 0))) - (set_local 0x3b9 (i64.load offset=0x3b9 align=1 (i32.const 0))) - (set_local 0x3ba (i64.load offset=0x3ba align=1 (i32.const 0))) - (set_local 0x3bb (i64.load offset=0x3bb align=1 (i32.const 0))) - (set_local 0x3bc (i64.load offset=0x3bc align=1 (i32.const 0))) - (set_local 0x3bd (i64.load offset=0x3bd align=1 (i32.const 0))) - (set_local 0x3be (i64.load offset=0x3be align=1 (i32.const 0))) - (set_local 0x3bf (i64.load offset=0x3bf align=1 (i32.const 0))) - (set_local 0x3c0 (i64.load offset=0x3c0 align=1 (i32.const 0))) - (set_local 0x3c1 (i64.load offset=0x3c1 align=1 (i32.const 0))) - (set_local 0x3c2 (i64.load offset=0x3c2 align=1 (i32.const 0))) - (set_local 0x3c3 (i64.load offset=0x3c3 align=1 (i32.const 0))) - (set_local 0x3c4 (i64.load offset=0x3c4 align=1 (i32.const 0))) - (set_local 0x3c5 (i64.load offset=0x3c5 align=1 (i32.const 0))) - (set_local 0x3c6 (i64.load offset=0x3c6 align=1 (i32.const 0))) - (set_local 0x3c7 (i64.load offset=0x3c7 align=1 (i32.const 0))) - (set_local 0x3c8 (i64.load offset=0x3c8 align=1 (i32.const 0))) - (set_local 0x3c9 (i64.load offset=0x3c9 align=1 (i32.const 0))) - (set_local 0x3ca (i64.load offset=0x3ca align=1 (i32.const 0))) - (set_local 0x3cb (i64.load offset=0x3cb align=1 (i32.const 0))) - (set_local 0x3cc (i64.load offset=0x3cc align=1 (i32.const 0))) - (set_local 0x3cd (i64.load offset=0x3cd align=1 (i32.const 0))) - (set_local 0x3ce (i64.load offset=0x3ce align=1 (i32.const 0))) - (set_local 0x3cf (i64.load offset=0x3cf align=1 (i32.const 0))) - (set_local 0x3d0 (i64.load offset=0x3d0 align=1 (i32.const 0))) - (set_local 0x3d1 (i64.load offset=0x3d1 align=1 (i32.const 0))) - (set_local 0x3d2 (i64.load offset=0x3d2 align=1 (i32.const 0))) - (set_local 0x3d3 (i64.load offset=0x3d3 align=1 (i32.const 0))) - (set_local 0x3d4 (i64.load offset=0x3d4 align=1 (i32.const 0))) - (set_local 0x3d5 (i64.load offset=0x3d5 align=1 (i32.const 0))) - (set_local 0x3d6 (i64.load offset=0x3d6 align=1 (i32.const 0))) - (set_local 0x3d7 (i64.load offset=0x3d7 align=1 (i32.const 0))) - (set_local 0x3d8 (i64.load offset=0x3d8 align=1 (i32.const 0))) - (set_local 0x3d9 (i64.load offset=0x3d9 align=1 (i32.const 0))) - (set_local 0x3da (i64.load offset=0x3da align=1 (i32.const 0))) - (set_local 0x3db (i64.load offset=0x3db align=1 (i32.const 0))) - (set_local 0x3dc (i64.load offset=0x3dc align=1 (i32.const 0))) - (set_local 0x3dd (i64.load offset=0x3dd align=1 (i32.const 0))) - (set_local 0x3de (i64.load offset=0x3de align=1 (i32.const 0))) - (set_local 0x3df (i64.load offset=0x3df align=1 (i32.const 0))) - (set_local 0x3e0 (i64.load offset=0x3e0 align=1 (i32.const 0))) - (set_local 0x3e1 (i64.load offset=0x3e1 align=1 (i32.const 0))) - (set_local 0x3e2 (i64.load offset=0x3e2 align=1 (i32.const 0))) - (set_local 0x3e3 (i64.load offset=0x3e3 align=1 (i32.const 0))) - (set_local 0x3e4 (i64.load offset=0x3e4 align=1 (i32.const 0))) - (set_local 0x3e5 (i64.load offset=0x3e5 align=1 (i32.const 0))) - (set_local 0x3e6 (i64.load offset=0x3e6 align=1 (i32.const 0))) - (set_local 0x3e7 (i64.load offset=0x3e7 align=1 (i32.const 0))) - (set_local 0x3e8 (i64.load offset=0x3e8 align=1 (i32.const 0))) - (set_local 0x3e9 (i64.load offset=0x3e9 align=1 (i32.const 0))) - (set_local 0x3ea (i64.load offset=0x3ea align=1 (i32.const 0))) - (set_local 0x3eb (i64.load offset=0x3eb align=1 (i32.const 0))) - (set_local 0x3ec (i64.load offset=0x3ec align=1 (i32.const 0))) - (set_local 0x3ed (i64.load offset=0x3ed align=1 (i32.const 0))) - (set_local 0x3ee (i64.load offset=0x3ee align=1 (i32.const 0))) - (set_local 0x3ef (i64.load offset=0x3ef align=1 (i32.const 0))) - (set_local 0x3f0 (i64.load offset=0x3f0 align=1 (i32.const 0))) - (set_local 0x3f1 (i64.load offset=0x3f1 align=1 (i32.const 0))) - (set_local 0x3f2 (i64.load offset=0x3f2 align=1 (i32.const 0))) - (set_local 0x3f3 (i64.load offset=0x3f3 align=1 (i32.const 0))) - (set_local 0x3f4 (i64.load offset=0x3f4 align=1 (i32.const 0))) - (set_local 0x3f5 (i64.load offset=0x3f5 align=1 (i32.const 0))) - (set_local 0x3f6 (i64.load offset=0x3f6 align=1 (i32.const 0))) - (set_local 0x3f7 (i64.load offset=0x3f7 align=1 (i32.const 0))) - (set_local 0x3f8 (i64.load offset=0x3f8 align=1 (i32.const 0))) - (set_local 0x3f9 (i64.load offset=0x3f9 align=1 (i32.const 0))) - (set_local 0x3fa (i64.load offset=0x3fa align=1 (i32.const 0))) - (set_local 0x3fb (i64.load offset=0x3fb align=1 (i32.const 0))) - (set_local 0x3fc (i64.load offset=0x3fc align=1 (i32.const 0))) - (set_local 0x3fd (i64.load offset=0x3fd align=1 (i32.const 0))) - (set_local 0x3fe (i64.load offset=0x3fe align=1 (i32.const 0))) - (set_local 0x3ff (i64.load offset=0x3ff align=1 (i32.const 0))) - (set_local 0x400 (i64.load offset=0x400 align=1 (i32.const 0))) - (set_local 0x401 (i64.load offset=0x401 align=1 (i32.const 0))) - (set_local 0x402 (i64.load offset=0x402 align=1 (i32.const 0))) - (set_local 0x403 (i64.load offset=0x403 align=1 (i32.const 0))) - (set_local 0x404 (i64.load offset=0x404 align=1 (i32.const 0))) - (set_local 0x405 (i64.load offset=0x405 align=1 (i32.const 0))) - (set_local 0x406 (i64.load offset=0x406 align=1 (i32.const 0))) - (set_local 0x407 (i64.load offset=0x407 align=1 (i32.const 0))) - (set_local 0x408 (i64.load offset=0x408 align=1 (i32.const 0))) - (set_local 0x409 (i64.load offset=0x409 align=1 (i32.const 0))) - (set_local 0x40a (i64.load offset=0x40a align=1 (i32.const 0))) - (set_local 0x40b (i64.load offset=0x40b align=1 (i32.const 0))) - (set_local 0x40c (i64.load offset=0x40c align=1 (i32.const 0))) - (set_local 0x40d (i64.load offset=0x40d align=1 (i32.const 0))) - (set_local 0x40e (i64.load offset=0x40e align=1 (i32.const 0))) - (set_local 0x40f (i64.load offset=0x40f align=1 (i32.const 0))) - (set_local 0x410 (i64.load offset=0x410 align=1 (i32.const 0))) - (set_local 0x411 (i64.load offset=0x411 align=1 (i32.const 0))) - (set_local 0x412 (i64.load offset=0x412 align=1 (i32.const 0))) - (set_local 0x413 (i64.load offset=0x413 align=1 (i32.const 0))) - (set_local 0x414 (i64.load offset=0x414 align=1 (i32.const 0))) - (set_local 0x415 (i64.load offset=0x415 align=1 (i32.const 0))) - (set_local 0x416 (i64.load offset=0x416 align=1 (i32.const 0))) - (set_local 0x417 (i64.load offset=0x417 align=1 (i32.const 0))) - (set_local 0x418 (i64.load offset=0x418 align=1 (i32.const 0))) - (set_local 0x419 (i64.load offset=0x419 align=1 (i32.const 0))) - (set_local 0x41a (i64.load offset=0x41a align=1 (i32.const 0))) - (set_local 0x41b (i64.load offset=0x41b align=1 (i32.const 0))) - (set_local 0x41c (i64.load offset=0x41c align=1 (i32.const 0))) - (set_local 0x41d (i64.load offset=0x41d align=1 (i32.const 0))) - (set_local 0x41e (i64.load offset=0x41e align=1 (i32.const 0))) - (set_local 0x41f (i64.load offset=0x41f align=1 (i32.const 0))) - - ;; store the locals back to memory - (i64.store offset=0x000 align=1 (i32.const 0) (get_local 0x000)) - (i64.store offset=0x001 align=1 (i32.const 0) (get_local 0x001)) - (i64.store offset=0x002 align=1 (i32.const 0) (get_local 0x002)) - (i64.store offset=0x003 align=1 (i32.const 0) (get_local 0x003)) - (i64.store offset=0x004 align=1 (i32.const 0) (get_local 0x004)) - (i64.store offset=0x005 align=1 (i32.const 0) (get_local 0x005)) - (i64.store offset=0x006 align=1 (i32.const 0) (get_local 0x006)) - (i64.store offset=0x007 align=1 (i32.const 0) (get_local 0x007)) - (i64.store offset=0x008 align=1 (i32.const 0) (get_local 0x008)) - (i64.store offset=0x009 align=1 (i32.const 0) (get_local 0x009)) - (i64.store offset=0x00a align=1 (i32.const 0) (get_local 0x00a)) - (i64.store offset=0x00b align=1 (i32.const 0) (get_local 0x00b)) - (i64.store offset=0x00c align=1 (i32.const 0) (get_local 0x00c)) - (i64.store offset=0x00d align=1 (i32.const 0) (get_local 0x00d)) - (i64.store offset=0x00e align=1 (i32.const 0) (get_local 0x00e)) - (i64.store offset=0x00f align=1 (i32.const 0) (get_local 0x00f)) - (i64.store offset=0x010 align=1 (i32.const 0) (get_local 0x010)) - (i64.store offset=0x011 align=1 (i32.const 0) (get_local 0x011)) - (i64.store offset=0x012 align=1 (i32.const 0) (get_local 0x012)) - (i64.store offset=0x013 align=1 (i32.const 0) (get_local 0x013)) - (i64.store offset=0x014 align=1 (i32.const 0) (get_local 0x014)) - (i64.store offset=0x015 align=1 (i32.const 0) (get_local 0x015)) - (i64.store offset=0x016 align=1 (i32.const 0) (get_local 0x016)) - (i64.store offset=0x017 align=1 (i32.const 0) (get_local 0x017)) - (i64.store offset=0x018 align=1 (i32.const 0) (get_local 0x018)) - (i64.store offset=0x019 align=1 (i32.const 0) (get_local 0x019)) - (i64.store offset=0x01a align=1 (i32.const 0) (get_local 0x01a)) - (i64.store offset=0x01b align=1 (i32.const 0) (get_local 0x01b)) - (i64.store offset=0x01c align=1 (i32.const 0) (get_local 0x01c)) - (i64.store offset=0x01d align=1 (i32.const 0) (get_local 0x01d)) - (i64.store offset=0x01e align=1 (i32.const 0) (get_local 0x01e)) - (i64.store offset=0x01f align=1 (i32.const 0) (get_local 0x01f)) - (i64.store offset=0x020 align=1 (i32.const 0) (get_local 0x020)) - (i64.store offset=0x021 align=1 (i32.const 0) (get_local 0x021)) - (i64.store offset=0x022 align=1 (i32.const 0) (get_local 0x022)) - (i64.store offset=0x023 align=1 (i32.const 0) (get_local 0x023)) - (i64.store offset=0x024 align=1 (i32.const 0) (get_local 0x024)) - (i64.store offset=0x025 align=1 (i32.const 0) (get_local 0x025)) - (i64.store offset=0x026 align=1 (i32.const 0) (get_local 0x026)) - (i64.store offset=0x027 align=1 (i32.const 0) (get_local 0x027)) - (i64.store offset=0x028 align=1 (i32.const 0) (get_local 0x028)) - (i64.store offset=0x029 align=1 (i32.const 0) (get_local 0x029)) - (i64.store offset=0x02a align=1 (i32.const 0) (get_local 0x02a)) - (i64.store offset=0x02b align=1 (i32.const 0) (get_local 0x02b)) - (i64.store offset=0x02c align=1 (i32.const 0) (get_local 0x02c)) - (i64.store offset=0x02d align=1 (i32.const 0) (get_local 0x02d)) - (i64.store offset=0x02e align=1 (i32.const 0) (get_local 0x02e)) - (i64.store offset=0x02f align=1 (i32.const 0) (get_local 0x02f)) - (i64.store offset=0x030 align=1 (i32.const 0) (get_local 0x030)) - (i64.store offset=0x031 align=1 (i32.const 0) (get_local 0x031)) - (i64.store offset=0x032 align=1 (i32.const 0) (get_local 0x032)) - (i64.store offset=0x033 align=1 (i32.const 0) (get_local 0x033)) - (i64.store offset=0x034 align=1 (i32.const 0) (get_local 0x034)) - (i64.store offset=0x035 align=1 (i32.const 0) (get_local 0x035)) - (i64.store offset=0x036 align=1 (i32.const 0) (get_local 0x036)) - (i64.store offset=0x037 align=1 (i32.const 0) (get_local 0x037)) - (i64.store offset=0x038 align=1 (i32.const 0) (get_local 0x038)) - (i64.store offset=0x039 align=1 (i32.const 0) (get_local 0x039)) - (i64.store offset=0x03a align=1 (i32.const 0) (get_local 0x03a)) - (i64.store offset=0x03b align=1 (i32.const 0) (get_local 0x03b)) - (i64.store offset=0x03c align=1 (i32.const 0) (get_local 0x03c)) - (i64.store offset=0x03d align=1 (i32.const 0) (get_local 0x03d)) - (i64.store offset=0x03e align=1 (i32.const 0) (get_local 0x03e)) - (i64.store offset=0x03f align=1 (i32.const 0) (get_local 0x03f)) - (i64.store offset=0x040 align=1 (i32.const 0) (get_local 0x040)) - (i64.store offset=0x041 align=1 (i32.const 0) (get_local 0x041)) - (i64.store offset=0x042 align=1 (i32.const 0) (get_local 0x042)) - (i64.store offset=0x043 align=1 (i32.const 0) (get_local 0x043)) - (i64.store offset=0x044 align=1 (i32.const 0) (get_local 0x044)) - (i64.store offset=0x045 align=1 (i32.const 0) (get_local 0x045)) - (i64.store offset=0x046 align=1 (i32.const 0) (get_local 0x046)) - (i64.store offset=0x047 align=1 (i32.const 0) (get_local 0x047)) - (i64.store offset=0x048 align=1 (i32.const 0) (get_local 0x048)) - (i64.store offset=0x049 align=1 (i32.const 0) (get_local 0x049)) - (i64.store offset=0x04a align=1 (i32.const 0) (get_local 0x04a)) - (i64.store offset=0x04b align=1 (i32.const 0) (get_local 0x04b)) - (i64.store offset=0x04c align=1 (i32.const 0) (get_local 0x04c)) - (i64.store offset=0x04d align=1 (i32.const 0) (get_local 0x04d)) - (i64.store offset=0x04e align=1 (i32.const 0) (get_local 0x04e)) - (i64.store offset=0x04f align=1 (i32.const 0) (get_local 0x04f)) - (i64.store offset=0x050 align=1 (i32.const 0) (get_local 0x050)) - (i64.store offset=0x051 align=1 (i32.const 0) (get_local 0x051)) - (i64.store offset=0x052 align=1 (i32.const 0) (get_local 0x052)) - (i64.store offset=0x053 align=1 (i32.const 0) (get_local 0x053)) - (i64.store offset=0x054 align=1 (i32.const 0) (get_local 0x054)) - (i64.store offset=0x055 align=1 (i32.const 0) (get_local 0x055)) - (i64.store offset=0x056 align=1 (i32.const 0) (get_local 0x056)) - (i64.store offset=0x057 align=1 (i32.const 0) (get_local 0x057)) - (i64.store offset=0x058 align=1 (i32.const 0) (get_local 0x058)) - (i64.store offset=0x059 align=1 (i32.const 0) (get_local 0x059)) - (i64.store offset=0x05a align=1 (i32.const 0) (get_local 0x05a)) - (i64.store offset=0x05b align=1 (i32.const 0) (get_local 0x05b)) - (i64.store offset=0x05c align=1 (i32.const 0) (get_local 0x05c)) - (i64.store offset=0x05d align=1 (i32.const 0) (get_local 0x05d)) - (i64.store offset=0x05e align=1 (i32.const 0) (get_local 0x05e)) - (i64.store offset=0x05f align=1 (i32.const 0) (get_local 0x05f)) - (i64.store offset=0x060 align=1 (i32.const 0) (get_local 0x060)) - (i64.store offset=0x061 align=1 (i32.const 0) (get_local 0x061)) - (i64.store offset=0x062 align=1 (i32.const 0) (get_local 0x062)) - (i64.store offset=0x063 align=1 (i32.const 0) (get_local 0x063)) - (i64.store offset=0x064 align=1 (i32.const 0) (get_local 0x064)) - (i64.store offset=0x065 align=1 (i32.const 0) (get_local 0x065)) - (i64.store offset=0x066 align=1 (i32.const 0) (get_local 0x066)) - (i64.store offset=0x067 align=1 (i32.const 0) (get_local 0x067)) - (i64.store offset=0x068 align=1 (i32.const 0) (get_local 0x068)) - (i64.store offset=0x069 align=1 (i32.const 0) (get_local 0x069)) - (i64.store offset=0x06a align=1 (i32.const 0) (get_local 0x06a)) - (i64.store offset=0x06b align=1 (i32.const 0) (get_local 0x06b)) - (i64.store offset=0x06c align=1 (i32.const 0) (get_local 0x06c)) - (i64.store offset=0x06d align=1 (i32.const 0) (get_local 0x06d)) - (i64.store offset=0x06e align=1 (i32.const 0) (get_local 0x06e)) - (i64.store offset=0x06f align=1 (i32.const 0) (get_local 0x06f)) - (i64.store offset=0x070 align=1 (i32.const 0) (get_local 0x070)) - (i64.store offset=0x071 align=1 (i32.const 0) (get_local 0x071)) - (i64.store offset=0x072 align=1 (i32.const 0) (get_local 0x072)) - (i64.store offset=0x073 align=1 (i32.const 0) (get_local 0x073)) - (i64.store offset=0x074 align=1 (i32.const 0) (get_local 0x074)) - (i64.store offset=0x075 align=1 (i32.const 0) (get_local 0x075)) - (i64.store offset=0x076 align=1 (i32.const 0) (get_local 0x076)) - (i64.store offset=0x077 align=1 (i32.const 0) (get_local 0x077)) - (i64.store offset=0x078 align=1 (i32.const 0) (get_local 0x078)) - (i64.store offset=0x079 align=1 (i32.const 0) (get_local 0x079)) - (i64.store offset=0x07a align=1 (i32.const 0) (get_local 0x07a)) - (i64.store offset=0x07b align=1 (i32.const 0) (get_local 0x07b)) - (i64.store offset=0x07c align=1 (i32.const 0) (get_local 0x07c)) - (i64.store offset=0x07d align=1 (i32.const 0) (get_local 0x07d)) - (i64.store offset=0x07e align=1 (i32.const 0) (get_local 0x07e)) - (i64.store offset=0x07f align=1 (i32.const 0) (get_local 0x07f)) - (i64.store offset=0x080 align=1 (i32.const 0) (get_local 0x080)) - (i64.store offset=0x081 align=1 (i32.const 0) (get_local 0x081)) - (i64.store offset=0x082 align=1 (i32.const 0) (get_local 0x082)) - (i64.store offset=0x083 align=1 (i32.const 0) (get_local 0x083)) - (i64.store offset=0x084 align=1 (i32.const 0) (get_local 0x084)) - (i64.store offset=0x085 align=1 (i32.const 0) (get_local 0x085)) - (i64.store offset=0x086 align=1 (i32.const 0) (get_local 0x086)) - (i64.store offset=0x087 align=1 (i32.const 0) (get_local 0x087)) - (i64.store offset=0x088 align=1 (i32.const 0) (get_local 0x088)) - (i64.store offset=0x089 align=1 (i32.const 0) (get_local 0x089)) - (i64.store offset=0x08a align=1 (i32.const 0) (get_local 0x08a)) - (i64.store offset=0x08b align=1 (i32.const 0) (get_local 0x08b)) - (i64.store offset=0x08c align=1 (i32.const 0) (get_local 0x08c)) - (i64.store offset=0x08d align=1 (i32.const 0) (get_local 0x08d)) - (i64.store offset=0x08e align=1 (i32.const 0) (get_local 0x08e)) - (i64.store offset=0x08f align=1 (i32.const 0) (get_local 0x08f)) - (i64.store offset=0x090 align=1 (i32.const 0) (get_local 0x090)) - (i64.store offset=0x091 align=1 (i32.const 0) (get_local 0x091)) - (i64.store offset=0x092 align=1 (i32.const 0) (get_local 0x092)) - (i64.store offset=0x093 align=1 (i32.const 0) (get_local 0x093)) - (i64.store offset=0x094 align=1 (i32.const 0) (get_local 0x094)) - (i64.store offset=0x095 align=1 (i32.const 0) (get_local 0x095)) - (i64.store offset=0x096 align=1 (i32.const 0) (get_local 0x096)) - (i64.store offset=0x097 align=1 (i32.const 0) (get_local 0x097)) - (i64.store offset=0x098 align=1 (i32.const 0) (get_local 0x098)) - (i64.store offset=0x099 align=1 (i32.const 0) (get_local 0x099)) - (i64.store offset=0x09a align=1 (i32.const 0) (get_local 0x09a)) - (i64.store offset=0x09b align=1 (i32.const 0) (get_local 0x09b)) - (i64.store offset=0x09c align=1 (i32.const 0) (get_local 0x09c)) - (i64.store offset=0x09d align=1 (i32.const 0) (get_local 0x09d)) - (i64.store offset=0x09e align=1 (i32.const 0) (get_local 0x09e)) - (i64.store offset=0x09f align=1 (i32.const 0) (get_local 0x09f)) - (i64.store offset=0x0a0 align=1 (i32.const 0) (get_local 0x0a0)) - (i64.store offset=0x0a1 align=1 (i32.const 0) (get_local 0x0a1)) - (i64.store offset=0x0a2 align=1 (i32.const 0) (get_local 0x0a2)) - (i64.store offset=0x0a3 align=1 (i32.const 0) (get_local 0x0a3)) - (i64.store offset=0x0a4 align=1 (i32.const 0) (get_local 0x0a4)) - (i64.store offset=0x0a5 align=1 (i32.const 0) (get_local 0x0a5)) - (i64.store offset=0x0a6 align=1 (i32.const 0) (get_local 0x0a6)) - (i64.store offset=0x0a7 align=1 (i32.const 0) (get_local 0x0a7)) - (i64.store offset=0x0a8 align=1 (i32.const 0) (get_local 0x0a8)) - (i64.store offset=0x0a9 align=1 (i32.const 0) (get_local 0x0a9)) - (i64.store offset=0x0aa align=1 (i32.const 0) (get_local 0x0aa)) - (i64.store offset=0x0ab align=1 (i32.const 0) (get_local 0x0ab)) - (i64.store offset=0x0ac align=1 (i32.const 0) (get_local 0x0ac)) - (i64.store offset=0x0ad align=1 (i32.const 0) (get_local 0x0ad)) - (i64.store offset=0x0ae align=1 (i32.const 0) (get_local 0x0ae)) - (i64.store offset=0x0af align=1 (i32.const 0) (get_local 0x0af)) - (i64.store offset=0x0b0 align=1 (i32.const 0) (get_local 0x0b0)) - (i64.store offset=0x0b1 align=1 (i32.const 0) (get_local 0x0b1)) - (i64.store offset=0x0b2 align=1 (i32.const 0) (get_local 0x0b2)) - (i64.store offset=0x0b3 align=1 (i32.const 0) (get_local 0x0b3)) - (i64.store offset=0x0b4 align=1 (i32.const 0) (get_local 0x0b4)) - (i64.store offset=0x0b5 align=1 (i32.const 0) (get_local 0x0b5)) - (i64.store offset=0x0b6 align=1 (i32.const 0) (get_local 0x0b6)) - (i64.store offset=0x0b7 align=1 (i32.const 0) (get_local 0x0b7)) - (i64.store offset=0x0b8 align=1 (i32.const 0) (get_local 0x0b8)) - (i64.store offset=0x0b9 align=1 (i32.const 0) (get_local 0x0b9)) - (i64.store offset=0x0ba align=1 (i32.const 0) (get_local 0x0ba)) - (i64.store offset=0x0bb align=1 (i32.const 0) (get_local 0x0bb)) - (i64.store offset=0x0bc align=1 (i32.const 0) (get_local 0x0bc)) - (i64.store offset=0x0bd align=1 (i32.const 0) (get_local 0x0bd)) - (i64.store offset=0x0be align=1 (i32.const 0) (get_local 0x0be)) - (i64.store offset=0x0bf align=1 (i32.const 0) (get_local 0x0bf)) - (i64.store offset=0x0c0 align=1 (i32.const 0) (get_local 0x0c0)) - (i64.store offset=0x0c1 align=1 (i32.const 0) (get_local 0x0c1)) - (i64.store offset=0x0c2 align=1 (i32.const 0) (get_local 0x0c2)) - (i64.store offset=0x0c3 align=1 (i32.const 0) (get_local 0x0c3)) - (i64.store offset=0x0c4 align=1 (i32.const 0) (get_local 0x0c4)) - (i64.store offset=0x0c5 align=1 (i32.const 0) (get_local 0x0c5)) - (i64.store offset=0x0c6 align=1 (i32.const 0) (get_local 0x0c6)) - (i64.store offset=0x0c7 align=1 (i32.const 0) (get_local 0x0c7)) - (i64.store offset=0x0c8 align=1 (i32.const 0) (get_local 0x0c8)) - (i64.store offset=0x0c9 align=1 (i32.const 0) (get_local 0x0c9)) - (i64.store offset=0x0ca align=1 (i32.const 0) (get_local 0x0ca)) - (i64.store offset=0x0cb align=1 (i32.const 0) (get_local 0x0cb)) - (i64.store offset=0x0cc align=1 (i32.const 0) (get_local 0x0cc)) - (i64.store offset=0x0cd align=1 (i32.const 0) (get_local 0x0cd)) - (i64.store offset=0x0ce align=1 (i32.const 0) (get_local 0x0ce)) - (i64.store offset=0x0cf align=1 (i32.const 0) (get_local 0x0cf)) - (i64.store offset=0x0d0 align=1 (i32.const 0) (get_local 0x0d0)) - (i64.store offset=0x0d1 align=1 (i32.const 0) (get_local 0x0d1)) - (i64.store offset=0x0d2 align=1 (i32.const 0) (get_local 0x0d2)) - (i64.store offset=0x0d3 align=1 (i32.const 0) (get_local 0x0d3)) - (i64.store offset=0x0d4 align=1 (i32.const 0) (get_local 0x0d4)) - (i64.store offset=0x0d5 align=1 (i32.const 0) (get_local 0x0d5)) - (i64.store offset=0x0d6 align=1 (i32.const 0) (get_local 0x0d6)) - (i64.store offset=0x0d7 align=1 (i32.const 0) (get_local 0x0d7)) - (i64.store offset=0x0d8 align=1 (i32.const 0) (get_local 0x0d8)) - (i64.store offset=0x0d9 align=1 (i32.const 0) (get_local 0x0d9)) - (i64.store offset=0x0da align=1 (i32.const 0) (get_local 0x0da)) - (i64.store offset=0x0db align=1 (i32.const 0) (get_local 0x0db)) - (i64.store offset=0x0dc align=1 (i32.const 0) (get_local 0x0dc)) - (i64.store offset=0x0dd align=1 (i32.const 0) (get_local 0x0dd)) - (i64.store offset=0x0de align=1 (i32.const 0) (get_local 0x0de)) - (i64.store offset=0x0df align=1 (i32.const 0) (get_local 0x0df)) - (i64.store offset=0x0e0 align=1 (i32.const 0) (get_local 0x0e0)) - (i64.store offset=0x0e1 align=1 (i32.const 0) (get_local 0x0e1)) - (i64.store offset=0x0e2 align=1 (i32.const 0) (get_local 0x0e2)) - (i64.store offset=0x0e3 align=1 (i32.const 0) (get_local 0x0e3)) - (i64.store offset=0x0e4 align=1 (i32.const 0) (get_local 0x0e4)) - (i64.store offset=0x0e5 align=1 (i32.const 0) (get_local 0x0e5)) - (i64.store offset=0x0e6 align=1 (i32.const 0) (get_local 0x0e6)) - (i64.store offset=0x0e7 align=1 (i32.const 0) (get_local 0x0e7)) - (i64.store offset=0x0e8 align=1 (i32.const 0) (get_local 0x0e8)) - (i64.store offset=0x0e9 align=1 (i32.const 0) (get_local 0x0e9)) - (i64.store offset=0x0ea align=1 (i32.const 0) (get_local 0x0ea)) - (i64.store offset=0x0eb align=1 (i32.const 0) (get_local 0x0eb)) - (i64.store offset=0x0ec align=1 (i32.const 0) (get_local 0x0ec)) - (i64.store offset=0x0ed align=1 (i32.const 0) (get_local 0x0ed)) - (i64.store offset=0x0ee align=1 (i32.const 0) (get_local 0x0ee)) - (i64.store offset=0x0ef align=1 (i32.const 0) (get_local 0x0ef)) - (i64.store offset=0x0f0 align=1 (i32.const 0) (get_local 0x0f0)) - (i64.store offset=0x0f1 align=1 (i32.const 0) (get_local 0x0f1)) - (i64.store offset=0x0f2 align=1 (i32.const 0) (get_local 0x0f2)) - (i64.store offset=0x0f3 align=1 (i32.const 0) (get_local 0x0f3)) - (i64.store offset=0x0f4 align=1 (i32.const 0) (get_local 0x0f4)) - (i64.store offset=0x0f5 align=1 (i32.const 0) (get_local 0x0f5)) - (i64.store offset=0x0f6 align=1 (i32.const 0) (get_local 0x0f6)) - (i64.store offset=0x0f7 align=1 (i32.const 0) (get_local 0x0f7)) - (i64.store offset=0x0f8 align=1 (i32.const 0) (get_local 0x0f8)) - (i64.store offset=0x0f9 align=1 (i32.const 0) (get_local 0x0f9)) - (i64.store offset=0x0fa align=1 (i32.const 0) (get_local 0x0fa)) - (i64.store offset=0x0fb align=1 (i32.const 0) (get_local 0x0fb)) - (i64.store offset=0x0fc align=1 (i32.const 0) (get_local 0x0fc)) - (i64.store offset=0x0fd align=1 (i32.const 0) (get_local 0x0fd)) - (i64.store offset=0x0fe align=1 (i32.const 0) (get_local 0x0fe)) - (i64.store offset=0x0ff align=1 (i32.const 0) (get_local 0x0ff)) - (i64.store offset=0x100 align=1 (i32.const 0) (get_local 0x100)) - (i64.store offset=0x101 align=1 (i32.const 0) (get_local 0x101)) - (i64.store offset=0x102 align=1 (i32.const 0) (get_local 0x102)) - (i64.store offset=0x103 align=1 (i32.const 0) (get_local 0x103)) - (i64.store offset=0x104 align=1 (i32.const 0) (get_local 0x104)) - (i64.store offset=0x105 align=1 (i32.const 0) (get_local 0x105)) - (i64.store offset=0x106 align=1 (i32.const 0) (get_local 0x106)) - (i64.store offset=0x107 align=1 (i32.const 0) (get_local 0x107)) - (i64.store offset=0x108 align=1 (i32.const 0) (get_local 0x108)) - (i64.store offset=0x109 align=1 (i32.const 0) (get_local 0x109)) - (i64.store offset=0x10a align=1 (i32.const 0) (get_local 0x10a)) - (i64.store offset=0x10b align=1 (i32.const 0) (get_local 0x10b)) - (i64.store offset=0x10c align=1 (i32.const 0) (get_local 0x10c)) - (i64.store offset=0x10d align=1 (i32.const 0) (get_local 0x10d)) - (i64.store offset=0x10e align=1 (i32.const 0) (get_local 0x10e)) - (i64.store offset=0x10f align=1 (i32.const 0) (get_local 0x10f)) - (i64.store offset=0x110 align=1 (i32.const 0) (get_local 0x110)) - (i64.store offset=0x111 align=1 (i32.const 0) (get_local 0x111)) - (i64.store offset=0x112 align=1 (i32.const 0) (get_local 0x112)) - (i64.store offset=0x113 align=1 (i32.const 0) (get_local 0x113)) - (i64.store offset=0x114 align=1 (i32.const 0) (get_local 0x114)) - (i64.store offset=0x115 align=1 (i32.const 0) (get_local 0x115)) - (i64.store offset=0x116 align=1 (i32.const 0) (get_local 0x116)) - (i64.store offset=0x117 align=1 (i32.const 0) (get_local 0x117)) - (i64.store offset=0x118 align=1 (i32.const 0) (get_local 0x118)) - (i64.store offset=0x119 align=1 (i32.const 0) (get_local 0x119)) - (i64.store offset=0x11a align=1 (i32.const 0) (get_local 0x11a)) - (i64.store offset=0x11b align=1 (i32.const 0) (get_local 0x11b)) - (i64.store offset=0x11c align=1 (i32.const 0) (get_local 0x11c)) - (i64.store offset=0x11d align=1 (i32.const 0) (get_local 0x11d)) - (i64.store offset=0x11e align=1 (i32.const 0) (get_local 0x11e)) - (i64.store offset=0x11f align=1 (i32.const 0) (get_local 0x11f)) - (i64.store offset=0x120 align=1 (i32.const 0) (get_local 0x120)) - (i64.store offset=0x121 align=1 (i32.const 0) (get_local 0x121)) - (i64.store offset=0x122 align=1 (i32.const 0) (get_local 0x122)) - (i64.store offset=0x123 align=1 (i32.const 0) (get_local 0x123)) - (i64.store offset=0x124 align=1 (i32.const 0) (get_local 0x124)) - (i64.store offset=0x125 align=1 (i32.const 0) (get_local 0x125)) - (i64.store offset=0x126 align=1 (i32.const 0) (get_local 0x126)) - (i64.store offset=0x127 align=1 (i32.const 0) (get_local 0x127)) - (i64.store offset=0x128 align=1 (i32.const 0) (get_local 0x128)) - (i64.store offset=0x129 align=1 (i32.const 0) (get_local 0x129)) - (i64.store offset=0x12a align=1 (i32.const 0) (get_local 0x12a)) - (i64.store offset=0x12b align=1 (i32.const 0) (get_local 0x12b)) - (i64.store offset=0x12c align=1 (i32.const 0) (get_local 0x12c)) - (i64.store offset=0x12d align=1 (i32.const 0) (get_local 0x12d)) - (i64.store offset=0x12e align=1 (i32.const 0) (get_local 0x12e)) - (i64.store offset=0x12f align=1 (i32.const 0) (get_local 0x12f)) - (i64.store offset=0x130 align=1 (i32.const 0) (get_local 0x130)) - (i64.store offset=0x131 align=1 (i32.const 0) (get_local 0x131)) - (i64.store offset=0x132 align=1 (i32.const 0) (get_local 0x132)) - (i64.store offset=0x133 align=1 (i32.const 0) (get_local 0x133)) - (i64.store offset=0x134 align=1 (i32.const 0) (get_local 0x134)) - (i64.store offset=0x135 align=1 (i32.const 0) (get_local 0x135)) - (i64.store offset=0x136 align=1 (i32.const 0) (get_local 0x136)) - (i64.store offset=0x137 align=1 (i32.const 0) (get_local 0x137)) - (i64.store offset=0x138 align=1 (i32.const 0) (get_local 0x138)) - (i64.store offset=0x139 align=1 (i32.const 0) (get_local 0x139)) - (i64.store offset=0x13a align=1 (i32.const 0) (get_local 0x13a)) - (i64.store offset=0x13b align=1 (i32.const 0) (get_local 0x13b)) - (i64.store offset=0x13c align=1 (i32.const 0) (get_local 0x13c)) - (i64.store offset=0x13d align=1 (i32.const 0) (get_local 0x13d)) - (i64.store offset=0x13e align=1 (i32.const 0) (get_local 0x13e)) - (i64.store offset=0x13f align=1 (i32.const 0) (get_local 0x13f)) - (i64.store offset=0x140 align=1 (i32.const 0) (get_local 0x140)) - (i64.store offset=0x141 align=1 (i32.const 0) (get_local 0x141)) - (i64.store offset=0x142 align=1 (i32.const 0) (get_local 0x142)) - (i64.store offset=0x143 align=1 (i32.const 0) (get_local 0x143)) - (i64.store offset=0x144 align=1 (i32.const 0) (get_local 0x144)) - (i64.store offset=0x145 align=1 (i32.const 0) (get_local 0x145)) - (i64.store offset=0x146 align=1 (i32.const 0) (get_local 0x146)) - (i64.store offset=0x147 align=1 (i32.const 0) (get_local 0x147)) - (i64.store offset=0x148 align=1 (i32.const 0) (get_local 0x148)) - (i64.store offset=0x149 align=1 (i32.const 0) (get_local 0x149)) - (i64.store offset=0x14a align=1 (i32.const 0) (get_local 0x14a)) - (i64.store offset=0x14b align=1 (i32.const 0) (get_local 0x14b)) - (i64.store offset=0x14c align=1 (i32.const 0) (get_local 0x14c)) - (i64.store offset=0x14d align=1 (i32.const 0) (get_local 0x14d)) - (i64.store offset=0x14e align=1 (i32.const 0) (get_local 0x14e)) - (i64.store offset=0x14f align=1 (i32.const 0) (get_local 0x14f)) - (i64.store offset=0x150 align=1 (i32.const 0) (get_local 0x150)) - (i64.store offset=0x151 align=1 (i32.const 0) (get_local 0x151)) - (i64.store offset=0x152 align=1 (i32.const 0) (get_local 0x152)) - (i64.store offset=0x153 align=1 (i32.const 0) (get_local 0x153)) - (i64.store offset=0x154 align=1 (i32.const 0) (get_local 0x154)) - (i64.store offset=0x155 align=1 (i32.const 0) (get_local 0x155)) - (i64.store offset=0x156 align=1 (i32.const 0) (get_local 0x156)) - (i64.store offset=0x157 align=1 (i32.const 0) (get_local 0x157)) - (i64.store offset=0x158 align=1 (i32.const 0) (get_local 0x158)) - (i64.store offset=0x159 align=1 (i32.const 0) (get_local 0x159)) - (i64.store offset=0x15a align=1 (i32.const 0) (get_local 0x15a)) - (i64.store offset=0x15b align=1 (i32.const 0) (get_local 0x15b)) - (i64.store offset=0x15c align=1 (i32.const 0) (get_local 0x15c)) - (i64.store offset=0x15d align=1 (i32.const 0) (get_local 0x15d)) - (i64.store offset=0x15e align=1 (i32.const 0) (get_local 0x15e)) - (i64.store offset=0x15f align=1 (i32.const 0) (get_local 0x15f)) - (i64.store offset=0x160 align=1 (i32.const 0) (get_local 0x160)) - (i64.store offset=0x161 align=1 (i32.const 0) (get_local 0x161)) - (i64.store offset=0x162 align=1 (i32.const 0) (get_local 0x162)) - (i64.store offset=0x163 align=1 (i32.const 0) (get_local 0x163)) - (i64.store offset=0x164 align=1 (i32.const 0) (get_local 0x164)) - (i64.store offset=0x165 align=1 (i32.const 0) (get_local 0x165)) - (i64.store offset=0x166 align=1 (i32.const 0) (get_local 0x166)) - (i64.store offset=0x167 align=1 (i32.const 0) (get_local 0x167)) - (i64.store offset=0x168 align=1 (i32.const 0) (get_local 0x168)) - (i64.store offset=0x169 align=1 (i32.const 0) (get_local 0x169)) - (i64.store offset=0x16a align=1 (i32.const 0) (get_local 0x16a)) - (i64.store offset=0x16b align=1 (i32.const 0) (get_local 0x16b)) - (i64.store offset=0x16c align=1 (i32.const 0) (get_local 0x16c)) - (i64.store offset=0x16d align=1 (i32.const 0) (get_local 0x16d)) - (i64.store offset=0x16e align=1 (i32.const 0) (get_local 0x16e)) - (i64.store offset=0x16f align=1 (i32.const 0) (get_local 0x16f)) - (i64.store offset=0x170 align=1 (i32.const 0) (get_local 0x170)) - (i64.store offset=0x171 align=1 (i32.const 0) (get_local 0x171)) - (i64.store offset=0x172 align=1 (i32.const 0) (get_local 0x172)) - (i64.store offset=0x173 align=1 (i32.const 0) (get_local 0x173)) - (i64.store offset=0x174 align=1 (i32.const 0) (get_local 0x174)) - (i64.store offset=0x175 align=1 (i32.const 0) (get_local 0x175)) - (i64.store offset=0x176 align=1 (i32.const 0) (get_local 0x176)) - (i64.store offset=0x177 align=1 (i32.const 0) (get_local 0x177)) - (i64.store offset=0x178 align=1 (i32.const 0) (get_local 0x178)) - (i64.store offset=0x179 align=1 (i32.const 0) (get_local 0x179)) - (i64.store offset=0x17a align=1 (i32.const 0) (get_local 0x17a)) - (i64.store offset=0x17b align=1 (i32.const 0) (get_local 0x17b)) - (i64.store offset=0x17c align=1 (i32.const 0) (get_local 0x17c)) - (i64.store offset=0x17d align=1 (i32.const 0) (get_local 0x17d)) - (i64.store offset=0x17e align=1 (i32.const 0) (get_local 0x17e)) - (i64.store offset=0x17f align=1 (i32.const 0) (get_local 0x17f)) - (i64.store offset=0x180 align=1 (i32.const 0) (get_local 0x180)) - (i64.store offset=0x181 align=1 (i32.const 0) (get_local 0x181)) - (i64.store offset=0x182 align=1 (i32.const 0) (get_local 0x182)) - (i64.store offset=0x183 align=1 (i32.const 0) (get_local 0x183)) - (i64.store offset=0x184 align=1 (i32.const 0) (get_local 0x184)) - (i64.store offset=0x185 align=1 (i32.const 0) (get_local 0x185)) - (i64.store offset=0x186 align=1 (i32.const 0) (get_local 0x186)) - (i64.store offset=0x187 align=1 (i32.const 0) (get_local 0x187)) - (i64.store offset=0x188 align=1 (i32.const 0) (get_local 0x188)) - (i64.store offset=0x189 align=1 (i32.const 0) (get_local 0x189)) - (i64.store offset=0x18a align=1 (i32.const 0) (get_local 0x18a)) - (i64.store offset=0x18b align=1 (i32.const 0) (get_local 0x18b)) - (i64.store offset=0x18c align=1 (i32.const 0) (get_local 0x18c)) - (i64.store offset=0x18d align=1 (i32.const 0) (get_local 0x18d)) - (i64.store offset=0x18e align=1 (i32.const 0) (get_local 0x18e)) - (i64.store offset=0x18f align=1 (i32.const 0) (get_local 0x18f)) - (i64.store offset=0x190 align=1 (i32.const 0) (get_local 0x190)) - (i64.store offset=0x191 align=1 (i32.const 0) (get_local 0x191)) - (i64.store offset=0x192 align=1 (i32.const 0) (get_local 0x192)) - (i64.store offset=0x193 align=1 (i32.const 0) (get_local 0x193)) - (i64.store offset=0x194 align=1 (i32.const 0) (get_local 0x194)) - (i64.store offset=0x195 align=1 (i32.const 0) (get_local 0x195)) - (i64.store offset=0x196 align=1 (i32.const 0) (get_local 0x196)) - (i64.store offset=0x197 align=1 (i32.const 0) (get_local 0x197)) - (i64.store offset=0x198 align=1 (i32.const 0) (get_local 0x198)) - (i64.store offset=0x199 align=1 (i32.const 0) (get_local 0x199)) - (i64.store offset=0x19a align=1 (i32.const 0) (get_local 0x19a)) - (i64.store offset=0x19b align=1 (i32.const 0) (get_local 0x19b)) - (i64.store offset=0x19c align=1 (i32.const 0) (get_local 0x19c)) - (i64.store offset=0x19d align=1 (i32.const 0) (get_local 0x19d)) - (i64.store offset=0x19e align=1 (i32.const 0) (get_local 0x19e)) - (i64.store offset=0x19f align=1 (i32.const 0) (get_local 0x19f)) - (i64.store offset=0x1a0 align=1 (i32.const 0) (get_local 0x1a0)) - (i64.store offset=0x1a1 align=1 (i32.const 0) (get_local 0x1a1)) - (i64.store offset=0x1a2 align=1 (i32.const 0) (get_local 0x1a2)) - (i64.store offset=0x1a3 align=1 (i32.const 0) (get_local 0x1a3)) - (i64.store offset=0x1a4 align=1 (i32.const 0) (get_local 0x1a4)) - (i64.store offset=0x1a5 align=1 (i32.const 0) (get_local 0x1a5)) - (i64.store offset=0x1a6 align=1 (i32.const 0) (get_local 0x1a6)) - (i64.store offset=0x1a7 align=1 (i32.const 0) (get_local 0x1a7)) - (i64.store offset=0x1a8 align=1 (i32.const 0) (get_local 0x1a8)) - (i64.store offset=0x1a9 align=1 (i32.const 0) (get_local 0x1a9)) - (i64.store offset=0x1aa align=1 (i32.const 0) (get_local 0x1aa)) - (i64.store offset=0x1ab align=1 (i32.const 0) (get_local 0x1ab)) - (i64.store offset=0x1ac align=1 (i32.const 0) (get_local 0x1ac)) - (i64.store offset=0x1ad align=1 (i32.const 0) (get_local 0x1ad)) - (i64.store offset=0x1ae align=1 (i32.const 0) (get_local 0x1ae)) - (i64.store offset=0x1af align=1 (i32.const 0) (get_local 0x1af)) - (i64.store offset=0x1b0 align=1 (i32.const 0) (get_local 0x1b0)) - (i64.store offset=0x1b1 align=1 (i32.const 0) (get_local 0x1b1)) - (i64.store offset=0x1b2 align=1 (i32.const 0) (get_local 0x1b2)) - (i64.store offset=0x1b3 align=1 (i32.const 0) (get_local 0x1b3)) - (i64.store offset=0x1b4 align=1 (i32.const 0) (get_local 0x1b4)) - (i64.store offset=0x1b5 align=1 (i32.const 0) (get_local 0x1b5)) - (i64.store offset=0x1b6 align=1 (i32.const 0) (get_local 0x1b6)) - (i64.store offset=0x1b7 align=1 (i32.const 0) (get_local 0x1b7)) - (i64.store offset=0x1b8 align=1 (i32.const 0) (get_local 0x1b8)) - (i64.store offset=0x1b9 align=1 (i32.const 0) (get_local 0x1b9)) - (i64.store offset=0x1ba align=1 (i32.const 0) (get_local 0x1ba)) - (i64.store offset=0x1bb align=1 (i32.const 0) (get_local 0x1bb)) - (i64.store offset=0x1bc align=1 (i32.const 0) (get_local 0x1bc)) - (i64.store offset=0x1bd align=1 (i32.const 0) (get_local 0x1bd)) - (i64.store offset=0x1be align=1 (i32.const 0) (get_local 0x1be)) - (i64.store offset=0x1bf align=1 (i32.const 0) (get_local 0x1bf)) - (i64.store offset=0x1c0 align=1 (i32.const 0) (get_local 0x1c0)) - (i64.store offset=0x1c1 align=1 (i32.const 0) (get_local 0x1c1)) - (i64.store offset=0x1c2 align=1 (i32.const 0) (get_local 0x1c2)) - (i64.store offset=0x1c3 align=1 (i32.const 0) (get_local 0x1c3)) - (i64.store offset=0x1c4 align=1 (i32.const 0) (get_local 0x1c4)) - (i64.store offset=0x1c5 align=1 (i32.const 0) (get_local 0x1c5)) - (i64.store offset=0x1c6 align=1 (i32.const 0) (get_local 0x1c6)) - (i64.store offset=0x1c7 align=1 (i32.const 0) (get_local 0x1c7)) - (i64.store offset=0x1c8 align=1 (i32.const 0) (get_local 0x1c8)) - (i64.store offset=0x1c9 align=1 (i32.const 0) (get_local 0x1c9)) - (i64.store offset=0x1ca align=1 (i32.const 0) (get_local 0x1ca)) - (i64.store offset=0x1cb align=1 (i32.const 0) (get_local 0x1cb)) - (i64.store offset=0x1cc align=1 (i32.const 0) (get_local 0x1cc)) - (i64.store offset=0x1cd align=1 (i32.const 0) (get_local 0x1cd)) - (i64.store offset=0x1ce align=1 (i32.const 0) (get_local 0x1ce)) - (i64.store offset=0x1cf align=1 (i32.const 0) (get_local 0x1cf)) - (i64.store offset=0x1d0 align=1 (i32.const 0) (get_local 0x1d0)) - (i64.store offset=0x1d1 align=1 (i32.const 0) (get_local 0x1d1)) - (i64.store offset=0x1d2 align=1 (i32.const 0) (get_local 0x1d2)) - (i64.store offset=0x1d3 align=1 (i32.const 0) (get_local 0x1d3)) - (i64.store offset=0x1d4 align=1 (i32.const 0) (get_local 0x1d4)) - (i64.store offset=0x1d5 align=1 (i32.const 0) (get_local 0x1d5)) - (i64.store offset=0x1d6 align=1 (i32.const 0) (get_local 0x1d6)) - (i64.store offset=0x1d7 align=1 (i32.const 0) (get_local 0x1d7)) - (i64.store offset=0x1d8 align=1 (i32.const 0) (get_local 0x1d8)) - (i64.store offset=0x1d9 align=1 (i32.const 0) (get_local 0x1d9)) - (i64.store offset=0x1da align=1 (i32.const 0) (get_local 0x1da)) - (i64.store offset=0x1db align=1 (i32.const 0) (get_local 0x1db)) - (i64.store offset=0x1dc align=1 (i32.const 0) (get_local 0x1dc)) - (i64.store offset=0x1dd align=1 (i32.const 0) (get_local 0x1dd)) - (i64.store offset=0x1de align=1 (i32.const 0) (get_local 0x1de)) - (i64.store offset=0x1df align=1 (i32.const 0) (get_local 0x1df)) - (i64.store offset=0x1e0 align=1 (i32.const 0) (get_local 0x1e0)) - (i64.store offset=0x1e1 align=1 (i32.const 0) (get_local 0x1e1)) - (i64.store offset=0x1e2 align=1 (i32.const 0) (get_local 0x1e2)) - (i64.store offset=0x1e3 align=1 (i32.const 0) (get_local 0x1e3)) - (i64.store offset=0x1e4 align=1 (i32.const 0) (get_local 0x1e4)) - (i64.store offset=0x1e5 align=1 (i32.const 0) (get_local 0x1e5)) - (i64.store offset=0x1e6 align=1 (i32.const 0) (get_local 0x1e6)) - (i64.store offset=0x1e7 align=1 (i32.const 0) (get_local 0x1e7)) - (i64.store offset=0x1e8 align=1 (i32.const 0) (get_local 0x1e8)) - (i64.store offset=0x1e9 align=1 (i32.const 0) (get_local 0x1e9)) - (i64.store offset=0x1ea align=1 (i32.const 0) (get_local 0x1ea)) - (i64.store offset=0x1eb align=1 (i32.const 0) (get_local 0x1eb)) - (i64.store offset=0x1ec align=1 (i32.const 0) (get_local 0x1ec)) - (i64.store offset=0x1ed align=1 (i32.const 0) (get_local 0x1ed)) - (i64.store offset=0x1ee align=1 (i32.const 0) (get_local 0x1ee)) - (i64.store offset=0x1ef align=1 (i32.const 0) (get_local 0x1ef)) - (i64.store offset=0x1f0 align=1 (i32.const 0) (get_local 0x1f0)) - (i64.store offset=0x1f1 align=1 (i32.const 0) (get_local 0x1f1)) - (i64.store offset=0x1f2 align=1 (i32.const 0) (get_local 0x1f2)) - (i64.store offset=0x1f3 align=1 (i32.const 0) (get_local 0x1f3)) - (i64.store offset=0x1f4 align=1 (i32.const 0) (get_local 0x1f4)) - (i64.store offset=0x1f5 align=1 (i32.const 0) (get_local 0x1f5)) - (i64.store offset=0x1f6 align=1 (i32.const 0) (get_local 0x1f6)) - (i64.store offset=0x1f7 align=1 (i32.const 0) (get_local 0x1f7)) - (i64.store offset=0x1f8 align=1 (i32.const 0) (get_local 0x1f8)) - (i64.store offset=0x1f9 align=1 (i32.const 0) (get_local 0x1f9)) - (i64.store offset=0x1fa align=1 (i32.const 0) (get_local 0x1fa)) - (i64.store offset=0x1fb align=1 (i32.const 0) (get_local 0x1fb)) - (i64.store offset=0x1fc align=1 (i32.const 0) (get_local 0x1fc)) - (i64.store offset=0x1fd align=1 (i32.const 0) (get_local 0x1fd)) - (i64.store offset=0x1fe align=1 (i32.const 0) (get_local 0x1fe)) - (i64.store offset=0x1ff align=1 (i32.const 0) (get_local 0x1ff)) - (i64.store offset=0x200 align=1 (i32.const 0) (get_local 0x200)) - (i64.store offset=0x201 align=1 (i32.const 0) (get_local 0x201)) - (i64.store offset=0x202 align=1 (i32.const 0) (get_local 0x202)) - (i64.store offset=0x203 align=1 (i32.const 0) (get_local 0x203)) - (i64.store offset=0x204 align=1 (i32.const 0) (get_local 0x204)) - (i64.store offset=0x205 align=1 (i32.const 0) (get_local 0x205)) - (i64.store offset=0x206 align=1 (i32.const 0) (get_local 0x206)) - (i64.store offset=0x207 align=1 (i32.const 0) (get_local 0x207)) - (i64.store offset=0x208 align=1 (i32.const 0) (get_local 0x208)) - (i64.store offset=0x209 align=1 (i32.const 0) (get_local 0x209)) - (i64.store offset=0x20a align=1 (i32.const 0) (get_local 0x20a)) - (i64.store offset=0x20b align=1 (i32.const 0) (get_local 0x20b)) - (i64.store offset=0x20c align=1 (i32.const 0) (get_local 0x20c)) - (i64.store offset=0x20d align=1 (i32.const 0) (get_local 0x20d)) - (i64.store offset=0x20e align=1 (i32.const 0) (get_local 0x20e)) - (i64.store offset=0x20f align=1 (i32.const 0) (get_local 0x20f)) - (i64.store offset=0x210 align=1 (i32.const 0) (get_local 0x210)) - (i64.store offset=0x211 align=1 (i32.const 0) (get_local 0x211)) - (i64.store offset=0x212 align=1 (i32.const 0) (get_local 0x212)) - (i64.store offset=0x213 align=1 (i32.const 0) (get_local 0x213)) - (i64.store offset=0x214 align=1 (i32.const 0) (get_local 0x214)) - (i64.store offset=0x215 align=1 (i32.const 0) (get_local 0x215)) - (i64.store offset=0x216 align=1 (i32.const 0) (get_local 0x216)) - (i64.store offset=0x217 align=1 (i32.const 0) (get_local 0x217)) - (i64.store offset=0x218 align=1 (i32.const 0) (get_local 0x218)) - (i64.store offset=0x219 align=1 (i32.const 0) (get_local 0x219)) - (i64.store offset=0x21a align=1 (i32.const 0) (get_local 0x21a)) - (i64.store offset=0x21b align=1 (i32.const 0) (get_local 0x21b)) - (i64.store offset=0x21c align=1 (i32.const 0) (get_local 0x21c)) - (i64.store offset=0x21d align=1 (i32.const 0) (get_local 0x21d)) - (i64.store offset=0x21e align=1 (i32.const 0) (get_local 0x21e)) - (i64.store offset=0x21f align=1 (i32.const 0) (get_local 0x21f)) - (i64.store offset=0x220 align=1 (i32.const 0) (get_local 0x220)) - (i64.store offset=0x221 align=1 (i32.const 0) (get_local 0x221)) - (i64.store offset=0x222 align=1 (i32.const 0) (get_local 0x222)) - (i64.store offset=0x223 align=1 (i32.const 0) (get_local 0x223)) - (i64.store offset=0x224 align=1 (i32.const 0) (get_local 0x224)) - (i64.store offset=0x225 align=1 (i32.const 0) (get_local 0x225)) - (i64.store offset=0x226 align=1 (i32.const 0) (get_local 0x226)) - (i64.store offset=0x227 align=1 (i32.const 0) (get_local 0x227)) - (i64.store offset=0x228 align=1 (i32.const 0) (get_local 0x228)) - (i64.store offset=0x229 align=1 (i32.const 0) (get_local 0x229)) - (i64.store offset=0x22a align=1 (i32.const 0) (get_local 0x22a)) - (i64.store offset=0x22b align=1 (i32.const 0) (get_local 0x22b)) - (i64.store offset=0x22c align=1 (i32.const 0) (get_local 0x22c)) - (i64.store offset=0x22d align=1 (i32.const 0) (get_local 0x22d)) - (i64.store offset=0x22e align=1 (i32.const 0) (get_local 0x22e)) - (i64.store offset=0x22f align=1 (i32.const 0) (get_local 0x22f)) - (i64.store offset=0x230 align=1 (i32.const 0) (get_local 0x230)) - (i64.store offset=0x231 align=1 (i32.const 0) (get_local 0x231)) - (i64.store offset=0x232 align=1 (i32.const 0) (get_local 0x232)) - (i64.store offset=0x233 align=1 (i32.const 0) (get_local 0x233)) - (i64.store offset=0x234 align=1 (i32.const 0) (get_local 0x234)) - (i64.store offset=0x235 align=1 (i32.const 0) (get_local 0x235)) - (i64.store offset=0x236 align=1 (i32.const 0) (get_local 0x236)) - (i64.store offset=0x237 align=1 (i32.const 0) (get_local 0x237)) - (i64.store offset=0x238 align=1 (i32.const 0) (get_local 0x238)) - (i64.store offset=0x239 align=1 (i32.const 0) (get_local 0x239)) - (i64.store offset=0x23a align=1 (i32.const 0) (get_local 0x23a)) - (i64.store offset=0x23b align=1 (i32.const 0) (get_local 0x23b)) - (i64.store offset=0x23c align=1 (i32.const 0) (get_local 0x23c)) - (i64.store offset=0x23d align=1 (i32.const 0) (get_local 0x23d)) - (i64.store offset=0x23e align=1 (i32.const 0) (get_local 0x23e)) - (i64.store offset=0x23f align=1 (i32.const 0) (get_local 0x23f)) - (i64.store offset=0x240 align=1 (i32.const 0) (get_local 0x240)) - (i64.store offset=0x241 align=1 (i32.const 0) (get_local 0x241)) - (i64.store offset=0x242 align=1 (i32.const 0) (get_local 0x242)) - (i64.store offset=0x243 align=1 (i32.const 0) (get_local 0x243)) - (i64.store offset=0x244 align=1 (i32.const 0) (get_local 0x244)) - (i64.store offset=0x245 align=1 (i32.const 0) (get_local 0x245)) - (i64.store offset=0x246 align=1 (i32.const 0) (get_local 0x246)) - (i64.store offset=0x247 align=1 (i32.const 0) (get_local 0x247)) - (i64.store offset=0x248 align=1 (i32.const 0) (get_local 0x248)) - (i64.store offset=0x249 align=1 (i32.const 0) (get_local 0x249)) - (i64.store offset=0x24a align=1 (i32.const 0) (get_local 0x24a)) - (i64.store offset=0x24b align=1 (i32.const 0) (get_local 0x24b)) - (i64.store offset=0x24c align=1 (i32.const 0) (get_local 0x24c)) - (i64.store offset=0x24d align=1 (i32.const 0) (get_local 0x24d)) - (i64.store offset=0x24e align=1 (i32.const 0) (get_local 0x24e)) - (i64.store offset=0x24f align=1 (i32.const 0) (get_local 0x24f)) - (i64.store offset=0x250 align=1 (i32.const 0) (get_local 0x250)) - (i64.store offset=0x251 align=1 (i32.const 0) (get_local 0x251)) - (i64.store offset=0x252 align=1 (i32.const 0) (get_local 0x252)) - (i64.store offset=0x253 align=1 (i32.const 0) (get_local 0x253)) - (i64.store offset=0x254 align=1 (i32.const 0) (get_local 0x254)) - (i64.store offset=0x255 align=1 (i32.const 0) (get_local 0x255)) - (i64.store offset=0x256 align=1 (i32.const 0) (get_local 0x256)) - (i64.store offset=0x257 align=1 (i32.const 0) (get_local 0x257)) - (i64.store offset=0x258 align=1 (i32.const 0) (get_local 0x258)) - (i64.store offset=0x259 align=1 (i32.const 0) (get_local 0x259)) - (i64.store offset=0x25a align=1 (i32.const 0) (get_local 0x25a)) - (i64.store offset=0x25b align=1 (i32.const 0) (get_local 0x25b)) - (i64.store offset=0x25c align=1 (i32.const 0) (get_local 0x25c)) - (i64.store offset=0x25d align=1 (i32.const 0) (get_local 0x25d)) - (i64.store offset=0x25e align=1 (i32.const 0) (get_local 0x25e)) - (i64.store offset=0x25f align=1 (i32.const 0) (get_local 0x25f)) - (i64.store offset=0x260 align=1 (i32.const 0) (get_local 0x260)) - (i64.store offset=0x261 align=1 (i32.const 0) (get_local 0x261)) - (i64.store offset=0x262 align=1 (i32.const 0) (get_local 0x262)) - (i64.store offset=0x263 align=1 (i32.const 0) (get_local 0x263)) - (i64.store offset=0x264 align=1 (i32.const 0) (get_local 0x264)) - (i64.store offset=0x265 align=1 (i32.const 0) (get_local 0x265)) - (i64.store offset=0x266 align=1 (i32.const 0) (get_local 0x266)) - (i64.store offset=0x267 align=1 (i32.const 0) (get_local 0x267)) - (i64.store offset=0x268 align=1 (i32.const 0) (get_local 0x268)) - (i64.store offset=0x269 align=1 (i32.const 0) (get_local 0x269)) - (i64.store offset=0x26a align=1 (i32.const 0) (get_local 0x26a)) - (i64.store offset=0x26b align=1 (i32.const 0) (get_local 0x26b)) - (i64.store offset=0x26c align=1 (i32.const 0) (get_local 0x26c)) - (i64.store offset=0x26d align=1 (i32.const 0) (get_local 0x26d)) - (i64.store offset=0x26e align=1 (i32.const 0) (get_local 0x26e)) - (i64.store offset=0x26f align=1 (i32.const 0) (get_local 0x26f)) - (i64.store offset=0x270 align=1 (i32.const 0) (get_local 0x270)) - (i64.store offset=0x271 align=1 (i32.const 0) (get_local 0x271)) - (i64.store offset=0x272 align=1 (i32.const 0) (get_local 0x272)) - (i64.store offset=0x273 align=1 (i32.const 0) (get_local 0x273)) - (i64.store offset=0x274 align=1 (i32.const 0) (get_local 0x274)) - (i64.store offset=0x275 align=1 (i32.const 0) (get_local 0x275)) - (i64.store offset=0x276 align=1 (i32.const 0) (get_local 0x276)) - (i64.store offset=0x277 align=1 (i32.const 0) (get_local 0x277)) - (i64.store offset=0x278 align=1 (i32.const 0) (get_local 0x278)) - (i64.store offset=0x279 align=1 (i32.const 0) (get_local 0x279)) - (i64.store offset=0x27a align=1 (i32.const 0) (get_local 0x27a)) - (i64.store offset=0x27b align=1 (i32.const 0) (get_local 0x27b)) - (i64.store offset=0x27c align=1 (i32.const 0) (get_local 0x27c)) - (i64.store offset=0x27d align=1 (i32.const 0) (get_local 0x27d)) - (i64.store offset=0x27e align=1 (i32.const 0) (get_local 0x27e)) - (i64.store offset=0x27f align=1 (i32.const 0) (get_local 0x27f)) - (i64.store offset=0x280 align=1 (i32.const 0) (get_local 0x280)) - (i64.store offset=0x281 align=1 (i32.const 0) (get_local 0x281)) - (i64.store offset=0x282 align=1 (i32.const 0) (get_local 0x282)) - (i64.store offset=0x283 align=1 (i32.const 0) (get_local 0x283)) - (i64.store offset=0x284 align=1 (i32.const 0) (get_local 0x284)) - (i64.store offset=0x285 align=1 (i32.const 0) (get_local 0x285)) - (i64.store offset=0x286 align=1 (i32.const 0) (get_local 0x286)) - (i64.store offset=0x287 align=1 (i32.const 0) (get_local 0x287)) - (i64.store offset=0x288 align=1 (i32.const 0) (get_local 0x288)) - (i64.store offset=0x289 align=1 (i32.const 0) (get_local 0x289)) - (i64.store offset=0x28a align=1 (i32.const 0) (get_local 0x28a)) - (i64.store offset=0x28b align=1 (i32.const 0) (get_local 0x28b)) - (i64.store offset=0x28c align=1 (i32.const 0) (get_local 0x28c)) - (i64.store offset=0x28d align=1 (i32.const 0) (get_local 0x28d)) - (i64.store offset=0x28e align=1 (i32.const 0) (get_local 0x28e)) - (i64.store offset=0x28f align=1 (i32.const 0) (get_local 0x28f)) - (i64.store offset=0x290 align=1 (i32.const 0) (get_local 0x290)) - (i64.store offset=0x291 align=1 (i32.const 0) (get_local 0x291)) - (i64.store offset=0x292 align=1 (i32.const 0) (get_local 0x292)) - (i64.store offset=0x293 align=1 (i32.const 0) (get_local 0x293)) - (i64.store offset=0x294 align=1 (i32.const 0) (get_local 0x294)) - (i64.store offset=0x295 align=1 (i32.const 0) (get_local 0x295)) - (i64.store offset=0x296 align=1 (i32.const 0) (get_local 0x296)) - (i64.store offset=0x297 align=1 (i32.const 0) (get_local 0x297)) - (i64.store offset=0x298 align=1 (i32.const 0) (get_local 0x298)) - (i64.store offset=0x299 align=1 (i32.const 0) (get_local 0x299)) - (i64.store offset=0x29a align=1 (i32.const 0) (get_local 0x29a)) - (i64.store offset=0x29b align=1 (i32.const 0) (get_local 0x29b)) - (i64.store offset=0x29c align=1 (i32.const 0) (get_local 0x29c)) - (i64.store offset=0x29d align=1 (i32.const 0) (get_local 0x29d)) - (i64.store offset=0x29e align=1 (i32.const 0) (get_local 0x29e)) - (i64.store offset=0x29f align=1 (i32.const 0) (get_local 0x29f)) - (i64.store offset=0x2a0 align=1 (i32.const 0) (get_local 0x2a0)) - (i64.store offset=0x2a1 align=1 (i32.const 0) (get_local 0x2a1)) - (i64.store offset=0x2a2 align=1 (i32.const 0) (get_local 0x2a2)) - (i64.store offset=0x2a3 align=1 (i32.const 0) (get_local 0x2a3)) - (i64.store offset=0x2a4 align=1 (i32.const 0) (get_local 0x2a4)) - (i64.store offset=0x2a5 align=1 (i32.const 0) (get_local 0x2a5)) - (i64.store offset=0x2a6 align=1 (i32.const 0) (get_local 0x2a6)) - (i64.store offset=0x2a7 align=1 (i32.const 0) (get_local 0x2a7)) - (i64.store offset=0x2a8 align=1 (i32.const 0) (get_local 0x2a8)) - (i64.store offset=0x2a9 align=1 (i32.const 0) (get_local 0x2a9)) - (i64.store offset=0x2aa align=1 (i32.const 0) (get_local 0x2aa)) - (i64.store offset=0x2ab align=1 (i32.const 0) (get_local 0x2ab)) - (i64.store offset=0x2ac align=1 (i32.const 0) (get_local 0x2ac)) - (i64.store offset=0x2ad align=1 (i32.const 0) (get_local 0x2ad)) - (i64.store offset=0x2ae align=1 (i32.const 0) (get_local 0x2ae)) - (i64.store offset=0x2af align=1 (i32.const 0) (get_local 0x2af)) - (i64.store offset=0x2b0 align=1 (i32.const 0) (get_local 0x2b0)) - (i64.store offset=0x2b1 align=1 (i32.const 0) (get_local 0x2b1)) - (i64.store offset=0x2b2 align=1 (i32.const 0) (get_local 0x2b2)) - (i64.store offset=0x2b3 align=1 (i32.const 0) (get_local 0x2b3)) - (i64.store offset=0x2b4 align=1 (i32.const 0) (get_local 0x2b4)) - (i64.store offset=0x2b5 align=1 (i32.const 0) (get_local 0x2b5)) - (i64.store offset=0x2b6 align=1 (i32.const 0) (get_local 0x2b6)) - (i64.store offset=0x2b7 align=1 (i32.const 0) (get_local 0x2b7)) - (i64.store offset=0x2b8 align=1 (i32.const 0) (get_local 0x2b8)) - (i64.store offset=0x2b9 align=1 (i32.const 0) (get_local 0x2b9)) - (i64.store offset=0x2ba align=1 (i32.const 0) (get_local 0x2ba)) - (i64.store offset=0x2bb align=1 (i32.const 0) (get_local 0x2bb)) - (i64.store offset=0x2bc align=1 (i32.const 0) (get_local 0x2bc)) - (i64.store offset=0x2bd align=1 (i32.const 0) (get_local 0x2bd)) - (i64.store offset=0x2be align=1 (i32.const 0) (get_local 0x2be)) - (i64.store offset=0x2bf align=1 (i32.const 0) (get_local 0x2bf)) - (i64.store offset=0x2c0 align=1 (i32.const 0) (get_local 0x2c0)) - (i64.store offset=0x2c1 align=1 (i32.const 0) (get_local 0x2c1)) - (i64.store offset=0x2c2 align=1 (i32.const 0) (get_local 0x2c2)) - (i64.store offset=0x2c3 align=1 (i32.const 0) (get_local 0x2c3)) - (i64.store offset=0x2c4 align=1 (i32.const 0) (get_local 0x2c4)) - (i64.store offset=0x2c5 align=1 (i32.const 0) (get_local 0x2c5)) - (i64.store offset=0x2c6 align=1 (i32.const 0) (get_local 0x2c6)) - (i64.store offset=0x2c7 align=1 (i32.const 0) (get_local 0x2c7)) - (i64.store offset=0x2c8 align=1 (i32.const 0) (get_local 0x2c8)) - (i64.store offset=0x2c9 align=1 (i32.const 0) (get_local 0x2c9)) - (i64.store offset=0x2ca align=1 (i32.const 0) (get_local 0x2ca)) - (i64.store offset=0x2cb align=1 (i32.const 0) (get_local 0x2cb)) - (i64.store offset=0x2cc align=1 (i32.const 0) (get_local 0x2cc)) - (i64.store offset=0x2cd align=1 (i32.const 0) (get_local 0x2cd)) - (i64.store offset=0x2ce align=1 (i32.const 0) (get_local 0x2ce)) - (i64.store offset=0x2cf align=1 (i32.const 0) (get_local 0x2cf)) - (i64.store offset=0x2d0 align=1 (i32.const 0) (get_local 0x2d0)) - (i64.store offset=0x2d1 align=1 (i32.const 0) (get_local 0x2d1)) - (i64.store offset=0x2d2 align=1 (i32.const 0) (get_local 0x2d2)) - (i64.store offset=0x2d3 align=1 (i32.const 0) (get_local 0x2d3)) - (i64.store offset=0x2d4 align=1 (i32.const 0) (get_local 0x2d4)) - (i64.store offset=0x2d5 align=1 (i32.const 0) (get_local 0x2d5)) - (i64.store offset=0x2d6 align=1 (i32.const 0) (get_local 0x2d6)) - (i64.store offset=0x2d7 align=1 (i32.const 0) (get_local 0x2d7)) - (i64.store offset=0x2d8 align=1 (i32.const 0) (get_local 0x2d8)) - (i64.store offset=0x2d9 align=1 (i32.const 0) (get_local 0x2d9)) - (i64.store offset=0x2da align=1 (i32.const 0) (get_local 0x2da)) - (i64.store offset=0x2db align=1 (i32.const 0) (get_local 0x2db)) - (i64.store offset=0x2dc align=1 (i32.const 0) (get_local 0x2dc)) - (i64.store offset=0x2dd align=1 (i32.const 0) (get_local 0x2dd)) - (i64.store offset=0x2de align=1 (i32.const 0) (get_local 0x2de)) - (i64.store offset=0x2df align=1 (i32.const 0) (get_local 0x2df)) - (i64.store offset=0x2e0 align=1 (i32.const 0) (get_local 0x2e0)) - (i64.store offset=0x2e1 align=1 (i32.const 0) (get_local 0x2e1)) - (i64.store offset=0x2e2 align=1 (i32.const 0) (get_local 0x2e2)) - (i64.store offset=0x2e3 align=1 (i32.const 0) (get_local 0x2e3)) - (i64.store offset=0x2e4 align=1 (i32.const 0) (get_local 0x2e4)) - (i64.store offset=0x2e5 align=1 (i32.const 0) (get_local 0x2e5)) - (i64.store offset=0x2e6 align=1 (i32.const 0) (get_local 0x2e6)) - (i64.store offset=0x2e7 align=1 (i32.const 0) (get_local 0x2e7)) - (i64.store offset=0x2e8 align=1 (i32.const 0) (get_local 0x2e8)) - (i64.store offset=0x2e9 align=1 (i32.const 0) (get_local 0x2e9)) - (i64.store offset=0x2ea align=1 (i32.const 0) (get_local 0x2ea)) - (i64.store offset=0x2eb align=1 (i32.const 0) (get_local 0x2eb)) - (i64.store offset=0x2ec align=1 (i32.const 0) (get_local 0x2ec)) - (i64.store offset=0x2ed align=1 (i32.const 0) (get_local 0x2ed)) - (i64.store offset=0x2ee align=1 (i32.const 0) (get_local 0x2ee)) - (i64.store offset=0x2ef align=1 (i32.const 0) (get_local 0x2ef)) - (i64.store offset=0x2f0 align=1 (i32.const 0) (get_local 0x2f0)) - (i64.store offset=0x2f1 align=1 (i32.const 0) (get_local 0x2f1)) - (i64.store offset=0x2f2 align=1 (i32.const 0) (get_local 0x2f2)) - (i64.store offset=0x2f3 align=1 (i32.const 0) (get_local 0x2f3)) - (i64.store offset=0x2f4 align=1 (i32.const 0) (get_local 0x2f4)) - (i64.store offset=0x2f5 align=1 (i32.const 0) (get_local 0x2f5)) - (i64.store offset=0x2f6 align=1 (i32.const 0) (get_local 0x2f6)) - (i64.store offset=0x2f7 align=1 (i32.const 0) (get_local 0x2f7)) - (i64.store offset=0x2f8 align=1 (i32.const 0) (get_local 0x2f8)) - (i64.store offset=0x2f9 align=1 (i32.const 0) (get_local 0x2f9)) - (i64.store offset=0x2fa align=1 (i32.const 0) (get_local 0x2fa)) - (i64.store offset=0x2fb align=1 (i32.const 0) (get_local 0x2fb)) - (i64.store offset=0x2fc align=1 (i32.const 0) (get_local 0x2fc)) - (i64.store offset=0x2fd align=1 (i32.const 0) (get_local 0x2fd)) - (i64.store offset=0x2fe align=1 (i32.const 0) (get_local 0x2fe)) - (i64.store offset=0x2ff align=1 (i32.const 0) (get_local 0x2ff)) - (i64.store offset=0x300 align=1 (i32.const 0) (get_local 0x300)) - (i64.store offset=0x301 align=1 (i32.const 0) (get_local 0x301)) - (i64.store offset=0x302 align=1 (i32.const 0) (get_local 0x302)) - (i64.store offset=0x303 align=1 (i32.const 0) (get_local 0x303)) - (i64.store offset=0x304 align=1 (i32.const 0) (get_local 0x304)) - (i64.store offset=0x305 align=1 (i32.const 0) (get_local 0x305)) - (i64.store offset=0x306 align=1 (i32.const 0) (get_local 0x306)) - (i64.store offset=0x307 align=1 (i32.const 0) (get_local 0x307)) - (i64.store offset=0x308 align=1 (i32.const 0) (get_local 0x308)) - (i64.store offset=0x309 align=1 (i32.const 0) (get_local 0x309)) - (i64.store offset=0x30a align=1 (i32.const 0) (get_local 0x30a)) - (i64.store offset=0x30b align=1 (i32.const 0) (get_local 0x30b)) - (i64.store offset=0x30c align=1 (i32.const 0) (get_local 0x30c)) - (i64.store offset=0x30d align=1 (i32.const 0) (get_local 0x30d)) - (i64.store offset=0x30e align=1 (i32.const 0) (get_local 0x30e)) - (i64.store offset=0x30f align=1 (i32.const 0) (get_local 0x30f)) - (i64.store offset=0x310 align=1 (i32.const 0) (get_local 0x310)) - (i64.store offset=0x311 align=1 (i32.const 0) (get_local 0x311)) - (i64.store offset=0x312 align=1 (i32.const 0) (get_local 0x312)) - (i64.store offset=0x313 align=1 (i32.const 0) (get_local 0x313)) - (i64.store offset=0x314 align=1 (i32.const 0) (get_local 0x314)) - (i64.store offset=0x315 align=1 (i32.const 0) (get_local 0x315)) - (i64.store offset=0x316 align=1 (i32.const 0) (get_local 0x316)) - (i64.store offset=0x317 align=1 (i32.const 0) (get_local 0x317)) - (i64.store offset=0x318 align=1 (i32.const 0) (get_local 0x318)) - (i64.store offset=0x319 align=1 (i32.const 0) (get_local 0x319)) - (i64.store offset=0x31a align=1 (i32.const 0) (get_local 0x31a)) - (i64.store offset=0x31b align=1 (i32.const 0) (get_local 0x31b)) - (i64.store offset=0x31c align=1 (i32.const 0) (get_local 0x31c)) - (i64.store offset=0x31d align=1 (i32.const 0) (get_local 0x31d)) - (i64.store offset=0x31e align=1 (i32.const 0) (get_local 0x31e)) - (i64.store offset=0x31f align=1 (i32.const 0) (get_local 0x31f)) - (i64.store offset=0x320 align=1 (i32.const 0) (get_local 0x320)) - (i64.store offset=0x321 align=1 (i32.const 0) (get_local 0x321)) - (i64.store offset=0x322 align=1 (i32.const 0) (get_local 0x322)) - (i64.store offset=0x323 align=1 (i32.const 0) (get_local 0x323)) - (i64.store offset=0x324 align=1 (i32.const 0) (get_local 0x324)) - (i64.store offset=0x325 align=1 (i32.const 0) (get_local 0x325)) - (i64.store offset=0x326 align=1 (i32.const 0) (get_local 0x326)) - (i64.store offset=0x327 align=1 (i32.const 0) (get_local 0x327)) - (i64.store offset=0x328 align=1 (i32.const 0) (get_local 0x328)) - (i64.store offset=0x329 align=1 (i32.const 0) (get_local 0x329)) - (i64.store offset=0x32a align=1 (i32.const 0) (get_local 0x32a)) - (i64.store offset=0x32b align=1 (i32.const 0) (get_local 0x32b)) - (i64.store offset=0x32c align=1 (i32.const 0) (get_local 0x32c)) - (i64.store offset=0x32d align=1 (i32.const 0) (get_local 0x32d)) - (i64.store offset=0x32e align=1 (i32.const 0) (get_local 0x32e)) - (i64.store offset=0x32f align=1 (i32.const 0) (get_local 0x32f)) - (i64.store offset=0x330 align=1 (i32.const 0) (get_local 0x330)) - (i64.store offset=0x331 align=1 (i32.const 0) (get_local 0x331)) - (i64.store offset=0x332 align=1 (i32.const 0) (get_local 0x332)) - (i64.store offset=0x333 align=1 (i32.const 0) (get_local 0x333)) - (i64.store offset=0x334 align=1 (i32.const 0) (get_local 0x334)) - (i64.store offset=0x335 align=1 (i32.const 0) (get_local 0x335)) - (i64.store offset=0x336 align=1 (i32.const 0) (get_local 0x336)) - (i64.store offset=0x337 align=1 (i32.const 0) (get_local 0x337)) - (i64.store offset=0x338 align=1 (i32.const 0) (get_local 0x338)) - (i64.store offset=0x339 align=1 (i32.const 0) (get_local 0x339)) - (i64.store offset=0x33a align=1 (i32.const 0) (get_local 0x33a)) - (i64.store offset=0x33b align=1 (i32.const 0) (get_local 0x33b)) - (i64.store offset=0x33c align=1 (i32.const 0) (get_local 0x33c)) - (i64.store offset=0x33d align=1 (i32.const 0) (get_local 0x33d)) - (i64.store offset=0x33e align=1 (i32.const 0) (get_local 0x33e)) - (i64.store offset=0x33f align=1 (i32.const 0) (get_local 0x33f)) - (i64.store offset=0x340 align=1 (i32.const 0) (get_local 0x340)) - (i64.store offset=0x341 align=1 (i32.const 0) (get_local 0x341)) - (i64.store offset=0x342 align=1 (i32.const 0) (get_local 0x342)) - (i64.store offset=0x343 align=1 (i32.const 0) (get_local 0x343)) - (i64.store offset=0x344 align=1 (i32.const 0) (get_local 0x344)) - (i64.store offset=0x345 align=1 (i32.const 0) (get_local 0x345)) - (i64.store offset=0x346 align=1 (i32.const 0) (get_local 0x346)) - (i64.store offset=0x347 align=1 (i32.const 0) (get_local 0x347)) - (i64.store offset=0x348 align=1 (i32.const 0) (get_local 0x348)) - (i64.store offset=0x349 align=1 (i32.const 0) (get_local 0x349)) - (i64.store offset=0x34a align=1 (i32.const 0) (get_local 0x34a)) - (i64.store offset=0x34b align=1 (i32.const 0) (get_local 0x34b)) - (i64.store offset=0x34c align=1 (i32.const 0) (get_local 0x34c)) - (i64.store offset=0x34d align=1 (i32.const 0) (get_local 0x34d)) - (i64.store offset=0x34e align=1 (i32.const 0) (get_local 0x34e)) - (i64.store offset=0x34f align=1 (i32.const 0) (get_local 0x34f)) - (i64.store offset=0x350 align=1 (i32.const 0) (get_local 0x350)) - (i64.store offset=0x351 align=1 (i32.const 0) (get_local 0x351)) - (i64.store offset=0x352 align=1 (i32.const 0) (get_local 0x352)) - (i64.store offset=0x353 align=1 (i32.const 0) (get_local 0x353)) - (i64.store offset=0x354 align=1 (i32.const 0) (get_local 0x354)) - (i64.store offset=0x355 align=1 (i32.const 0) (get_local 0x355)) - (i64.store offset=0x356 align=1 (i32.const 0) (get_local 0x356)) - (i64.store offset=0x357 align=1 (i32.const 0) (get_local 0x357)) - (i64.store offset=0x358 align=1 (i32.const 0) (get_local 0x358)) - (i64.store offset=0x359 align=1 (i32.const 0) (get_local 0x359)) - (i64.store offset=0x35a align=1 (i32.const 0) (get_local 0x35a)) - (i64.store offset=0x35b align=1 (i32.const 0) (get_local 0x35b)) - (i64.store offset=0x35c align=1 (i32.const 0) (get_local 0x35c)) - (i64.store offset=0x35d align=1 (i32.const 0) (get_local 0x35d)) - (i64.store offset=0x35e align=1 (i32.const 0) (get_local 0x35e)) - (i64.store offset=0x35f align=1 (i32.const 0) (get_local 0x35f)) - (i64.store offset=0x360 align=1 (i32.const 0) (get_local 0x360)) - (i64.store offset=0x361 align=1 (i32.const 0) (get_local 0x361)) - (i64.store offset=0x362 align=1 (i32.const 0) (get_local 0x362)) - (i64.store offset=0x363 align=1 (i32.const 0) (get_local 0x363)) - (i64.store offset=0x364 align=1 (i32.const 0) (get_local 0x364)) - (i64.store offset=0x365 align=1 (i32.const 0) (get_local 0x365)) - (i64.store offset=0x366 align=1 (i32.const 0) (get_local 0x366)) - (i64.store offset=0x367 align=1 (i32.const 0) (get_local 0x367)) - (i64.store offset=0x368 align=1 (i32.const 0) (get_local 0x368)) - (i64.store offset=0x369 align=1 (i32.const 0) (get_local 0x369)) - (i64.store offset=0x36a align=1 (i32.const 0) (get_local 0x36a)) - (i64.store offset=0x36b align=1 (i32.const 0) (get_local 0x36b)) - (i64.store offset=0x36c align=1 (i32.const 0) (get_local 0x36c)) - (i64.store offset=0x36d align=1 (i32.const 0) (get_local 0x36d)) - (i64.store offset=0x36e align=1 (i32.const 0) (get_local 0x36e)) - (i64.store offset=0x36f align=1 (i32.const 0) (get_local 0x36f)) - (i64.store offset=0x370 align=1 (i32.const 0) (get_local 0x370)) - (i64.store offset=0x371 align=1 (i32.const 0) (get_local 0x371)) - (i64.store offset=0x372 align=1 (i32.const 0) (get_local 0x372)) - (i64.store offset=0x373 align=1 (i32.const 0) (get_local 0x373)) - (i64.store offset=0x374 align=1 (i32.const 0) (get_local 0x374)) - (i64.store offset=0x375 align=1 (i32.const 0) (get_local 0x375)) - (i64.store offset=0x376 align=1 (i32.const 0) (get_local 0x376)) - (i64.store offset=0x377 align=1 (i32.const 0) (get_local 0x377)) - (i64.store offset=0x378 align=1 (i32.const 0) (get_local 0x378)) - (i64.store offset=0x379 align=1 (i32.const 0) (get_local 0x379)) - (i64.store offset=0x37a align=1 (i32.const 0) (get_local 0x37a)) - (i64.store offset=0x37b align=1 (i32.const 0) (get_local 0x37b)) - (i64.store offset=0x37c align=1 (i32.const 0) (get_local 0x37c)) - (i64.store offset=0x37d align=1 (i32.const 0) (get_local 0x37d)) - (i64.store offset=0x37e align=1 (i32.const 0) (get_local 0x37e)) - (i64.store offset=0x37f align=1 (i32.const 0) (get_local 0x37f)) - (i64.store offset=0x380 align=1 (i32.const 0) (get_local 0x380)) - (i64.store offset=0x381 align=1 (i32.const 0) (get_local 0x381)) - (i64.store offset=0x382 align=1 (i32.const 0) (get_local 0x382)) - (i64.store offset=0x383 align=1 (i32.const 0) (get_local 0x383)) - (i64.store offset=0x384 align=1 (i32.const 0) (get_local 0x384)) - (i64.store offset=0x385 align=1 (i32.const 0) (get_local 0x385)) - (i64.store offset=0x386 align=1 (i32.const 0) (get_local 0x386)) - (i64.store offset=0x387 align=1 (i32.const 0) (get_local 0x387)) - (i64.store offset=0x388 align=1 (i32.const 0) (get_local 0x388)) - (i64.store offset=0x389 align=1 (i32.const 0) (get_local 0x389)) - (i64.store offset=0x38a align=1 (i32.const 0) (get_local 0x38a)) - (i64.store offset=0x38b align=1 (i32.const 0) (get_local 0x38b)) - (i64.store offset=0x38c align=1 (i32.const 0) (get_local 0x38c)) - (i64.store offset=0x38d align=1 (i32.const 0) (get_local 0x38d)) - (i64.store offset=0x38e align=1 (i32.const 0) (get_local 0x38e)) - (i64.store offset=0x38f align=1 (i32.const 0) (get_local 0x38f)) - (i64.store offset=0x390 align=1 (i32.const 0) (get_local 0x390)) - (i64.store offset=0x391 align=1 (i32.const 0) (get_local 0x391)) - (i64.store offset=0x392 align=1 (i32.const 0) (get_local 0x392)) - (i64.store offset=0x393 align=1 (i32.const 0) (get_local 0x393)) - (i64.store offset=0x394 align=1 (i32.const 0) (get_local 0x394)) - (i64.store offset=0x395 align=1 (i32.const 0) (get_local 0x395)) - (i64.store offset=0x396 align=1 (i32.const 0) (get_local 0x396)) - (i64.store offset=0x397 align=1 (i32.const 0) (get_local 0x397)) - (i64.store offset=0x398 align=1 (i32.const 0) (get_local 0x398)) - (i64.store offset=0x399 align=1 (i32.const 0) (get_local 0x399)) - (i64.store offset=0x39a align=1 (i32.const 0) (get_local 0x39a)) - (i64.store offset=0x39b align=1 (i32.const 0) (get_local 0x39b)) - (i64.store offset=0x39c align=1 (i32.const 0) (get_local 0x39c)) - (i64.store offset=0x39d align=1 (i32.const 0) (get_local 0x39d)) - (i64.store offset=0x39e align=1 (i32.const 0) (get_local 0x39e)) - (i64.store offset=0x39f align=1 (i32.const 0) (get_local 0x39f)) - (i64.store offset=0x3a0 align=1 (i32.const 0) (get_local 0x3a0)) - (i64.store offset=0x3a1 align=1 (i32.const 0) (get_local 0x3a1)) - (i64.store offset=0x3a2 align=1 (i32.const 0) (get_local 0x3a2)) - (i64.store offset=0x3a3 align=1 (i32.const 0) (get_local 0x3a3)) - (i64.store offset=0x3a4 align=1 (i32.const 0) (get_local 0x3a4)) - (i64.store offset=0x3a5 align=1 (i32.const 0) (get_local 0x3a5)) - (i64.store offset=0x3a6 align=1 (i32.const 0) (get_local 0x3a6)) - (i64.store offset=0x3a7 align=1 (i32.const 0) (get_local 0x3a7)) - (i64.store offset=0x3a8 align=1 (i32.const 0) (get_local 0x3a8)) - (i64.store offset=0x3a9 align=1 (i32.const 0) (get_local 0x3a9)) - (i64.store offset=0x3aa align=1 (i32.const 0) (get_local 0x3aa)) - (i64.store offset=0x3ab align=1 (i32.const 0) (get_local 0x3ab)) - (i64.store offset=0x3ac align=1 (i32.const 0) (get_local 0x3ac)) - (i64.store offset=0x3ad align=1 (i32.const 0) (get_local 0x3ad)) - (i64.store offset=0x3ae align=1 (i32.const 0) (get_local 0x3ae)) - (i64.store offset=0x3af align=1 (i32.const 0) (get_local 0x3af)) - (i64.store offset=0x3b0 align=1 (i32.const 0) (get_local 0x3b0)) - (i64.store offset=0x3b1 align=1 (i32.const 0) (get_local 0x3b1)) - (i64.store offset=0x3b2 align=1 (i32.const 0) (get_local 0x3b2)) - (i64.store offset=0x3b3 align=1 (i32.const 0) (get_local 0x3b3)) - (i64.store offset=0x3b4 align=1 (i32.const 0) (get_local 0x3b4)) - (i64.store offset=0x3b5 align=1 (i32.const 0) (get_local 0x3b5)) - (i64.store offset=0x3b6 align=1 (i32.const 0) (get_local 0x3b6)) - (i64.store offset=0x3b7 align=1 (i32.const 0) (get_local 0x3b7)) - (i64.store offset=0x3b8 align=1 (i32.const 0) (get_local 0x3b8)) - (i64.store offset=0x3b9 align=1 (i32.const 0) (get_local 0x3b9)) - (i64.store offset=0x3ba align=1 (i32.const 0) (get_local 0x3ba)) - (i64.store offset=0x3bb align=1 (i32.const 0) (get_local 0x3bb)) - (i64.store offset=0x3bc align=1 (i32.const 0) (get_local 0x3bc)) - (i64.store offset=0x3bd align=1 (i32.const 0) (get_local 0x3bd)) - (i64.store offset=0x3be align=1 (i32.const 0) (get_local 0x3be)) - (i64.store offset=0x3bf align=1 (i32.const 0) (get_local 0x3bf)) - (i64.store offset=0x3c0 align=1 (i32.const 0) (get_local 0x3c0)) - (i64.store offset=0x3c1 align=1 (i32.const 0) (get_local 0x3c1)) - (i64.store offset=0x3c2 align=1 (i32.const 0) (get_local 0x3c2)) - (i64.store offset=0x3c3 align=1 (i32.const 0) (get_local 0x3c3)) - (i64.store offset=0x3c4 align=1 (i32.const 0) (get_local 0x3c4)) - (i64.store offset=0x3c5 align=1 (i32.const 0) (get_local 0x3c5)) - (i64.store offset=0x3c6 align=1 (i32.const 0) (get_local 0x3c6)) - (i64.store offset=0x3c7 align=1 (i32.const 0) (get_local 0x3c7)) - (i64.store offset=0x3c8 align=1 (i32.const 0) (get_local 0x3c8)) - (i64.store offset=0x3c9 align=1 (i32.const 0) (get_local 0x3c9)) - (i64.store offset=0x3ca align=1 (i32.const 0) (get_local 0x3ca)) - (i64.store offset=0x3cb align=1 (i32.const 0) (get_local 0x3cb)) - (i64.store offset=0x3cc align=1 (i32.const 0) (get_local 0x3cc)) - (i64.store offset=0x3cd align=1 (i32.const 0) (get_local 0x3cd)) - (i64.store offset=0x3ce align=1 (i32.const 0) (get_local 0x3ce)) - (i64.store offset=0x3cf align=1 (i32.const 0) (get_local 0x3cf)) - (i64.store offset=0x3d0 align=1 (i32.const 0) (get_local 0x3d0)) - (i64.store offset=0x3d1 align=1 (i32.const 0) (get_local 0x3d1)) - (i64.store offset=0x3d2 align=1 (i32.const 0) (get_local 0x3d2)) - (i64.store offset=0x3d3 align=1 (i32.const 0) (get_local 0x3d3)) - (i64.store offset=0x3d4 align=1 (i32.const 0) (get_local 0x3d4)) - (i64.store offset=0x3d5 align=1 (i32.const 0) (get_local 0x3d5)) - (i64.store offset=0x3d6 align=1 (i32.const 0) (get_local 0x3d6)) - (i64.store offset=0x3d7 align=1 (i32.const 0) (get_local 0x3d7)) - (i64.store offset=0x3d8 align=1 (i32.const 0) (get_local 0x3d8)) - (i64.store offset=0x3d9 align=1 (i32.const 0) (get_local 0x3d9)) - (i64.store offset=0x3da align=1 (i32.const 0) (get_local 0x3da)) - (i64.store offset=0x3db align=1 (i32.const 0) (get_local 0x3db)) - (i64.store offset=0x3dc align=1 (i32.const 0) (get_local 0x3dc)) - (i64.store offset=0x3dd align=1 (i32.const 0) (get_local 0x3dd)) - (i64.store offset=0x3de align=1 (i32.const 0) (get_local 0x3de)) - (i64.store offset=0x3df align=1 (i32.const 0) (get_local 0x3df)) - (i64.store offset=0x3e0 align=1 (i32.const 0) (get_local 0x3e0)) - (i64.store offset=0x3e1 align=1 (i32.const 0) (get_local 0x3e1)) - (i64.store offset=0x3e2 align=1 (i32.const 0) (get_local 0x3e2)) - (i64.store offset=0x3e3 align=1 (i32.const 0) (get_local 0x3e3)) - (i64.store offset=0x3e4 align=1 (i32.const 0) (get_local 0x3e4)) - (i64.store offset=0x3e5 align=1 (i32.const 0) (get_local 0x3e5)) - (i64.store offset=0x3e6 align=1 (i32.const 0) (get_local 0x3e6)) - (i64.store offset=0x3e7 align=1 (i32.const 0) (get_local 0x3e7)) - (i64.store offset=0x3e8 align=1 (i32.const 0) (get_local 0x3e8)) - (i64.store offset=0x3e9 align=1 (i32.const 0) (get_local 0x3e9)) - (i64.store offset=0x3ea align=1 (i32.const 0) (get_local 0x3ea)) - (i64.store offset=0x3eb align=1 (i32.const 0) (get_local 0x3eb)) - (i64.store offset=0x3ec align=1 (i32.const 0) (get_local 0x3ec)) - (i64.store offset=0x3ed align=1 (i32.const 0) (get_local 0x3ed)) - (i64.store offset=0x3ee align=1 (i32.const 0) (get_local 0x3ee)) - (i64.store offset=0x3ef align=1 (i32.const 0) (get_local 0x3ef)) - (i64.store offset=0x3f0 align=1 (i32.const 0) (get_local 0x3f0)) - (i64.store offset=0x3f1 align=1 (i32.const 0) (get_local 0x3f1)) - (i64.store offset=0x3f2 align=1 (i32.const 0) (get_local 0x3f2)) - (i64.store offset=0x3f3 align=1 (i32.const 0) (get_local 0x3f3)) - (i64.store offset=0x3f4 align=1 (i32.const 0) (get_local 0x3f4)) - (i64.store offset=0x3f5 align=1 (i32.const 0) (get_local 0x3f5)) - (i64.store offset=0x3f6 align=1 (i32.const 0) (get_local 0x3f6)) - (i64.store offset=0x3f7 align=1 (i32.const 0) (get_local 0x3f7)) - (i64.store offset=0x3f8 align=1 (i32.const 0) (get_local 0x3f8)) - (i64.store offset=0x3f9 align=1 (i32.const 0) (get_local 0x3f9)) - (i64.store offset=0x3fa align=1 (i32.const 0) (get_local 0x3fa)) - (i64.store offset=0x3fb align=1 (i32.const 0) (get_local 0x3fb)) - (i64.store offset=0x3fc align=1 (i32.const 0) (get_local 0x3fc)) - (i64.store offset=0x3fd align=1 (i32.const 0) (get_local 0x3fd)) - (i64.store offset=0x3fe align=1 (i32.const 0) (get_local 0x3fe)) - (i64.store offset=0x3ff align=1 (i32.const 0) (get_local 0x3ff)) - (i64.store offset=0x400 align=1 (i32.const 0) (get_local 0x400)) - (i64.store offset=0x401 align=1 (i32.const 0) (get_local 0x401)) - (i64.store offset=0x402 align=1 (i32.const 0) (get_local 0x402)) - (i64.store offset=0x403 align=1 (i32.const 0) (get_local 0x403)) - (i64.store offset=0x404 align=1 (i32.const 0) (get_local 0x404)) - (i64.store offset=0x405 align=1 (i32.const 0) (get_local 0x405)) - (i64.store offset=0x406 align=1 (i32.const 0) (get_local 0x406)) - (i64.store offset=0x407 align=1 (i32.const 0) (get_local 0x407)) - (i64.store offset=0x408 align=1 (i32.const 0) (get_local 0x408)) - (i64.store offset=0x409 align=1 (i32.const 0) (get_local 0x409)) - (i64.store offset=0x40a align=1 (i32.const 0) (get_local 0x40a)) - (i64.store offset=0x40b align=1 (i32.const 0) (get_local 0x40b)) - (i64.store offset=0x40c align=1 (i32.const 0) (get_local 0x40c)) - (i64.store offset=0x40d align=1 (i32.const 0) (get_local 0x40d)) - (i64.store offset=0x40e align=1 (i32.const 0) (get_local 0x40e)) - (i64.store offset=0x40f align=1 (i32.const 0) (get_local 0x40f)) - (i64.store offset=0x410 align=1 (i32.const 0) (get_local 0x410)) - (i64.store offset=0x411 align=1 (i32.const 0) (get_local 0x411)) - (i64.store offset=0x412 align=1 (i32.const 0) (get_local 0x412)) - (i64.store offset=0x413 align=1 (i32.const 0) (get_local 0x413)) - (i64.store offset=0x414 align=1 (i32.const 0) (get_local 0x414)) - (i64.store offset=0x415 align=1 (i32.const 0) (get_local 0x415)) - (i64.store offset=0x416 align=1 (i32.const 0) (get_local 0x416)) - (i64.store offset=0x417 align=1 (i32.const 0) (get_local 0x417)) - (i64.store offset=0x418 align=1 (i32.const 0) (get_local 0x418)) - (i64.store offset=0x419 align=1 (i32.const 0) (get_local 0x419)) - (i64.store offset=0x41a align=1 (i32.const 0) (get_local 0x41a)) - (i64.store offset=0x41b align=1 (i32.const 0) (get_local 0x41b)) - (i64.store offset=0x41c align=1 (i32.const 0) (get_local 0x41c)) - (i64.store offset=0x41d align=1 (i32.const 0) (get_local 0x41d)) - (i64.store offset=0x41e align=1 (i32.const 0) (get_local 0x41e)) - (i64.store offset=0x41f align=1 (i32.const 0) (get_local 0x41f)) - ) -) - -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 0)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 100)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 200)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 300)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 400)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 500)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 600)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 700)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 800)) "call stack exhausted") -(assert_exhaustion (invoke "test-guard-page-skip" (i32.const 900)) "call stack exhausted") \ No newline at end of file diff --git a/tests/samples/stack.wast b/tests/samples/stack.wast deleted file mode 100644 index 88147fa..0000000 --- a/tests/samples/stack.wast +++ /dev/null @@ -1,220 +0,0 @@ -(module - (func (export "fac-expr") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (if - (i64.eq (get_local $i) (i64.const 0)) - (then (br $done)) - (else - (set_local $res (i64.mul (get_local $i) (get_local $res))) - (set_local $i (i64.sub (get_local $i) (i64.const 1))) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - (func (export "fac-stack") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (get_local $n) - (set_local $i) - (i64.const 1) - (set_local $res) - (block $done - (loop $loop - (get_local $i) - (i64.const 0) - (i64.eq) - (if - (then (br $done)) - (else - (get_local $i) - (get_local $res) - (i64.mul) - (set_local $res) - (get_local $i) - (i64.const 1) - (i64.sub) - (set_local $i) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - (func (export "fac-stack-raw") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - get_local $n - set_local $i - i64.const 1 - set_local $res - block $done - loop $loop - get_local $i - i64.const 0 - i64.eq - if $body - br $done - else $body - get_local $i - get_local $res - i64.mul - set_local $res - get_local $i - i64.const 1 - i64.sub - set_local $i - end $body - br $loop - end $loop - end $done - get_local $res - ) - - (func (export "fac-mixed") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - (block $done - (loop $loop - (i64.eq (get_local $i) (i64.const 0)) - (if - (then (br $done)) - (else - (i64.mul (get_local $i) (get_local $res)) - (set_local $res) - (i64.sub (get_local $i) (i64.const 1)) - (set_local $i) - ) - ) - (br $loop) - ) - ) - (get_local $res) - ) - - (func (export "fac-mixed-raw") (param $n i64) (result i64) - (local $i i64) - (local $res i64) - (set_local $i (get_local $n)) - (set_local $res (i64.const 1)) - block $done - loop $loop - (i64.eq (get_local $i) (i64.const 0)) - if - br $done - else - (i64.mul (get_local $i) (get_local $res)) - set_local $res - (i64.sub (get_local $i) (i64.const 1)) - set_local $i - end - br $loop - end - end - get_local $res - ) -) - -(assert_return (invoke "fac-expr" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-stack" (i64.const 25)) (i64.const 7034535277573963776)) -(assert_return (invoke "fac-mixed" (i64.const 25)) (i64.const 7034535277573963776)) - - -;; Syntax of flat call_indirect - -(module - (type $proc (func)) - (table 1 anyfunc) - - (func - (block i32.const 0 call_indirect) - (loop i32.const 0 call_indirect) - (if (i32.const 0) (then i32.const 0 call_indirect)) - (if (i32.const 0) - (then i32.const 0 call_indirect) - (else i32.const 0 call_indirect) - ) - (block i32.const 0 call_indirect (type $proc)) - (loop i32.const 0 call_indirect (type $proc)) - (if (i32.const 0) (then i32.const 0 call_indirect (type $proc))) - (if (i32.const 0) - (then i32.const 0 call_indirect (type $proc)) - (else i32.const 0 call_indirect (type $proc)) - ) - (block i32.const 0 i32.const 0 call_indirect (param i32)) - (loop i32.const 0 i32.const 0 call_indirect (param i32)) - (if (i32.const 0) (then i32.const 0 i32.const 0 call_indirect (param i32))) - (if (i32.const 0) - (then i32.const 0 i32.const 0 call_indirect (param i32)) - (else i32.const 0 i32.const 0 call_indirect (param i32)) - ) - (block (result i32) i32.const 0 call_indirect (result i32)) (drop) - (loop (result i32) i32.const 0 call_indirect (result i32)) (drop) - (if (result i32) (i32.const 0) - (then i32.const 0 call_indirect (result i32)) - (else i32.const 0 call_indirect (result i32)) - ) (drop) - (block i32.const 0 call_indirect (type $proc) (param) (result)) - (loop i32.const 0 call_indirect (type $proc) (param) (result)) - (if (i32.const 0) - (then i32.const 0 call_indirect (type $proc) (param) (result)) - ) - (if (i32.const 0) - (then i32.const 0 call_indirect (type $proc) (param) (param) (result)) - (else i32.const 0 call_indirect (type $proc) (param) (result) (result)) - ) - - block i32.const 0 call_indirect end - loop i32.const 0 call_indirect end - i32.const 0 if i32.const 0 call_indirect end - i32.const 0 if i32.const 0 call_indirect else i32.const 0 call_indirect end - block i32.const 0 call_indirect (type $proc) end - loop i32.const 0 call_indirect (type $proc) end - i32.const 0 if i32.const 0 call_indirect (type $proc) end - i32.const 0 - if - i32.const 0 call_indirect (type $proc) - else - i32.const 0 call_indirect (type $proc) - end - block i32.const 0 i32.const 0 call_indirect (param i32) end - loop i32.const 0 i32.const 0 call_indirect (param i32) end - i32.const 0 if i32.const 0 i32.const 0 call_indirect (param i32) end - i32.const 0 - if - i32.const 0 i32.const 0 call_indirect (param i32) - else - i32.const 0 i32.const 0 call_indirect (param i32) - end - block (result i32) i32.const 0 call_indirect (result i32) end drop - loop (result i32) i32.const 0 call_indirect (result i32) end drop - i32.const 0 - if (result i32) - i32.const 0 call_indirect (result i32) - else - i32.const 0 call_indirect (result i32) - end drop - block i32.const 0 call_indirect (type $proc) (param) (result) end - loop i32.const 0 call_indirect (type $proc) (param) (result) end - i32.const 0 if i32.const 0 call_indirect (type $proc) (param) (result) end - i32.const 0 - if - i32.const 0 call_indirect (type $proc) (param) (result) - else - i32.const 0 call_indirect (type $proc) (param) (param) (result) (result) - end - i32.const 0 call_indirect - ) -) diff --git a/tests/samples/start.wast b/tests/samples/start.wast deleted file mode 100644 index 6719edb..0000000 --- a/tests/samples/start.wast +++ /dev/null @@ -1,100 +0,0 @@ -(assert_invalid - (module (func) (start 1)) - "unknown function" -) - -(assert_invalid - (module - (func $main (result i32) (return (i32.const 0))) - (start $main) - ) - "start function" -) -(assert_invalid - (module - (func $main (param $a i32)) - (start $main) - ) - "start function" -) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - - (start $main) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (memory (data "A")) - (func $inc - (i32.store8 - (i32.const 0) - (i32.add - (i32.load8_u (i32.const 0)) - (i32.const 1) - ) - ) - ) - (func $get (result i32) - (return (i32.load8_u (i32.const 0))) - ) - (func $main - (call $inc) - (call $inc) - (call $inc) - ) - (start 2) - (export "inc" (func $inc)) - (export "get" (func $get)) -) -(assert_return (invoke "get") (i32.const 68)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 69)) -(invoke "inc") -(assert_return (invoke "get") (i32.const 70)) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 1))) - (start 1) -) - -(module - (func $print_i32 (import "spectest" "print_i32") (param i32)) - (func $main (call $print_i32 (i32.const 2))) - (start $main) -) - -(module - (func $print (import "spectest" "print")) - (start $print) -) - -(assert_trap - (module (func $main (unreachable)) (start $main)) - "unreachable" -) diff --git a/tests/samples/store_retval.wast b/tests/samples/store_retval.wast deleted file mode 100644 index a4d0358..0000000 --- a/tests/samples/store_retval.wast +++ /dev/null @@ -1,55 +0,0 @@ -(assert_invalid - (module (func (param i32) (result i32) (set_local 0 (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (func (param i64) (result i64) (set_local 0 (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (func (param f32) (result f32) (set_local 0 (f32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (func (param f64) (result f64) (set_local 0 (f64.const 1)))) - "type mismatch" -) - -(assert_invalid - (module (memory 1) (func (param i32) (result i32) (i32.store (i32.const 0) (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store (i32.const 0) (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param f32) (result f32) (f32.store (i32.const 0) (f32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param f64) (result f64) (f64.store (i32.const 0) (f64.const 1)))) - "type mismatch" -) - -(assert_invalid - (module (memory 1) (func (param i32) (result i32) (i32.store8 (i32.const 0) (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i32) (result i32) (i32.store16 (i32.const 0) (i32.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store8 (i32.const 0) (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store16 (i32.const 0) (i64.const 1)))) - "type mismatch" -) -(assert_invalid - (module (memory 1) (func (param i64) (result i64) (i64.store32 (i32.const 0) (i64.const 1)))) - "type mismatch" -) - diff --git a/tests/samples/switch.wast b/tests/samples/switch.wast deleted file mode 100644 index 829acc0..0000000 --- a/tests/samples/switch.wast +++ /dev/null @@ -1,150 +0,0 @@ -(module - ;; Statement switch - (func (export "stmt") (param $i i32) (result i32) - (local $j i32) - (set_local $j (i32.const 100)) - (block $switch - (block $7 - (block $default - (block $6 - (block $5 - (block $4 - (block $3 - (block $2 - (block $1 - (block $0 - (br_table $0 $1 $2 $3 $4 $5 $6 $7 $default - (get_local $i) - ) - ) ;; 0 - (return (get_local $i)) - ) ;; 1 - (nop) - ;; fallthrough - ) ;; 2 - ;; fallthrough - ) ;; 3 - (set_local $j (i32.sub (i32.const 0) (get_local $i))) - (br $switch) - ) ;; 4 - (br $switch) - ) ;; 5 - (set_local $j (i32.const 101)) - (br $switch) - ) ;; 6 - (set_local $j (i32.const 101)) - ;; fallthrough - ) ;; default - (set_local $j (i32.const 102)) - ) ;; 7 - ;; fallthrough - ) - (return (get_local $j)) - ) - - ;; Expression switch - (func (export "expr") (param $i i64) (result i64) - (local $j i64) - (set_local $j (i64.const 100)) - (return - (block $switch (result i64) - (block $7 - (block $default - (block $4 - (block $5 - (block $6 - (block $3 - (block $2 - (block $1 - (block $0 - (br_table $0 $1 $2 $3 $4 $5 $6 $7 $default - (i32.wrap/i64 (get_local $i)) - ) - ) ;; 0 - (return (get_local $i)) - ) ;; 1 - (nop) - ;; fallthrough - ) ;; 2 - ;; fallthrough - ) ;; 3 - (br $switch (i64.sub (i64.const 0) (get_local $i))) - ) ;; 6 - (set_local $j (i64.const 101)) - ;; fallthrough - ) ;; 4 - ;; fallthrough - ) ;; 5 - ;; fallthrough - ) ;; default - (br $switch (get_local $j)) - ) ;; 7 - (i64.const -5) - ) - ) - ) - - ;; Argument switch - (func (export "arg") (param $i i32) (result i32) - (return - (block $2 (result i32) - (i32.add (i32.const 10) - (block $1 (result i32) - (i32.add (i32.const 100) - (block $0 (result i32) - (i32.add (i32.const 1000) - (block $default (result i32) - (br_table $0 $1 $2 $default - (i32.mul (i32.const 2) (get_local $i)) - (i32.and (i32.const 3) (get_local $i)) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - - ;; Corner cases - (func (export "corner") (result i32) - (block - (br_table 0 (i32.const 0)) - ) - (i32.const 1) - ) -) - -(assert_return (invoke "stmt" (i32.const 0)) (i32.const 0)) -(assert_return (invoke "stmt" (i32.const 1)) (i32.const -1)) -(assert_return (invoke "stmt" (i32.const 2)) (i32.const -2)) -(assert_return (invoke "stmt" (i32.const 3)) (i32.const -3)) -(assert_return (invoke "stmt" (i32.const 4)) (i32.const 100)) -(assert_return (invoke "stmt" (i32.const 5)) (i32.const 101)) -(assert_return (invoke "stmt" (i32.const 6)) (i32.const 102)) -(assert_return (invoke "stmt" (i32.const 7)) (i32.const 100)) -(assert_return (invoke "stmt" (i32.const -10)) (i32.const 102)) - -(assert_return (invoke "expr" (i64.const 0)) (i64.const 0)) -(assert_return (invoke "expr" (i64.const 1)) (i64.const -1)) -(assert_return (invoke "expr" (i64.const 2)) (i64.const -2)) -(assert_return (invoke "expr" (i64.const 3)) (i64.const -3)) -(assert_return (invoke "expr" (i64.const 6)) (i64.const 101)) -(assert_return (invoke "expr" (i64.const 7)) (i64.const -5)) -(assert_return (invoke "expr" (i64.const -10)) (i64.const 100)) - -(assert_return (invoke "arg" (i32.const 0)) (i32.const 110)) -(assert_return (invoke "arg" (i32.const 1)) (i32.const 12)) -(assert_return (invoke "arg" (i32.const 2)) (i32.const 4)) -(assert_return (invoke "arg" (i32.const 3)) (i32.const 1116)) -(assert_return (invoke "arg" (i32.const 4)) (i32.const 118)) -(assert_return (invoke "arg" (i32.const 5)) (i32.const 20)) -(assert_return (invoke "arg" (i32.const 6)) (i32.const 12)) -(assert_return (invoke "arg" (i32.const 7)) (i32.const 1124)) -(assert_return (invoke "arg" (i32.const 8)) (i32.const 126)) - -(assert_return (invoke "corner") (i32.const 1)) - -(assert_invalid (module (func (br_table 3 (i32.const 0)))) "unknown label") diff --git a/tests/samples/tee_local.wast b/tests/samples/tee_local.wast deleted file mode 100644 index 452793e..0000000 --- a/tests/samples/tee_local.wast +++ /dev/null @@ -1,236 +0,0 @@ -;; Test `tee_local` operator - -(module - ;; Typing - - (func (export "type-local-i32") (result i32) (local i32) (tee_local 0 (i32.const 0))) - (func (export "type-local-i64") (result i64) (local i64) (tee_local 0 (i64.const 0))) - (func (export "type-local-f32") (result f32) (local f32) (tee_local 0 (f32.const 0))) - (func (export "type-local-f64") (result f64) (local f64) (tee_local 0 (f64.const 0))) - - (func (export "type-param-i32") (param i32) (result i32) (tee_local 0 (i32.const 10))) - (func (export "type-param-i64") (param i64) (result i64) (tee_local 0 (i64.const 11))) - (func (export "type-param-f32") (param f32) (result f32) (tee_local 0 (f32.const 11.1))) - (func (export "type-param-f64") (param f64) (result f64) (tee_local 0 (f64.const 12.2))) - - (func (export "type-mixed") (param i64 f32 f64 i32 i32) (local f32 i64 i64 f64) - (drop (i64.eqz (tee_local 0 (i64.const 0)))) - (drop (f32.neg (tee_local 1 (f32.const 0)))) - (drop (f64.neg (tee_local 2 (f64.const 0)))) - (drop (i32.eqz (tee_local 3 (i32.const 0)))) - (drop (i32.eqz (tee_local 4 (i32.const 0)))) - (drop (f32.neg (tee_local 5 (f32.const 0)))) - (drop (i64.eqz (tee_local 6 (i64.const 0)))) - (drop (i64.eqz (tee_local 7 (i64.const 0)))) - (drop (f64.neg (tee_local 8 (f64.const 0)))) - ) - - ;; Writing - - (func (export "write") (param i64 f32 f64 i32 i32) (result i64) (local f32 i64 i64 f64) - (drop (tee_local 1 (f32.const -0.3))) - (drop (tee_local 3 (i32.const 40))) - (drop (tee_local 4 (i32.const -7))) - (drop (tee_local 5 (f32.const 5.5))) - (drop (tee_local 6 (i64.const 6))) - (drop (tee_local 8 (f64.const 8))) - (i64.trunc_s/f64 - (f64.add - (f64.convert_u/i64 (get_local 0)) - (f64.add - (f64.promote/f32 (get_local 1)) - (f64.add - (get_local 2) - (f64.add - (f64.convert_u/i32 (get_local 3)) - (f64.add - (f64.convert_s/i32 (get_local 4)) - (f64.add - (f64.promote/f32 (get_local 5)) - (f64.add - (f64.convert_u/i64 (get_local 6)) - (f64.add - (f64.convert_u/i64 (get_local 7)) - (get_local 8) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - - ;; Result - - (func (export "result") (param i64 f32 f64 i32 i32) (result f64) - (local f32 i64 i64 f64) - (f64.add - (f64.convert_u/i64 (tee_local 0 (i64.const 1))) - (f64.add - (f64.promote/f32 (tee_local 1 (f32.const 2))) - (f64.add - (tee_local 2 (f64.const 3.3)) - (f64.add - (f64.convert_u/i32 (tee_local 3 (i32.const 4))) - (f64.add - (f64.convert_s/i32 (tee_local 4 (i32.const 5))) - (f64.add - (f64.promote/f32 (tee_local 5 (f32.const 5.5))) - (f64.add - (f64.convert_u/i64 (tee_local 6 (i64.const 6))) - (f64.add - (f64.convert_u/i64 (tee_local 7 (i64.const 0))) - (tee_local 8 (f64.const 8)) - ) - ) - ) - ) - ) - ) - ) - ) - ) -) - -(assert_return (invoke "type-local-i32") (i32.const 0)) -(assert_return (invoke "type-local-i64") (i64.const 0)) -(assert_return (invoke "type-local-f32") (f32.const 0)) -(assert_return (invoke "type-local-f64") (f64.const 0)) - -(assert_return (invoke "type-param-i32" (i32.const 2)) (i32.const 10)) -(assert_return (invoke "type-param-i64" (i64.const 3)) (i64.const 11)) -(assert_return (invoke "type-param-f32" (f32.const 4.4)) (f32.const 11.1)) -(assert_return (invoke "type-param-f64" (f64.const 5.5)) (f64.const 12.2)) - -(assert_return - (invoke "type-mixed" - (i64.const 1) (f32.const 2.2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) -) - -(assert_return - (invoke "write" - (i64.const 1) (f32.const 2) (f64.const 3.3) (i32.const 4) (i32.const 5) - ) - (i64.const 56) -) - -(assert_return - (invoke "result" - (i64.const -1) (f32.const -2) (f64.const -3.3) (i32.const -4) (i32.const -5) - ) - (f64.const 34.8) -) - - -;; Invalid typing of access to locals - -(assert_invalid - (module (func $type-local-num-vs-num (result i64) (local i32) (tee_local 0 (i32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f32) (i32.eqz (tee_local 0 (f32.const 0))))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-num-vs-num (local f64 i64) (f64.neg (tee_local 1 (i64.const 0))))) - "type mismatch" -) - -(assert_invalid - (module (func $type-local-arg-void-vs-num (local i32) (tee_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local i32) (tee_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f32) (tee_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-local-arg-num-vs-num (local f64 i64) (tee_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid typing of access to parameters - -(assert_invalid - (module (func $type-param-num-vs-num (param i32) (result i64) (get_local 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f32) (i32.eqz (get_local 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-num-vs-num (param f64 i64) (f64.neg (get_local 1)))) - "type mismatch" -) - -(assert_invalid - (module (func $type-param-arg-void-vs-num (param i32) (tee_local 0 (nop)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param i32) (tee_local 0 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f32) (tee_local 0 (f64.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-param-arg-num-vs-num (param f64 i64) (tee_local 1 (f64.const 0)))) - "type mismatch" -) - - -;; Invalid local index - -(assert_invalid - (module (func $unbound-local (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-local (local i32 i64) (get_local 14324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-param (param i32 i64) (get_local 2))) - "unknown local" -) -(assert_invalid - (module (func $large-param (local i32 i64) (get_local 714324343))) - "unknown local" -) - -(assert_invalid - (module (func $unbound-mixed (param i32) (local i32 i64) (get_local 3))) - "unknown local" -) -(assert_invalid - (module (func $large-mixed (param i64) (local i32 i64) (get_local 214324343))) - "unknown local" -) - -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param f32) (local i32) (tee_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64 i32) (local f32) (tee_local 1 (f32.const 0)))) - "type mismatch" -) -(assert_invalid - (module (func $type-mixed-arg-num-vs-num (param i64) (local f64 i64) (tee_local 1 (i64.const 0)))) - "type mismatch" -) - diff --git a/tests/samples/token.wast b/tests/samples/token.wast deleted file mode 100644 index 1dcd32e..0000000 --- a/tests/samples/token.wast +++ /dev/null @@ -1,10 +0,0 @@ -;; Test tokenization - -(assert_malformed - (module quote "(func (drop (i32.const0)))") - "unknown operator" -) -(assert_malformed - (module quote "(func br 0drop)") - "unknown operator" -) diff --git a/tests/samples/traps.wast b/tests/samples/traps.wast deleted file mode 100644 index a940140..0000000 --- a/tests/samples/traps.wast +++ /dev/null @@ -1,91 +0,0 @@ -;; Test that traps are preserved even in instructions which might otherwise -;; be dead-code-eliminated. These functions all perform an operation and -;; discard its return value. - -(module - (func (export "no_dce.i32.div_s") (param $x i32) (param $y i32) - (drop (i32.div_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i32.div_u") (param $x i32) (param $y i32) - (drop (i32.div_u (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.div_s") (param $x i64) (param $y i64) - (drop (i64.div_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.div_u") (param $x i64) (param $y i64) - (drop (i64.div_u (get_local $x) (get_local $y)))) -) - -(assert_trap (invoke "no_dce.i32.div_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i32.div_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.div_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.div_u" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i32.div_s" (i32.const 0x80000000) (i32.const -1)) "integer overflow") -(assert_trap (invoke "no_dce.i64.div_s" (i64.const 0x8000000000000000) (i64.const -1)) "integer overflow") - -(module - (func (export "no_dce.i32.rem_s") (param $x i32) (param $y i32) - (drop (i32.rem_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i32.rem_u") (param $x i32) (param $y i32) - (drop (i32.rem_u (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.rem_s") (param $x i64) (param $y i64) - (drop (i64.rem_s (get_local $x) (get_local $y)))) - (func (export "no_dce.i64.rem_u") (param $x i64) (param $y i64) - (drop (i64.rem_u (get_local $x) (get_local $y)))) -) - -(assert_trap (invoke "no_dce.i32.rem_s" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i32.rem_u" (i32.const 1) (i32.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.rem_s" (i64.const 1) (i64.const 0)) "integer divide by zero") -(assert_trap (invoke "no_dce.i64.rem_u" (i64.const 1) (i64.const 0)) "integer divide by zero") - -(module - (func (export "no_dce.i32.trunc_s_f32") (param $x f32) (drop (i32.trunc_s/f32 (get_local $x)))) - (func (export "no_dce.i32.trunc_u_f32") (param $x f32) (drop (i32.trunc_u/f32 (get_local $x)))) - (func (export "no_dce.i32.trunc_s_f64") (param $x f64) (drop (i32.trunc_s/f64 (get_local $x)))) - (func (export "no_dce.i32.trunc_u_f64") (param $x f64) (drop (i32.trunc_u/f64 (get_local $x)))) - (func (export "no_dce.i64.trunc_s_f32") (param $x f32) (drop (i64.trunc_s/f32 (get_local $x)))) - (func (export "no_dce.i64.trunc_u_f32") (param $x f32) (drop (i64.trunc_u/f32 (get_local $x)))) - (func (export "no_dce.i64.trunc_s_f64") (param $x f64) (drop (i64.trunc_s/f64 (get_local $x)))) - (func (export "no_dce.i64.trunc_u_f64") (param $x f64) (drop (i64.trunc_u/f64 (get_local $x)))) -) - -(assert_trap (invoke "no_dce.i32.trunc_s_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i32.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i32.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i32.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_s_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_u_f32" (f32.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_s_f64" (f64.const nan)) "invalid conversion to integer") -(assert_trap (invoke "no_dce.i64.trunc_u_f64" (f64.const nan)) "invalid conversion to integer") - -(module - (memory 1) - - (func (export "no_dce.i32.load") (param $i i32) (drop (i32.load (get_local $i)))) - (func (export "no_dce.i32.load16_s") (param $i i32) (drop (i32.load16_s (get_local $i)))) - (func (export "no_dce.i32.load16_u") (param $i i32) (drop (i32.load16_u (get_local $i)))) - (func (export "no_dce.i32.load8_s") (param $i i32) (drop (i32.load8_s (get_local $i)))) - (func (export "no_dce.i32.load8_u") (param $i i32) (drop (i32.load8_u (get_local $i)))) - (func (export "no_dce.i64.load") (param $i i32) (drop (i64.load (get_local $i)))) - (func (export "no_dce.i64.load32_s") (param $i i32) (drop (i64.load32_s (get_local $i)))) - (func (export "no_dce.i64.load32_u") (param $i i32) (drop (i64.load32_u (get_local $i)))) - (func (export "no_dce.i64.load16_s") (param $i i32) (drop (i64.load16_s (get_local $i)))) - (func (export "no_dce.i64.load16_u") (param $i i32) (drop (i64.load16_u (get_local $i)))) - (func (export "no_dce.i64.load8_s") (param $i i32) (drop (i64.load8_s (get_local $i)))) - (func (export "no_dce.i64.load8_u") (param $i i32) (drop (i64.load8_u (get_local $i)))) - (func (export "no_dce.f32.load") (param $i i32) (drop (f32.load (get_local $i)))) - (func (export "no_dce.f64.load") (param $i i32) (drop (f64.load (get_local $i)))) -) - -(assert_trap (invoke "no_dce.i32.load" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load16_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load16_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load8_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i32.load8_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load32_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load32_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load16_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load16_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load8_s" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.i64.load8_u" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.f32.load" (i32.const 65536)) "out of bounds memory access") -(assert_trap (invoke "no_dce.f64.load" (i32.const 65536)) "out of bounds memory access") diff --git a/tests/samples/type.wast b/tests/samples/type.wast deleted file mode 100644 index 5ceeeb2..0000000 --- a/tests/samples/type.wast +++ /dev/null @@ -1,59 +0,0 @@ -;; Test type definitions - -(module - (type (func)) - (type $t (func)) - - (type (func (param i32))) - (type (func (param $x i32))) - (type (func (result i32))) - (type (func (param i32) (result i32))) - (type (func (param $x i32) (result i32))) - - (type (func (param f32 f64))) - ;; (type (func (result i64 f32))) - ;; (type (func (param i32 i64) (result f32 f64))) - - (type (func (param f32) (param f64))) - (type (func (param $x f32) (param f64))) - (type (func (param f32) (param $y f64))) - (type (func (param $x f32) (param $y f64))) - ;; (type (func (result i64) (result f32))) - ;; (type (func (param i32) (param i64) (result f32) (result f64))) - ;; (type (func (param $x i32) (param $y i64) (result f32) (result f64))) - - (type (func (param f32 f64) (param $x i32) (param f64 i32 i32))) - ;; (type (func (result i64 i64 f32) (result f32 i32))) - ;; (type - ;; (func (param i32 i32) (param i64 i32) (result f32 f64) (result f64 i32)) - ;; ) - - (type (func (param) (param $x f32) (param) (param) (param f64 i32) (param))) - ;; (type - ;; (func (result) (result) (result i64 i64) (result) (result f32) (result)) - ;; ) - ;; (type - ;; (func - ;; (param i32 i32) (param i64 i32) (param) (param $x i32) (param) - ;; (result) (result f32 f64) (result f64 i32) (result) - ;; ) - ;; ) -) - -(assert_malformed - (module quote "(type (func (result i32) (param i32)))") - "result before parameter" -) -(assert_malformed - (module quote "(type (func (result $x i32)))") - "unexpected token" -) - -(assert_invalid - (module (type (func (result i32 i32)))) - "invalid result arity" -) -(assert_invalid - (module (type (func (result i32) (result i32)))) - "invalid result arity" -) diff --git a/tests/samples/typecheck.wast b/tests/samples/typecheck.wast deleted file mode 100644 index 0ac0c75..0000000 --- a/tests/samples/typecheck.wast +++ /dev/null @@ -1,425 +0,0 @@ -;; TODO: move all tests in this file to appropriate operator-specific files. - -(assert_invalid - (module (func $type-unary-operand-missing - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-block - (i32.const 0) - (block (i32.eqz) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-loop - (i32.const 0) - (loop (i32.eqz) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-if - (i32.const 0) (i32.const 0) - (if (then (i32.eqz) (drop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-operand-missing-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.eqz))) (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-binary-1st-operand-missing - (i32.add) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing - (i32.const 0) (i32.add) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-block - (i32.const 0) (i32.const 0) - (block (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-block - (i32.const 0) - (block (i32.const 0) (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-loop - (i32.const 0) (i32.const 0) - (loop (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-loop - (i32.const 0) - (loop (i32.const 0) (i32.add) (drop)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-if - (i32.const 0) (i32.const 0) (i32.const 0) - (if (i32.add) (then (drop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-if - (i32.const 0) (i32.const 0) - (if (i32.const 0) (then (i32.add)) (else (drop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-1st-operand-missing-in-else - (i32.const 0) (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.add) (i32.const 0))) - (drop) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-2nd-operand-missing-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (i32.add))) - (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-if-operand-missing - (if (then)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-block - (i32.const 0) - (block (if (then))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-loop - (i32.const 0) - (loop (if (then))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-if - (i32.const 0) (i32.const 0) - (if (then (if (then)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-operand-missing-in-else - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (if (then)) (i32.const 0))) - (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-br-operand-missing - (block (result i32) (br 0)) - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br-operand-missing-in-block - (i32.const 0) - (block (result i32) (br 0)) - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br-operand-missing-in-if - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (br 0))) - ) - (i32.eqz) (drop) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br-operand-missing-in-else - (block - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (br 0))) - ) - (i32.eqz) (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-operand-missing (result i32) - (return) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-block (result i32) - (i32.const 0) - (block (return)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-loop (result i32) - (i32.const 0) - (loop (return)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-if (result i32) - (i32.const 0) (i32.const 0) - (if (then (return))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-return-operand-missing-in-else (result i32) - (i32.const 0) (i32.const 0) - (if (result i32) (then (i32.const 0)) (else (return))) (drop) - )) - "type mismatch" -) - -;; TODO(stack): more of the above - -;; if condition -(assert_invalid (module (func (if (f32.const 0) (then)))) "type mismatch") - -;; br_if condition -(assert_invalid (module (func (block (br_if 0 (f32.const 0))))) "type mismatch") - -;; br_table key -(assert_invalid - (module (func (block (br_table 0 (f32.const 0))))) - "type mismatch") - -;; call params -(assert_invalid (module (func (param i32)) (func (call 0 (f32.const 0)))) "type mismatch") -(assert_invalid - (module - (type (func (param i32))) - (func (type 0)) - (table 0 anyfunc) - (func - (call_indirect (type 0) (i32.const 0) (f32.const 0)))) - "type mismatch") - -;; call_indirect index -(assert_invalid - (module - (type (func)) - (func (type 0)) - (table 0 anyfunc) - (func (call_indirect (type 0) (f32.const 0)))) - "type mismatch") - -;; return -(assert_invalid (module (func (result i32) (return (f32.const 0)))) "type mismatch") - -;; set_local -(assert_invalid (module (func (local i32) (set_local 0 (f32.const 0)))) "type mismatch") - -;; load index -(assert_invalid (module (memory 1) (func (i32.load (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load8_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load8_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load16_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.load16_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load8_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load8_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load16_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load16_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load32_s (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.load32_u (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f32.load (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f64.load (f32.const 0)))) "type mismatch") - -;; store index -(assert_invalid (module (memory 1) (func (i32.store (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store8 (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store16 (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store (f32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store8 (f32.const 0) (i64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store16 (f32.const 0) (i64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store32 (f32.const 0) (i64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f32.store (f32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f64.store (f32.const 0) (f64.const 0)))) "type mismatch") - -;; store value -(assert_invalid (module (memory 1) (func (i32.store (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store8 (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i32.store16 (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store8 (i32.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store16 (i32.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (i64.store32 (i32.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f32.store (i32.const 0) (i32.const 0)))) "type mismatch") -(assert_invalid (module (memory 1) (func (f64.store (i32.const 0) (i64.const 0)))) "type mismatch") - -;; binary -(assert_invalid (module (func (i32.add (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.and (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.div_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.div_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.mul (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.or (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rem_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rem_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rotl (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.rotr (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.shl (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.shr_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.shr_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.sub (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.xor (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.add (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.and (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.div_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.div_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.mul (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.or (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rem_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rem_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rotl (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.rotr (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.shl (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.shr_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.shr_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.sub (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.xor (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.add (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.copysign (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.div (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.max (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.min (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.mul (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.sub (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.add (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.copysign (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.div (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.max (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.min (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.mul (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.sub (i64.const 0) (f32.const 0)))) "type mismatch") - -;; unary -(assert_invalid (module (func (i32.eqz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.clz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ctz (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.popcnt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.eqz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.clz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ctz (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.popcnt (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.abs (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.ceil (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.floor (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.nearest (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.neg (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.sqrt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.trunc (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.abs (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.ceil (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.floor (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.nearest (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.neg (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.sqrt (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.trunc (i64.const 0)))) "type mismatch") - -;; compare -(assert_invalid (module (func (i32.eq (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ge_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ge_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.gt_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.gt_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.le_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.le_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.lt_s (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.lt_u (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.ne (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.eq (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ge_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ge_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.gt_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.gt_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.le_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.le_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.lt_s (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.lt_u (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.ne (i32.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.eq (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.ge (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.gt (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.le (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.lt (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.ne (i64.const 0) (f64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.eq (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.ge (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.gt (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.le (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.lt (i64.const 0) (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.ne (i64.const 0) (f32.const 0)))) "type mismatch") - -;; convert -(assert_invalid (module (func (i32.wrap/i64 (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_s/f32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_u/f32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_s/f64 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.trunc_u/f64 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i32.reinterpret/f32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.extend_s/i32 (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.extend_u/i32 (f32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_s/f32 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_u/f32 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_s/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.trunc_u/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (i64.reinterpret/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_s/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_u/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_s/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.convert_u/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.demote/f64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f32.reinterpret/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_s/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_u/i32 (i64.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_s/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.convert_u/i64 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.promote/f32 (i32.const 0)))) "type mismatch") -(assert_invalid (module (func (f64.reinterpret/i64 (i32.const 0)))) "type mismatch") - -;; memory.grow -(assert_invalid (module (memory 1) (func (memory.grow (f32.const 0)))) "type mismatch") diff --git a/tests/samples/unreachable.wast b/tests/samples/unreachable.wast deleted file mode 100644 index f9b888e..0000000 --- a/tests/samples/unreachable.wast +++ /dev/null @@ -1,290 +0,0 @@ -;; Test `unreachable` operator - -(module - ;; Auxiliary definitions - (func $dummy) - (func $dummy3 (param i32 i32 i32)) - - (func (export "type-i32") (result i32) (unreachable)) - (func (export "type-i64") (result i32) (unreachable)) - (func (export "type-f32") (result f64) (unreachable)) - (func (export "type-f64") (result f64) (unreachable)) - - (func (export "as-func-first") (result i32) - (unreachable) (i32.const -1) - ) - (func (export "as-func-mid") (result i32) - (call $dummy) (unreachable) (i32.const -1) - ) - (func (export "as-func-last") - (call $dummy) (unreachable) - ) - (func (export "as-func-value") (result i32) - (call $dummy) (unreachable) - ) - - (func (export "as-block-first") (result i32) - (block (result i32) (unreachable) (i32.const 2)) - ) - (func (export "as-block-mid") (result i32) - (block (result i32) (call $dummy) (unreachable) (i32.const 2)) - ) - (func (export "as-block-last") - (block (nop) (call $dummy) (unreachable)) - ) - (func (export "as-block-value") (result i32) - (block (result i32) (nop) (call $dummy) (unreachable)) - ) - (func (export "as-block-broke") (result i32) - (block (result i32) (call $dummy) (br 0 (i32.const 1)) (unreachable)) - ) - - (func (export "as-loop-first") (result i32) - (loop (result i32) (unreachable) (i32.const 2)) - ) - (func (export "as-loop-mid") (result i32) - (loop (result i32) (call $dummy) (unreachable) (i32.const 2)) - ) - (func (export "as-loop-last") - (loop (nop) (call $dummy) (unreachable)) - ) - (func (export "as-loop-broke") (result i32) - (block (result i32) - (loop (result i32) (call $dummy) (br 1 (i32.const 1)) (unreachable)) - ) - ) - - (func (export "as-br-value") (result i32) - (block (result i32) (br 0 (unreachable))) - ) - - (func (export "as-br_if-cond") - (block (br_if 0 (unreachable))) - ) - (func (export "as-br_if-value") (result i32) - (block (result i32) - (drop (br_if 0 (unreachable) (i32.const 1))) (i32.const 7) - ) - ) - (func (export "as-br_if-value-cond") (result i32) - (block (result i32) - (drop (br_if 0 (i32.const 6) (unreachable))) (i32.const 7) - ) - ) - - (func (export "as-br_table-index") - (block (br_table 0 0 0 (unreachable))) - ) - (func (export "as-br_table-value") (result i32) - (block (result i32) - (br_table 0 0 0 (unreachable) (i32.const 1)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-2") (result i32) - (block (result i32) - (block (result i32) (br_table 0 1 (unreachable) (i32.const 1))) - ) - ) - (func (export "as-br_table-value-index") (result i32) - (block (result i32) - (br_table 0 0 (i32.const 6) (unreachable)) (i32.const 7) - ) - ) - (func (export "as-br_table-value-and-index") (result i32) - (block (result i32) (br_table 0 0 (unreachable)) (i32.const 8)) - ) - - (func (export "as-return-value") (result i64) - (return (unreachable)) - ) - - (func (export "as-if-cond") (result i32) - (if (result i32) (unreachable) (then (i32.const 0)) (else (i32.const 1))) - ) - (func (export "as-if-then") (param i32 i32) (result i32) - (if (result i32) (get_local 0) (then (unreachable)) (else (get_local 1))) - ) - (func (export "as-if-else") (param i32 i32) (result i32) - (if (result i32) (get_local 0) (then (get_local 1)) (else (unreachable))) - ) - - (func (export "as-select-first") (param i32 i32) (result i32) - (select (unreachable) (get_local 0) (get_local 1)) - ) - (func (export "as-select-second") (param i32 i32) (result i32) - (select (get_local 0) (unreachable) (get_local 1)) - ) - (func (export "as-select-cond") (result i32) - (select (i32.const 0) (i32.const 1) (unreachable)) - ) - - (func (export "as-call-first") - (call $dummy3 (unreachable) (i32.const 2) (i32.const 3)) - ) - (func (export "as-call-mid") - (call $dummy3 (i32.const 1) (unreachable) (i32.const 3)) - ) - (func (export "as-call-last") - (call $dummy3 (i32.const 1) (i32.const 2) (unreachable)) - ) - - (type $sig (func (param i32 i32 i32))) - (table anyfunc (elem $dummy3)) - (func (export "as-call_indirect-func") - (call_indirect (type $sig) - (unreachable) (i32.const 1) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-first") - (call_indirect (type $sig) - (i32.const 0) (unreachable) (i32.const 2) (i32.const 3) - ) - ) - (func (export "as-call_indirect-mid") - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (unreachable) (i32.const 3) - ) - ) - (func (export "as-call_indirect-last") - (call_indirect (type $sig) - (i32.const 0) (i32.const 1) (i32.const 2) (unreachable) - ) - ) - - (func (export "as-set_local-value") (local f32) - (set_local 0 (unreachable)) - ) - - (memory 1) - (func (export "as-load-address") (result f32) - (f32.load (unreachable)) - ) - (func (export "as-loadN-address") (result i64) - (i64.load8_s (unreachable)) - ) - - (func (export "as-store-address") - (f64.store (unreachable) (f64.const 7)) - ) - (func (export "as-store-value") - (i64.store (i32.const 2) (unreachable)) - ) - - (func (export "as-storeN-address") - (i32.store8 (unreachable) (i32.const 7)) - ) - (func (export "as-storeN-value") - (i64.store16 (i32.const 2) (unreachable)) - ) - - (func (export "as-unary-operand") (result f32) - (f32.neg (unreachable)) - ) - - (func (export "as-binary-left") (result i32) - (i32.add (unreachable) (i32.const 10)) - ) - (func (export "as-binary-right") (result i64) - (i64.sub (i64.const 10) (unreachable)) - ) - - (func (export "as-test-operand") (result i32) - (i32.eqz (unreachable)) - ) - - (func (export "as-compare-left") (result i32) - (f64.le (unreachable) (f64.const 10)) - ) - (func (export "as-compare-right") (result i32) - (f32.ne (f32.const 10) (unreachable)) - ) - - (func (export "as-convert-operand") (result i32) - (i32.wrap/i64 (unreachable)) - ) - - (func (export "as-memory.grow-size") (result i32) - (memory.grow (unreachable)) - ) -) - -(assert_trap (invoke "type-i32") "unreachable") -(assert_trap (invoke "type-i64") "unreachable") -(assert_trap (invoke "type-f32") "unreachable") -(assert_trap (invoke "type-f64") "unreachable") - -(assert_trap (invoke "as-func-first") "unreachable") -(assert_trap (invoke "as-func-mid") "unreachable") -(assert_trap (invoke "as-func-last") "unreachable") -(assert_trap (invoke "as-func-value") "unreachable") - -(assert_trap (invoke "as-block-first") "unreachable") -(assert_trap (invoke "as-block-mid") "unreachable") -(assert_trap (invoke "as-block-last") "unreachable") -(assert_trap (invoke "as-block-value") "unreachable") -(assert_return (invoke "as-block-broke") (i32.const 1)) - -(assert_trap (invoke "as-loop-first") "unreachable") -(assert_trap (invoke "as-loop-mid") "unreachable") -(assert_trap (invoke "as-loop-last") "unreachable") -(assert_return (invoke "as-loop-broke") (i32.const 1)) - -(assert_trap (invoke "as-br-value") "unreachable") - -(assert_trap (invoke "as-br_if-cond") "unreachable") -(assert_trap (invoke "as-br_if-value") "unreachable") -(assert_trap (invoke "as-br_if-value-cond") "unreachable") - -(assert_trap (invoke "as-br_table-index") "unreachable") -(assert_trap (invoke "as-br_table-value") "unreachable") -(assert_trap (invoke "as-br_table-value-2") "unreachable") -(assert_trap (invoke "as-br_table-value-index") "unreachable") -(assert_trap (invoke "as-br_table-value-and-index") "unreachable") - -(assert_trap (invoke "as-return-value") "unreachable") - -(assert_trap (invoke "as-if-cond") "unreachable") -(assert_trap (invoke "as-if-then" (i32.const 1) (i32.const 6)) "unreachable") -(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6)) -(assert_trap (invoke "as-if-else" (i32.const 0) (i32.const 6)) "unreachable") -(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6)) - -(assert_trap (invoke "as-select-first" (i32.const 0) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-first" (i32.const 1) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-second" (i32.const 0) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-second" (i32.const 1) (i32.const 6)) "unreachable") -(assert_trap (invoke "as-select-cond") "unreachable") - -(assert_trap (invoke "as-call-first") "unreachable") -(assert_trap (invoke "as-call-mid") "unreachable") -(assert_trap (invoke "as-call-last") "unreachable") - -(assert_trap (invoke "as-call_indirect-func") "unreachable") -(assert_trap (invoke "as-call_indirect-first") "unreachable") -(assert_trap (invoke "as-call_indirect-mid") "unreachable") -(assert_trap (invoke "as-call_indirect-last") "unreachable") - -(assert_trap (invoke "as-set_local-value") "unreachable") - -(assert_trap (invoke "as-load-address") "unreachable") -(assert_trap (invoke "as-loadN-address") "unreachable") - -(assert_trap (invoke "as-store-address") "unreachable") -(assert_trap (invoke "as-store-value") "unreachable") -(assert_trap (invoke "as-storeN-address") "unreachable") -(assert_trap (invoke "as-storeN-value") "unreachable") - -(assert_trap (invoke "as-unary-operand") "unreachable") - -(assert_trap (invoke "as-binary-left") "unreachable") -(assert_trap (invoke "as-binary-right") "unreachable") - -(assert_trap (invoke "as-test-operand") "unreachable") - -(assert_trap (invoke "as-compare-left") "unreachable") -(assert_trap (invoke "as-compare-right") "unreachable") - -(assert_trap (invoke "as-convert-operand") "unreachable") - -(assert_trap (invoke "as-memory.grow-size") "unreachable") - diff --git a/tests/samples/unreached-invalid.wast b/tests/samples/unreached-invalid.wast deleted file mode 100644 index 907049f..0000000 --- a/tests/samples/unreached-invalid.wast +++ /dev/null @@ -1,709 +0,0 @@ -;; Failures in unreachable code. - -(assert_invalid - (module (func $local-index (unreachable) (drop (get_local 0)))) - "unknown local" -) -(assert_invalid - (module (func $global-index (unreachable) (drop (get_global 0)))) - "unknown global" -) -(assert_invalid - (module (func $func-index (unreachable) (call 1))) - "unknown function" -) -(assert_invalid - (module (func $label-index (unreachable) (br 1))) - "unknown label" -) - -(assert_invalid - (module (func $type-num-vs-num - (unreachable) (drop (i64.eqz (i32.const 0)))) - ) - "type mismatch" -) -(assert_invalid - (module (func $type-poly-num-vs-num (result i32) - (unreachable) (i64.const 0) (i32.const 0) (select) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-poly-transitive-num-vs-num (result i32) - (unreachable) - (i64.const 0) (i32.const 0) (select) - (i32.const 0) (i32.const 0) (select) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unconsumed-const (unreachable) (i32.const 0))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-result (unreachable) (i32.eqz))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-result2 - (unreachable) (i32.const 0) (i32.add) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-poly0 (unreachable) (select))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-poly1 (unreachable) (i32.const 0) (select))) - "type mismatch" -) -(assert_invalid - (module (func $type-unconsumed-poly2 - (unreachable) (i32.const 0) (i32.const 0) (select) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-break - (block (br 0) (block (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-break - (block (br 0) (drop (i32.eqz (f32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-break - (block (br 0) (block (drop (f32.eq (i32.const 1))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-break - (block (br 0) (drop (f32.eq (i32.const 1) (f32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-break - (block (br 0) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-break (result i32) - (block (result i32) (i32.const 1) (br 0) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-break - (block (loop (br 1) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-break (result i32) - (loop (result i32) (br 1 (i32.const 1)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-break - (br 0) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-break (result i32) - (br 0 (i32.const 1)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-return - (return) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-return - (return) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-return - (return) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-return - (return) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-return - (block (return) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-return (result i32) - (block (result i32) (i32.const 1) (return (i32.const 0)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-return - (block (loop (return) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-return (result i32) - (loop (result i32) (return (i32.const 1)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-return - (return) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-return (result i32) - (return (i32.const 1)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-unreachable - (unreachable) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-loop-after-unreachable - (unreachable) (loop (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-i32-loop-after-unreachable - (unreachable) (loop (result i32) (i32.eqz (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-unreachable - (unreachable) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-unreachable - (unreachable) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-unreachable - (unreachable) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-unreachable - (block (unreachable) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-unreachable (result i32) - (block (result i32) (i32.const 1) (unreachable) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-unreachable - (block (loop (unreachable) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-unreachable (result i32) - (loop (result i32) (unreachable) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-unreachable - (unreachable) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-unreachable (result i32) - (unreachable) (f32.const 0) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-if-after-unreachable - (unreachable) (if (i32.const 0) (then (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-else-after-unreachable - (unreachable) (if (i32.const 0) (then (nop)) (else (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-void-in-else-after-unreachable-if - (if (i32.const 0) (then (unreachable)) (else (drop (i32.eqz (nop))))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-nested-unreachable - (block (unreachable)) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-nested-unreachable - (block (unreachable)) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-nested-unreachable - (block (unreachable)) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-nested-unreachable - (block (unreachable)) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-nested-unreachable - (block (block (unreachable)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-nested-unreachable - (result i32) - (block (result i32) (i32.const 1) (block (unreachable)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-nested-unreachable - (block (loop (block (unreachable)) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-nested-unreachable - (result i32) - (loop (result i32) (block (unreachable)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-nested-unreachable - (block (unreachable)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-nested-unreachable - (result i32) - (block (unreachable)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-after-infinite-loop - (loop (br 0)) (block (drop (i32.eqz (nop)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-after-infinite-loop - (loop (br 0)) (drop (i32.eqz (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-after-infinite-loop - (loop (br 0)) (block (drop (f32.eq (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-after-infinite-loop - (loop (br 0)) (drop (f32.eq (i32.const 1) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-after-infinite-loop - (block (loop (br 0)) (i32.const 1)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-after-infinite-loop (result i32) - (block (result i32) (i32.const 1) (loop (br 0)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-void-after-infinite-loop - (block (loop (loop (br 0)) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-num-vs-num-after-infinite-loop (result i32) - (loop (result i32) (loop (br 0)) (f32.const 0)) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-void-after-infinite-loop - (loop (br 0)) (i32.const 1) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-func-value-num-vs-num-after-infinite-loop (result i32) - (loop (br 0)) (f32.const 0) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-unary-num-vs-void-in-dead-body - (if (i32.const 0) (then (drop (i32.eqz (nop))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-unary-num-vs-num-in-dead-body - (if (i32.const 0) (then (drop (i32.eqz (f32.const 1))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-void-in-dead-body - (if (i32.const 0) (then (drop (f32.eq (i32.const 1))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-binary-num-vs-num-in-dead-body - (if (i32.const 0) (then (drop (f32.eq (i32.const 1) (f32.const 0))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-value-num-vs-void-in-dead-body - (if (i32.const 0) (then (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-if-value-num-vs-num-in-dead-body (result i32) - (if (result i32) (i32.const 0) (then (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-in-dead-body - (if (i32.const 0) (then (block (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-in-dead-body (result i32) - (if (result i32) (i32.const 0) (then (block (result i32) (f32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-void-in-dead-body - (if (i32.const 0) (then (loop (i32.const 1)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-num-vs-num-in-dead-body (result i32) - (if (result i32) (i32.const 0) (then (loop (result i32) (f32.const 0)))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-return-second-num-vs-num (result i32) - (return (i32.const 1)) (return (f64.const 1)) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-br-second-num-vs-num (result i32) - (block (result i32) (br 0 (i32.const 1)) (br 0 (f64.const 1))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-br_if-cond-num-vs-num-after-unreachable - (block (br_if 0 (unreachable) (f32.const 0))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_if-num-vs-void-after-unreachable (result i32) - (block (result i32) - (block (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_if-num-vs-num-after-unreachable (result i32) - (block (result i32) - (block (result f32) (unreachable) (br_if 1 (i32.const 0) (i32.const 0))) - (drop) (i32.const 0) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_if-num2-vs-num-after-unreachable (result i32) - (block (result i32) - (unreachable) (br_if 0 (i32.const 0) (i32.const 0)) (i32.const 0) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-num-vs-num-after-unreachable - (block (br_table 0 (unreachable) (f32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-label-num-vs-num-after-unreachable (result i32) - (block (result i32) (unreachable) (br_table 0 (f32.const 0) (i32.const 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-label-num-vs-label-void-after-unreachable - (block - (block (result f32) - (unreachable) - (br_table 0 1 0 (i32.const 1)) - ) - (drop) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-br_table-label-num-vs-label-num-after-unreachable - (block (result f64) - (block (result f32) - (unreachable) - (br_table 0 1 1 (i32.const 1)) - ) - (drop) - (f64.const 0) - ) - (drop) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested-unreachable-num-vs-void - (block (i32.const 3) (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-unreachable-void-vs-num (result i32) - (block (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-unreachable-num-vs-num (result i32) - (block (result i64) (i64.const 0) (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-unreachable-num2-vs-void (result i32) - (block (i32.const 3) (block (i64.const 1) (unreachable))) (i32.const 9) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested-br-num-vs-void - (block (i32.const 3) (block (br 1))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-br-void-vs-num (result i32) - (block (result i32) (block (br 1 (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-br-num-vs-num (result i32) - (block (result i32) (i64.const 0) (block (br 1 (i32.const 0)))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested2-br-num-vs-void - (block (block (i32.const 3) (block (br 2)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested2-br-void-vs-num (result i32) - (block (result i32) (block (block (br 2 (i32.const 0))))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested2-br-num-vs-num (result i32) - (block (result i32) - (block (result i64) (i64.const 0) (block (br 2 (i32.const 0)))) - ) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested2-br-num2-vs-void (result i32) - (block (i32.const 3) (block (i64.const 1) (br 1))) (i32.const 9) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-block-value-nested-return-num-vs-void - (block (i32.const 3) (block (return))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-return-void-vs-num (result i32) - (block (block (return (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-return-num-vs-num (result i32) - (block (result i64) (i64.const 0) (block (return (i32.const 0)))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-block-value-nested-return-num2-vs-void (result i32) - (block (i32.const 3) (block (i64.const 1) (return (i32.const 0)))) - (i32.const 9) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-loop-value-nested-unreachable-num-vs-void - (loop (i32.const 3) (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-nested-unreachable-void-vs-num (result i32) - (loop (block (unreachable))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-loop-value-nested-unreachable-num-vs-num (result i32) - (loop (result i64) (i64.const 0) (block (unreachable))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $type-cont-last-void-vs-empty (result i32) - (loop (br 0 (nop))) - )) - "type mismatch" -) -(assert_invalid - (module (func $type-cont-last-num-vs-empty (result i32) - (loop (br 0 (i32.const 0))) - )) - "type mismatch" -) - -(assert_invalid - (module (func $tee-local-unreachable-value - (local i32) - (tee_local 0 (unreachable)) - )) - "type mismatch" -) -(assert_invalid - (module (func $br_if-unreachable (result i32) - (block (result i32) - (block - (br_if 1 (unreachable) (i32.const 0)) - ) - (i32.const 0) - ) - )) - "type mismatch" -) -(assert_invalid - (module - (func $type-br_if-after-unreachable (result i64) - unreachable - br_if 0 - i64.extend_u/i32 - ) - ) - "type mismatch" -) diff --git a/tests/samples/unwind.wast b/tests/samples/unwind.wast deleted file mode 100644 index 40b0dcf..0000000 --- a/tests/samples/unwind.wast +++ /dev/null @@ -1,203 +0,0 @@ -;; Test that control-flow transfer unwinds stack and it can be anything after. - -(module - (func (export "func-unwind-by-unreachable") - (i32.const 3) (i64.const 1) (unreachable) - ) - (func (export "func-unwind-by-br") - (i32.const 3) (i64.const 1) (br 0) - ) - (func (export "func-unwind-by-br-value") (result i32) - (i32.const 3) (i64.const 1) (br 0 (i32.const 9)) - ) - (func (export "func-unwind-by-br_table") - (i32.const 3) (i64.const 1) (br_table 0 (i32.const 0)) - ) - (func (export "func-unwind-by-br_table-value") (result i32) - (i32.const 3) (i64.const 1) (br_table 0 (i32.const 9) (i32.const 0)) - ) - (func (export "func-unwind-by-return") (result i32) - (i32.const 3) (i64.const 1) (return (i32.const 9)) - ) - - (func (export "block-unwind-by-unreachable") - (block (i32.const 3) (i64.const 1) (unreachable)) - ) - (func (export "block-unwind-by-br") (result i32) - (block (i32.const 3) (i64.const 1) (br 0)) (i32.const 9) - ) - (func (export "block-unwind-by-br-value") (result i32) - (block (result i32) (i32.const 3) (i64.const 1) (br 0 (i32.const 9))) - ) - (func (export "block-unwind-by-br_table") (result i32) - (block (i32.const 3) (i64.const 1) (br_table 0 (i32.const 0))) (i32.const 9) - ) - (func (export "block-unwind-by-br_table-value") (result i32) - (block (result i32) - (i32.const 3) (i64.const 1) (br_table 0 (i32.const 9) (i32.const 0)) - ) - ) - (func (export "block-unwind-by-return") (result i32) - (block (result i32) (i32.const 3) (i64.const 1) (return (i32.const 9))) - ) - - (func (export "block-nested-unwind-by-unreachable") (result i32) - (block (result i32) (i32.const 3) (block (i64.const 1) (unreachable))) - ) - (func (export "block-nested-unwind-by-br") (result i32) - (block (i32.const 3) (block (i64.const 1) (br 1)) (drop)) (i32.const 9) - ) - (func (export "block-nested-unwind-by-br-value") (result i32) - (block (result i32) - (i32.const 3) (block (i64.const 1) (br 1 (i32.const 9))) - ) - ) - (func (export "block-nested-unwind-by-br_table") (result i32) - (block - (i32.const 3) (block (i64.const 1) (br_table 1 (i32.const 1))) - (drop) - ) - (i32.const 9) - ) - (func (export "block-nested-unwind-by-br_table-value") (result i32) - (block (result i32) - (i32.const 3) - (block (i64.const 1) (br_table 1 (i32.const 9) (i32.const 1))) - ) - ) - (func (export "block-nested-unwind-by-return") (result i32) - (block (result i32) - (i32.const 3) (block (i64.const 1) (return (i32.const 9))) - ) - ) - - (func (export "unary-after-unreachable") (result i32) - (f32.const 0) (unreachable) (i64.eqz) - ) - (func (export "unary-after-br") (result i32) - (block (result i32) (f32.const 0) (br 0 (i32.const 9)) (i64.eqz)) - ) - (func (export "unary-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (br_table 0 0 (i32.const 9) (i32.const 0)) (i64.eqz) - ) - ) - (func (export "unary-after-return") (result i32) - (f32.const 0) (return (i32.const 9)) (i64.eqz) - ) - - (func (export "binary-after-unreachable") (result i32) - (f32.const 0) (f64.const 1) (unreachable) (i64.eq) - ) - (func (export "binary-after-br") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (br 0 (i32.const 9)) (i64.eq) - ) - ) - (func (export "binary-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (br_table 0 (i32.const 9) (i32.const 0)) - (i64.eq) - ) - ) - (func (export "binary-after-return") (result i32) - (f32.const 0) (f64.const 1) (return (i32.const 9)) (i64.eq) - ) - - (func (export "select-after-unreachable") (result i32) - (f32.const 0) (f64.const 1) (i64.const 0) (unreachable) (select) - ) - (func (export "select-after-br") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (i64.const 0) (br 0 (i32.const 9)) (select) - ) - ) - (func (export "select-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (f64.const 1) (i64.const 0) - (br_table 0 (i32.const 9) (i32.const 0)) - (select) - ) - ) - (func (export "select-after-return") (result i32) - (f32.const 0) (f64.const 1) (i64.const 1) (return (i32.const 9)) (select) - ) - - (func (export "block-value-after-unreachable") (result i32) - (block (result i32) (f32.const 0) (unreachable)) - ) - (func (export "block-value-after-br") (result i32) - (block (result i32) (f32.const 0) (br 0 (i32.const 9))) - ) - (func (export "block-value-after-br_table") (result i32) - (block (result i32) - (f32.const 0) (br_table 0 0 (i32.const 9) (i32.const 0)) - ) - ) - (func (export "block-value-after-return") (result i32) - (block (result i32) (f32.const 0) (return (i32.const 9))) - ) - - (func (export "loop-value-after-unreachable") (result i32) - (loop (result i32) (f32.const 0) (unreachable)) - ) - (func (export "loop-value-after-br") (result i32) - (block (result i32) (loop (result i32) (f32.const 0) (br 1 (i32.const 9)))) - ) - (func (export "loop-value-after-br_table") (result i32) - (block (result i32) - (loop (result i32) - (f32.const 0) (br_table 1 1 (i32.const 9) (i32.const 0)) - ) - ) - ) - (func (export "loop-value-after-return") (result i32) - (loop (result i32) (f32.const 0) (return (i32.const 9))) - ) -) - -(assert_trap (invoke "func-unwind-by-unreachable") "unreachable") -(assert_return (invoke "func-unwind-by-br")) -(assert_return (invoke "func-unwind-by-br-value") (i32.const 9)) -(assert_return (invoke "func-unwind-by-br_table")) -(assert_return (invoke "func-unwind-by-br_table-value") (i32.const 9)) -(assert_return (invoke "func-unwind-by-return") (i32.const 9)) - -(assert_trap (invoke "block-unwind-by-unreachable") "unreachable") -(assert_return (invoke "block-unwind-by-br") (i32.const 9)) -(assert_return (invoke "block-unwind-by-br-value") (i32.const 9)) -(assert_return (invoke "block-unwind-by-br_table") (i32.const 9)) -(assert_return (invoke "block-unwind-by-br_table-value") (i32.const 9)) -(assert_return (invoke "block-unwind-by-return") (i32.const 9)) - -(assert_trap (invoke "block-nested-unwind-by-unreachable") "unreachable") -(assert_return (invoke "block-nested-unwind-by-br") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-br-value") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-br_table") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-br_table-value") (i32.const 9)) -(assert_return (invoke "block-nested-unwind-by-return") (i32.const 9)) - -(assert_trap (invoke "unary-after-unreachable") "unreachable") -(assert_return (invoke "unary-after-br") (i32.const 9)) -(assert_return (invoke "unary-after-br_table") (i32.const 9)) -(assert_return (invoke "unary-after-return") (i32.const 9)) - -(assert_trap (invoke "binary-after-unreachable") "unreachable") -(assert_return (invoke "binary-after-br") (i32.const 9)) -(assert_return (invoke "binary-after-br_table") (i32.const 9)) -(assert_return (invoke "binary-after-return") (i32.const 9)) - -(assert_trap (invoke "select-after-unreachable") "unreachable") -(assert_return (invoke "select-after-br") (i32.const 9)) -(assert_return (invoke "select-after-br_table") (i32.const 9)) -(assert_return (invoke "select-after-return") (i32.const 9)) - -(assert_trap (invoke "block-value-after-unreachable") "unreachable") -(assert_return (invoke "block-value-after-br") (i32.const 9)) -(assert_return (invoke "block-value-after-br_table") (i32.const 9)) -(assert_return (invoke "block-value-after-return") (i32.const 9)) - -(assert_trap (invoke "loop-value-after-unreachable") "unreachable") -(assert_return (invoke "loop-value-after-br") (i32.const 9)) -(assert_return (invoke "loop-value-after-br_table") (i32.const 9)) -(assert_return (invoke "loop-value-after-return") (i32.const 9)) diff --git a/tests/samples/utf8-custom-section-id.wast b/tests/samples/utf8-custom-section-id.wast deleted file mode 100644 index 129d2b9..0000000 --- a/tests/samples/utf8-custom-section-id.wast +++ /dev/null @@ -1,1792 +0,0 @@ -;;;;;; Invalid UTF-8 custom section names - -;;;; Continuation bytes not preceded by prefixes - -;; encoding starts with (first) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\80" ;; "\80" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x8f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\8f" ;; "\8f" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x90) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\90" ;; "\90" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x9f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\9f" ;; "\9f" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0xa0) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\a0" ;; "\a0" - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (last) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\bf" ;; "\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequences - -;; 2-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\c2\80\80" ;; "\c2\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\c2" ;; "\c2" - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\2e" ;; "\c2." - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequence contents - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c0\80" ;; "\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c0\bf" ;; "\c0\bf" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c1\80" ;; "\c1\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c1\bf" ;; "\c1\bf" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a contination byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\00" ;; "\c2\00" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\7f" ;; "\c2\7f" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\c0" ;; "\c2\c0" - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\c2\fd" ;; "\c2\fd" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\00" ;; "\df\00" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\7f" ;; "\df\7f" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\c0" ;; "\df\c0" - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\df\fd" ;; "\df\fd" - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequences - -;; 3-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\e1\80\80\80" ;; "\e1\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\e1\80" ;; "\e1\80" - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\2e" ;; "\e1\80." - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\e1" ;; "\e1" - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\e1\2e" ;; "\e1." - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\00\a0" ;; "\e0\00\a0" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\7f\a0" ;; "\e0\7f\a0" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\80\80" ;; "\e0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\80\a0" ;; "\e0\80\a0" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\9f\a0" ;; "\e0\9f\a0" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\9f\bf" ;; "\e0\9f\bf" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\c0\a0" ;; "\e0\c0\a0" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\fd\a0" ;; "\e0\fd\a0" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\00\80" ;; "\e1\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\7f\80" ;; "\e1\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\c0\80" ;; "\e1\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\fd\80" ;; "\e1\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\00\80" ;; "\ec\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\7f\80" ;; "\ec\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\c0\80" ;; "\ec\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\fd\80" ;; "\ec\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\00\80" ;; "\ed\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\7f\80" ;; "\ed\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\a0\80" ;; "\ed\a0\80" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\a0\bf" ;; "\ed\a0\bf" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\bf\80" ;; "\ed\bf\80" - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\bf\bf" ;; "\ed\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\c0\80" ;; "\ed\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\fd\80" ;; "\ed\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\00\80" ;; "\ee\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\7f\80" ;; "\ee\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\c0\80" ;; "\ee\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\fd\80" ;; "\ee\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\00\80" ;; "\ef\00\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\7f\80" ;; "\ef\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\c0\80" ;; "\ef\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\fd\80" ;; "\ef\fd\80" - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents (third byte) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\00" ;; "\e0\a0\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\7f" ;; "\e0\a0\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\c0" ;; "\e0\a0\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e0\a0\fd" ;; "\e0\a0\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\00" ;; "\e1\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\7f" ;; "\e1\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\c0" ;; "\e1\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\e1\80\fd" ;; "\e1\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\00" ;; "\ec\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\7f" ;; "\ec\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\c0" ;; "\ec\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ec\80\fd" ;; "\ec\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\00" ;; "\ed\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\7f" ;; "\ed\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\c0" ;; "\ed\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ed\80\fd" ;; "\ed\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\00" ;; "\ee\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\7f" ;; "\ee\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\c0" ;; "\ee\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ee\80\fd" ;; "\ee\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\00" ;; "\ef\80\00" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\7f" ;; "\ef\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\c0" ;; "\ef\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\ef\80\fd" ;; "\ef\80\fd" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequences - -;; 4-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\f1\80\80\80\80" ;; "\f1\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f1\80\80" ;; "\f1\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\23" ;; "\f1\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f1\80" ;; "\f1\80" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f1\80\23" ;; "\f1\80#" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\f1" ;; "\f1" - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f1\23" ;; "\f1#" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\00\90\90" ;; "\f0\00\90\90" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\7f\90\90" ;; "\f0\7f\90\90" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\80\80\80" ;; "\f0\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\80\90\90" ;; "\f0\80\90\90" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\8f\90\90" ;; "\f0\8f\90\90" - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\8f\bf\bf" ;; "\f0\8f\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\c0\90\90" ;; "\f0\c0\90\90" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\fd\90\90" ;; "\f0\fd\90\90" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\00\80\80" ;; "\f1\00\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\7f\80\80" ;; "\f1\7f\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\c0\80\80" ;; "\f1\c0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\fd\80\80" ;; "\f1\fd\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\00\80\80" ;; "\f3\00\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\7f\80\80" ;; "\f3\7f\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\c0\80\80" ;; "\f3\c0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\fd\80\80" ;; "\f3\fd\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\00\80\80" ;; "\f4\00\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\7f\80\80" ;; "\f4\7f\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\90\80\80" ;; "\f4\90\80\80" - ) - "invalid UTF-8 encoding" -) - -;; invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\bf\80\80" ;; "\f4\bf\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\c0\80\80" ;; "\f4\c0\80\80" - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\fd\80\80" ;; "\f4\fd\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f5\80\80\80" ;; "\f5\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f7\80\80\80" ;; "\f7\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f7\bf\bf\bf" ;; "\f7\bf\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (third byte) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\00\90" ;; "\f0\90\00\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\7f\90" ;; "\f0\90\7f\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\c0\90" ;; "\f0\90\c0\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\fd\90" ;; "\f0\90\fd\90" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\00\80" ;; "\f1\80\00\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\7f\80" ;; "\f1\80\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\c0\80" ;; "\f1\80\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\fd\80" ;; "\f1\80\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\00\80" ;; "\f3\80\00\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\7f\80" ;; "\f3\80\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\c0\80" ;; "\f3\80\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\fd\80" ;; "\f3\80\fd\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\00\80" ;; "\f4\80\00\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\7f\80" ;; "\f4\80\7f\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\c0\80" ;; "\f4\80\c0\80" - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\fd\80" ;; "\f4\80\fd\80" - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (fourth byte) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\00" ;; "\f0\90\90\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\7f" ;; "\f0\90\90\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\c0" ;; "\f0\90\90\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f0\90\90\fd" ;; "\f0\90\90\fd" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\00" ;; "\f1\80\80\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\7f" ;; "\f1\80\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\c0" ;; "\f1\80\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f1\80\80\fd" ;; "\f1\80\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\00" ;; "\f3\80\80\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\7f" ;; "\f3\80\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\c0" ;; "\f3\80\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f3\80\80\fd" ;; "\f3\80\80\fd" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\00" ;; "\f4\80\80\00" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\7f" ;; "\f4\80\80\7f" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\c0" ;; "\f4\80\80\c0" - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f4\80\80\fd" ;; "\f4\80\80\fd" - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequences - -;; 5-byte sequence contains 6 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\f8\80\80\80\80\80" ;; "\f8\80\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f8\80\80\80" ;; "\f8\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\f8\80\80\80\23" ;; "\f8\80\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f8\80\80" ;; "\f8\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\f8\80\80\23" ;; "\f8\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f8\80" ;; "\f8\80" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\f8\80\23" ;; "\f8\80#" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\f8" ;; "\f8" - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\f8\23" ;; "\f8#" - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequence contents - -;; (first) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\f8\80\80\80\80" ;; "\f8\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\fb\bf\bf\bf\bf" ;; "\fb\bf\bf\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequences - -;; 6-byte sequence contains 7 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\08" ;; custom section - "\07\fc\80\80\80\80\80\80" ;; "\fc\80\80\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\fc\80\80\80\80" ;; "\fc\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\fc\80\80\80\80\23" ;; "\fc\80\80\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\fc\80\80\80" ;; "\fc\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\06" ;; custom section - "\05\fc\80\80\80\23" ;; "\fc\80\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\fc\80\80" ;; "\fc\80\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\fc\80\80\23" ;; "\fc\80\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\fc\80" ;; "\fc\80" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\04" ;; custom section - "\03\fc\80\23" ;; "\fc\80#" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\fc" ;; "\fc" - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\fc\23" ;; "\fc#" - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequence contents - -;; (first) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\fc\80\80\80\80\80" ;; "\fc\80\80\80\80\80" - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\07" ;; custom section - "\06\fd\bf\bf\bf\bf\bf" ;; "\fd\bf\bf\bf\bf\bf" - ) - "invalid UTF-8 encoding" -) - -;;;; Miscellaneous invalid bytes - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\fe" ;; "\fe" - ) - "invalid UTF-8 encoding" -) - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\02" ;; custom section - "\01\ff" ;; "\ff" - ) - "invalid UTF-8 encoding" -) - -;; UTF-16BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\fe\ff" ;; "\fe\ff" - ) - "invalid UTF-8 encoding" -) - -;; UTF-32BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\00\00\fe\ff" ;; "\00\00\fe\ff" - ) - "invalid UTF-8 encoding" -) - -;; UTF-16LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\03" ;; custom section - "\02\ff\fe" ;; "\ff\fe" - ) - "invalid UTF-8 encoding" -) - -;; UTF-32LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\00\05" ;; custom section - "\04\ff\fe\00\00" ;; "\ff\fe\00\00" - ) - "invalid UTF-8 encoding" -) - diff --git a/tests/samples/utf8-import-field.wast b/tests/samples/utf8-import-field.wast deleted file mode 100644 index 1ff2aa0..0000000 --- a/tests/samples/utf8-import-field.wast +++ /dev/null @@ -1,2672 +0,0 @@ -;;;;;; Invalid UTF-8 import field names - -;;;; Continuation bytes not preceded by prefixes - -;; encoding starts with (first) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\80" ;; "\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x8f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\8f" ;; "\8f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x90) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\90" ;; "\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x9f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\9f" ;; "\9f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0xa0) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\a0" ;; "\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (last) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\bf" ;; "\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequences - -;; 2-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\c2\80\80" ;; "\c2\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\c2" ;; "\c2" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\2e" ;; "\c2." - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequence contents - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c0\80" ;; "\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c0\bf" ;; "\c0\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c1\80" ;; "\c1\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c1\bf" ;; "\c1\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a contination byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\00" ;; "\c2\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\7f" ;; "\c2\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\c0" ;; "\c2\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\c2\fd" ;; "\c2\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\00" ;; "\df\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\7f" ;; "\df\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\c0" ;; "\df\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\df\fd" ;; "\df\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequences - -;; 3-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\e1\80\80\80" ;; "\e1\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\e1\80" ;; "\e1\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\2e" ;; "\e1\80." - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\e1" ;; "\e1" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\e1\2e" ;; "\e1." - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\00\a0" ;; "\e0\00\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\7f\a0" ;; "\e0\7f\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\80\80" ;; "\e0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\80\a0" ;; "\e0\80\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\9f\a0" ;; "\e0\9f\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\9f\bf" ;; "\e0\9f\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\c0\a0" ;; "\e0\c0\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\fd\a0" ;; "\e0\fd\a0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\00\80" ;; "\e1\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\7f\80" ;; "\e1\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\c0\80" ;; "\e1\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\fd\80" ;; "\e1\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\00\80" ;; "\ec\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\7f\80" ;; "\ec\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\c0\80" ;; "\ec\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\fd\80" ;; "\ec\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\00\80" ;; "\ed\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\7f\80" ;; "\ed\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\a0\80" ;; "\ed\a0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\a0\bf" ;; "\ed\a0\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\bf\80" ;; "\ed\bf\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\bf\bf" ;; "\ed\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\c0\80" ;; "\ed\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\fd\80" ;; "\ed\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\00\80" ;; "\ee\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\7f\80" ;; "\ee\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\c0\80" ;; "\ee\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\fd\80" ;; "\ee\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\00\80" ;; "\ef\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\7f\80" ;; "\ef\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\c0\80" ;; "\ef\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\fd\80" ;; "\ef\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents (third byte) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\00" ;; "\e0\a0\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\7f" ;; "\e0\a0\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\c0" ;; "\e0\a0\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e0\a0\fd" ;; "\e0\a0\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\00" ;; "\e1\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\7f" ;; "\e1\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\c0" ;; "\e1\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\e1\80\fd" ;; "\e1\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\00" ;; "\ec\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\7f" ;; "\ec\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\c0" ;; "\ec\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ec\80\fd" ;; "\ec\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\00" ;; "\ed\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\7f" ;; "\ed\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\c0" ;; "\ed\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ed\80\fd" ;; "\ed\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\00" ;; "\ee\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\7f" ;; "\ee\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\c0" ;; "\ee\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ee\80\fd" ;; "\ee\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\00" ;; "\ef\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\7f" ;; "\ef\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\c0" ;; "\ef\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\ef\80\fd" ;; "\ef\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequences - -;; 4-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\f1\80\80\80\80" ;; "\f1\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f1\80\80" ;; "\f1\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\23" ;; "\f1\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f1\80" ;; "\f1\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f1\80\23" ;; "\f1\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\f1" ;; "\f1" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f1\23" ;; "\f1#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\00\90\90" ;; "\f0\00\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\7f\90\90" ;; "\f0\7f\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\80\80\80" ;; "\f0\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\80\90\90" ;; "\f0\80\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\8f\90\90" ;; "\f0\8f\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\8f\bf\bf" ;; "\f0\8f\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\c0\90\90" ;; "\f0\c0\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\fd\90\90" ;; "\f0\fd\90\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\00\80\80" ;; "\f1\00\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\7f\80\80" ;; "\f1\7f\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\c0\80\80" ;; "\f1\c0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\fd\80\80" ;; "\f1\fd\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\00\80\80" ;; "\f3\00\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\7f\80\80" ;; "\f3\7f\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\c0\80\80" ;; "\f3\c0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\fd\80\80" ;; "\f3\fd\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\00\80\80" ;; "\f4\00\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\7f\80\80" ;; "\f4\7f\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\90\80\80" ;; "\f4\90\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\bf\80\80" ;; "\f4\bf\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\c0\80\80" ;; "\f4\c0\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\fd\80\80" ;; "\f4\fd\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f5\80\80\80" ;; "\f5\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f7\80\80\80" ;; "\f7\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f7\bf\bf\bf" ;; "\f7\bf\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (third byte) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\00\90" ;; "\f0\90\00\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\7f\90" ;; "\f0\90\7f\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\c0\90" ;; "\f0\90\c0\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\fd\90" ;; "\f0\90\fd\90" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\00\80" ;; "\f1\80\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\7f\80" ;; "\f1\80\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\c0\80" ;; "\f1\80\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\fd\80" ;; "\f1\80\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\00\80" ;; "\f3\80\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\7f\80" ;; "\f3\80\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\c0\80" ;; "\f3\80\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\fd\80" ;; "\f3\80\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\00\80" ;; "\f4\80\00\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\7f\80" ;; "\f4\80\7f\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\c0\80" ;; "\f4\80\c0\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\fd\80" ;; "\f4\80\fd\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (fourth byte) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\00" ;; "\f0\90\90\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\7f" ;; "\f0\90\90\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\c0" ;; "\f0\90\90\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f0\90\90\fd" ;; "\f0\90\90\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\00" ;; "\f1\80\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\7f" ;; "\f1\80\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\c0" ;; "\f1\80\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f1\80\80\fd" ;; "\f1\80\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\00" ;; "\f3\80\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\7f" ;; "\f3\80\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\c0" ;; "\f3\80\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f3\80\80\fd" ;; "\f3\80\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\00" ;; "\f4\80\80\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\7f" ;; "\f4\80\80\7f" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\c0" ;; "\f4\80\80\c0" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f4\80\80\fd" ;; "\f4\80\80\fd" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequences - -;; 5-byte sequence contains 6 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\f8\80\80\80\80\80" ;; "\f8\80\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f8\80\80\80" ;; "\f8\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\f8\80\80\80\23" ;; "\f8\80\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f8\80\80" ;; "\f8\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\f8\80\80\23" ;; "\f8\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f8\80" ;; "\f8\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\f8\80\23" ;; "\f8\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\f8" ;; "\f8" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\f8\23" ;; "\f8#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequence contents - -;; (first) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\f8\80\80\80\80" ;; "\f8\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\fb\bf\bf\bf\bf" ;; "\fb\bf\bf\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequences - -;; 6-byte sequence contains 7 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\11" ;; import section - "\01" ;; length 1 - "\07\fc\80\80\80\80\80\80" ;; "\fc\80\80\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\fc\80\80\80\80" ;; "\fc\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\fc\80\80\80\80\23" ;; "\fc\80\80\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\fc\80\80\80" ;; "\fc\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\05\fc\80\80\80\23" ;; "\fc\80\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\fc\80\80" ;; "\fc\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\fc\80\80\23" ;; "\fc\80\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\fc\80" ;; "\fc\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\03\fc\80\23" ;; "\fc\80#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\fc" ;; "\fc" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\fc\23" ;; "\fc#" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequence contents - -;; (first) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\fc\80\80\80\80\80" ;; "\fc\80\80\80\80\80" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\06\fd\bf\bf\bf\bf\bf" ;; "\fd\bf\bf\bf\bf\bf" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; Miscellaneous invalid bytes - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\fe" ;; "\fe" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\01\ff" ;; "\ff" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\fe\ff" ;; "\fe\ff" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\00\00\fe\ff" ;; "\00\00\fe\ff" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\02\ff\fe" ;; "\ff\fe" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\ff\fe\00\00" ;; "\ff\fe\00\00" - "\04\74\65\73\74" ;; "test" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - diff --git a/tests/samples/utf8-import-module.wast b/tests/samples/utf8-import-module.wast deleted file mode 100644 index ceabbeb..0000000 --- a/tests/samples/utf8-import-module.wast +++ /dev/null @@ -1,2672 +0,0 @@ -;;;;;; Invalid UTF-8 import module names - -;;;; Continuation bytes not preceded by prefixes - -;; encoding starts with (first) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\80" ;; "\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x8f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\8f" ;; "\8f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x90) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\90" ;; "\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0x9f) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\9f" ;; "\9f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (0xa0) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\a0" ;; "\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; encoding starts with (last) continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\bf" ;; "\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequences - -;; 2-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\c2\80\80" ;; "\c2\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\c2" ;; "\c2" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 2-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\2e" ;; "\c2." - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 2-byte sequence contents - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c0\80" ;; "\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c0\bf" ;; "\c0\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c1\80" ;; "\c1\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xc1 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c1\bf" ;; "\c1\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a contination byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\00" ;; "\c2\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\7f" ;; "\c2\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\c0" ;; "\c2\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (first) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\c2\fd" ;; "\c2\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\00" ;; "\df\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\7f" ;; "\df\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\c0" ;; "\df\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte after (last) 2-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\df\fd" ;; "\df\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequences - -;; 3-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\e1\80\80\80" ;; "\e1\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\e1\80" ;; "\e1\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\2e" ;; "\e1\80." - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\e1" ;; "\e1" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 3-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\e1\2e" ;; "\e1." - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\00\a0" ;; "\e0\00\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\7f\a0" ;; "\e0\7f\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\80\80" ;; "\e0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\80\a0" ;; "\e0\80\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\9f\a0" ;; "\e0\9f\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xe0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\9f\bf" ;; "\e0\9f\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\c0\a0" ;; "\e0\c0\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\fd\a0" ;; "\e0\fd\a0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\00\80" ;; "\e1\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\7f\80" ;; "\e1\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\c0\80" ;; "\e1\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\fd\80" ;; "\e1\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\00\80" ;; "\ec\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\7f\80" ;; "\ec\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\c0\80" ;; "\ec\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\fd\80" ;; "\ec\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\00\80" ;; "\ed\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\7f\80" ;; "\ed\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\a0\80" ;; "\ed\a0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\a0\bf" ;; "\ed\a0\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\bf\80" ;; "\ed\bf\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; byte sequence reserved for UTF-16 surrogate half -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\bf\bf" ;; "\ed\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\c0\80" ;; "\ed\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\fd\80" ;; "\ed\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\00\80" ;; "\ee\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\7f\80" ;; "\ee\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\c0\80" ;; "\ee\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\fd\80" ;; "\ee\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\00\80" ;; "\ef\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\7f\80" ;; "\ef\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\c0\80" ;; "\ef\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\fd\80" ;; "\ef\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 3-byte sequence contents (third byte) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\00" ;; "\e0\a0\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\7f" ;; "\e0\a0\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\c0" ;; "\e0\a0\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xe0) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e0\a0\fd" ;; "\e0\a0\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\00" ;; "\e1\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\7f" ;; "\e1\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\c0" ;; "\e1\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\e1\80\fd" ;; "\e1\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\00" ;; "\ec\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\7f" ;; "\ec\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\c0" ;; "\ec\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ec\80\fd" ;; "\ec\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\00" ;; "\ed\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\7f" ;; "\ed\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\c0" ;; "\ed\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xed) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ed\80\fd" ;; "\ed\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\00" ;; "\ee\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\7f" ;; "\ee\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\c0" ;; "\ee\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ee\80\fd" ;; "\ee\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\00" ;; "\ef\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\7f" ;; "\ef\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\c0" ;; "\ef\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 3-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\ef\80\fd" ;; "\ef\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequences - -;; 4-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\f1\80\80\80\80" ;; "\f1\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f1\80\80" ;; "\f1\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\23" ;; "\f1\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f1\80" ;; "\f1\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f1\80\23" ;; "\f1\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\f1" ;; "\f1" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 4-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f1\23" ;; "\f1#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\00\90\90" ;; "\f0\00\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\7f\90\90" ;; "\f0\7f\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\80\80\80" ;; "\f0\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\80\90\90" ;; "\f0\80\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\8f\90\90" ;; "\f0\8f\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; overlong encoding after 0xf0 prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\8f\bf\bf" ;; "\f0\8f\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\c0\90\90" ;; "\f0\c0\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\fd\90\90" ;; "\f0\fd\90\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\00\80\80" ;; "\f1\00\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\7f\80\80" ;; "\f1\7f\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\c0\80\80" ;; "\f1\c0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\fd\80\80" ;; "\f1\fd\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\00\80\80" ;; "\f3\00\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\7f\80\80" ;; "\f3\7f\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\c0\80\80" ;; "\f3\c0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\fd\80\80" ;; "\f3\fd\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\00\80\80" ;; "\f4\00\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\7f\80\80" ;; "\f4\7f\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\90\80\80" ;; "\f4\90\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid code point -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\bf\80\80" ;; "\f4\bf\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\c0\80\80" ;; "\f4\c0\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; first byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\fd\80\80" ;; "\f4\fd\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (first) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f5\80\80\80" ;; "\f5\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f7\80\80\80" ;; "\f7\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 4-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f7\bf\bf\bf" ;; "\f7\bf\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (third byte) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\00\90" ;; "\f0\90\00\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\7f\90" ;; "\f0\90\7f\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\c0\90" ;; "\f0\90\c0\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\fd\90" ;; "\f0\90\fd\90" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\00\80" ;; "\f1\80\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\7f\80" ;; "\f1\80\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\c0\80" ;; "\f1\80\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\fd\80" ;; "\f1\80\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\00\80" ;; "\f3\80\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\7f\80" ;; "\f3\80\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\c0\80" ;; "\f3\80\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\fd\80" ;; "\f3\80\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\00\80" ;; "\f4\80\00\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\7f\80" ;; "\f4\80\7f\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\c0\80" ;; "\f4\80\c0\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; second byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\fd\80" ;; "\f4\80\fd\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 4-byte sequence contents (fourth byte) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\00" ;; "\f0\90\90\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\7f" ;; "\f0\90\90\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\c0" ;; "\f0\90\90\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf0) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f0\90\90\fd" ;; "\f0\90\90\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\00" ;; "\f1\80\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\7f" ;; "\f1\80\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\c0" ;; "\f1\80\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (first normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f1\80\80\fd" ;; "\f1\80\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\00" ;; "\f3\80\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\7f" ;; "\f3\80\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\c0" ;; "\f3\80\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (last normal) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f3\80\80\fd" ;; "\f3\80\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\00" ;; "\f4\80\80\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\7f" ;; "\f4\80\80\7f" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\c0" ;; "\f4\80\80\c0" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; third byte after (0xf4) 4-byte prefix not a continuation byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f4\80\80\fd" ;; "\f4\80\80\fd" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequences - -;; 5-byte sequence contains 6 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\f8\80\80\80\80\80" ;; "\f8\80\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f8\80\80\80" ;; "\f8\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\f8\80\80\80\23" ;; "\f8\80\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f8\80\80" ;; "\f8\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\f8\80\80\23" ;; "\f8\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f8\80" ;; "\f8\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\f8\80\23" ;; "\f8\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\f8" ;; "\f8" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 5-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\f8\23" ;; "\f8#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 5-byte sequence contents - -;; (first) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\f8\80\80\80\80" ;; "\f8\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 5-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\fb\bf\bf\bf\bf" ;; "\fb\bf\bf\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequences - -;; 6-byte sequence contains 7 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\11" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\07\fc\80\80\80\80\80\80" ;; "\fc\80\80\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\fc\80\80\80\80" ;; "\fc\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 5 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\fc\80\80\80\80\23" ;; "\fc\80\80\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\fc\80\80\80" ;; "\fc\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 4 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0f" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\05\fc\80\80\80\23" ;; "\fc\80\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\fc\80\80" ;; "\fc\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 3 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\fc\80\80\23" ;; "\fc\80\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\fc\80" ;; "\fc\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 2 bytes -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0d" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\03\fc\80\23" ;; "\fc\80#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte at end of string -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\fc" ;; "\fc" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; 6-byte sequence contains 1 byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\fc\23" ;; "\fc#" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; 6-byte sequence contents - -;; (first) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\fc\80\80\80\80\80" ;; "\fc\80\80\80\80\80" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; (last) invalid 6-byte prefix -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\10" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\06\fd\bf\bf\bf\bf\bf" ;; "\fd\bf\bf\bf\bf\bf" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;;;; Miscellaneous invalid bytes - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\fe" ;; "\fe" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; invalid byte -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0b" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\01\ff" ;; "\ff" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\fe\ff" ;; "\fe\ff" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32BE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\00\00\fe\ff" ;; "\00\00\fe\ff" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-16LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0c" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\02\ff\fe" ;; "\ff\fe" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - -;; UTF-32LE BOM -(assert_malformed - (module binary - "\00asm" "\01\00\00\00" - "\02\0e" ;; import section - "\01" ;; length 1 - "\04\74\65\73\74" ;; "test" - "\04\ff\fe\00\00" ;; "\ff\fe\00\00" - "\03" ;; GlobalImport - "\7f" ;; i32 - "\00" ;; immutable - ) - "invalid UTF-8 encoding" -) - diff --git a/tests/samples/utf8-invalid-encoding.wast b/tests/samples/utf8-invalid-encoding.wast deleted file mode 100644 index 3b35730..0000000 --- a/tests/samples/utf8-invalid-encoding.wast +++ /dev/null @@ -1,176 +0,0 @@ -(assert_malformed (module quote "(func (export \"\\00\\00\\fe\\ff\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\8f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\9f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c0\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c1\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c1\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\2e\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\c2\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\df\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\00\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\7f\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\80\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\9f\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\9f\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\a0\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\c0\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e0\\fd\\a0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\2e\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\2e\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\e1\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ec\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\a0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\a0\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\bf\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ed\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ee\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ef\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\00\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\7f\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\80\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\8f\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\8f\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\00\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\7f\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\90\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\c0\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\90\\fd\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\c0\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f0\\fd\\90\\90\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\00\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\7f\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\80\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\c0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f1\\fd\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\00\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\7f\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\80\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\c0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f3\\fd\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\00\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\7f\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\00\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\7f\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\7f\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\c0\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\80\\fd\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\c0\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\80\\fd\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\90\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\bf\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\c0\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f4\\fd\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f5\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f7\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f7\\bf\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\f8\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fb\\bf\\bf\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\\23\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\\80\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fc\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fd\\bf\\bf\\bf\\bf\\bf\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fe\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\fe\\ff\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ff\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ff\\fe\\00\\00\"))") "invalid UTF-8 encoding") -(assert_malformed (module quote "(func (export \"\\ff\\fe\"))") "invalid UTF-8 encoding") diff --git a/tests/spec b/tests/spec new file mode 160000 index 0000000..9994915 --- /dev/null +++ b/tests/spec @@ -0,0 +1 @@ +Subproject commit 9994915e0cca8b42a16c577e4c85491822367dde From 4f0926ca3f01d3a25cbc9aff0c6936b666e7d728 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Wed, 3 Mar 2021 22:08:18 -0800 Subject: [PATCH 11/28] add parsing of canonical nan, reinterpret instructions and check for mem idents uniqueness --- src/Language/Wasm/Lexer.x | 1 + src/Language/Wasm/Parser.y | 67 ++++++++++++++++++++++++-------------- tests/Test.hs | 1 + 3 files changed, 45 insertions(+), 24 deletions(-) diff --git a/src/Language/Wasm/Lexer.x b/src/Language/Wasm/Lexer.x index c697641..b81c0e8 100644 --- a/src/Language/Wasm/Lexer.x +++ b/src/Language/Wasm/Lexer.x @@ -62,6 +62,7 @@ tokens :- <0> "nan" { constToken $ TFloatLit $ BinRep (abs nan) } <0> "+nan" { constToken $ TFloatLit $ BinRep (abs nan) } <0> "-nan" { constToken $ TFloatLit $ BinRep nan } +<0> "nan:canonical" { constToken $ TFloatLit $ BinRep nan } <0> $sign? @nanhex { parseNanSigned } <0> "inf" { constToken $ TFloatLit $ BinRep inf } <0> "+inf" { constToken $ TFloatLit $ BinRep inf } diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index a1dfa99..c9bbdfa 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -128,11 +128,11 @@ import Language.Wasm.Lexer ( 'call_indirect' { Lexeme _ (TKeyword "call_indirect") } 'drop' { Lexeme _ (TKeyword "drop") } 'select' { Lexeme _ (TKeyword "select") } -'get_local' { Lexeme _ (TKeyword "get_local") } -'set_local' { Lexeme _ (TKeyword "set_local") } -'tee_local' { Lexeme _ (TKeyword "tee_local") } -'get_global' { Lexeme _ (TKeyword "get_global") } -'set_global' { Lexeme _ (TKeyword "set_global") } +'get_local' { Lexeme _ (TKeyword "local.get") } +'set_local' { Lexeme _ (TKeyword "local.set") } +'tee_local' { Lexeme _ (TKeyword "local.tee") } +'get_global' { Lexeme _ (TKeyword "global.get") } +'set_global' { Lexeme _ (TKeyword "global.set") } 'i32.load' { Lexeme _ (TKeyword "i32.load") } 'i64.load' { Lexeme _ (TKeyword "i64.load") } 'f32.load' { Lexeme _ (TKeyword "f32.load") } @@ -156,8 +156,6 @@ import Language.Wasm.Lexer ( 'i64.store8' { Lexeme _ (TKeyword "i64.store8") } 'i64.store16' { Lexeme _ (TKeyword "i64.store16") } 'i64.store32' { Lexeme _ (TKeyword "i64.store32") } -'current_memory' { Lexeme _ (TKeyword "current_memory") } -'grow_memory' { Lexeme _ (TKeyword "grow_memory") } 'memory.size' { Lexeme _ (TKeyword "memory.size") } 'memory.grow' { Lexeme _ (TKeyword "memory.grow") } 'i32.const' { Lexeme _ (TKeyword "i32.const") } @@ -283,10 +281,10 @@ import Language.Wasm.Lexer ( 'f64.convert_s/i64' { Lexeme _ (TKeyword "f64.convert_s/i64") } 'f64.convert_u/i64' { Lexeme _ (TKeyword "f64.convert_u/i64") } 'f64.promote/f32' { Lexeme _ (TKeyword "f64.promote/f32") } -'i32.reinterpret/f32' { Lexeme _ (TKeyword "i32.reinterpret/f32") } -'i64.reinterpret/f64' { Lexeme _ (TKeyword "i64.reinterpret/f64") } -'f32.reinterpret/i32' { Lexeme _ (TKeyword "f32.reinterpret/i32") } -'f64.reinterpret/i64' { Lexeme _ (TKeyword "f64.reinterpret/i64") } +'i32.reinterpret_f32' { Lexeme _ (TKeyword "i32.reinterpret_f32") } +'i64.reinterpret_f64' { Lexeme _ (TKeyword "i64.reinterpret_f64") } +'f32.reinterpret_i32' { Lexeme _ (TKeyword "f32.reinterpret_i32") } +'f64.reinterpret_i64' { Lexeme _ (TKeyword "f64.reinterpret_i64") } 'block' { Lexeme _ (TKeyword "block") } 'loop' { Lexeme _ (TKeyword "loop") } 'if' { Lexeme _ (TKeyword "if") } @@ -435,8 +433,6 @@ plaininstr :: { PlainInstr } | 'i64.store8' memarg1 { I64Store8 $2 } | 'i64.store16' memarg2 { I64Store16 $2 } | 'i64.store32' memarg4 { I64Store32 $2 } - | 'current_memory' { CurrentMemory } - | 'grow_memory' { GrowMemory } | 'memory.size' { CurrentMemory } | 'memory.grow' { GrowMemory } -- numeric instructions @@ -563,10 +559,10 @@ plaininstr :: { PlainInstr } | 'f64.convert_s/i64' { FConvertIS BS64 BS64 } | 'f64.convert_u/i64' { FConvertIU BS64 BS64 } | 'f64.promote/f32' { F64PromoteF32 } - | 'i32.reinterpret/f32' { IReinterpretF BS32 } - | 'i64.reinterpret/f64' { IReinterpretF BS64 } - | 'f32.reinterpret/i32' { FReinterpretI BS32 } - | 'f64.reinterpret/i64' { FReinterpretI BS64 } + | 'i32.reinterpret_f32' { IReinterpretF BS32 } + | 'i64.reinterpret_f64' { IReinterpretF BS64 } + | 'f32.reinterpret_i32' { FReinterpretI BS32 } + | 'f64.reinterpret_i64' { FReinterpretI BS64 } typeuse :: { TypeUse } : '(' typeuse1 { $2 } @@ -1511,6 +1507,7 @@ desugarize fields = do elements <- mapM (synElemToStruct mod) $ elems mod segments <- mapM (synDataToStruct mod) $ datas mod globs <- mapM (synGlobalToStruct mod) $ globals mod + checkMemoryIdentsUniqueness mod return S.Module { S.types = map synTypeDefToStruct $ types mod, S.functions = funs, @@ -1820,6 +1817,23 @@ desugarize fields = do synMemoryToStruct :: Memory -> S.Memory synMemoryToStruct (Memory _ _ limits) = S.Memory limits + checkMemoryIdentsUniqueness :: Module -> Either String () + checkMemoryIdentsUniqueness m@Module { imports, mems } = do + mapM_ checkImportUniqueness $ filter isMemImport imports + mapM_ checkMemUniqueness mems + where + checkImportUniqueness Import { desc = ImportMemory (Just id) _ } = + if length (getMemIndexes m id) > 1 + then Left "duplicate memory" + else return () + checkImportUniqueness _ = return () + + checkMemUniqueness (Memory _ (Just id) _) = + if length (getMemIndexes m id) > 1 + then Left "duplicate memory" + else return () + checkMemUniqueness _ = return () + extractMemory :: [Memory] -> ModuleField -> [Memory] extractMemory mems (MFMem mem) = mem : mems extractMemory mems _ = mems @@ -1828,14 +1842,19 @@ desugarize fields = do isMemImport Import { desc = ImportMemory _ _ } = True isMemImport _ = False + getMemIndexes :: Module -> Ident -> [Natural] + getMemIndexes Module { imports, mems } id = + let memImports = zip [0..] $ filter isMemImport imports in + let importIndexes = map fst $ filter (\((_, Import { desc = ImportMemory ident _ })) -> ident == Just id) memImports in + let isIdent (_, (Memory _ (Just id) _)) = True in + let memIndexes = map fst $ filter isIdent $ zip [length memImports..] mems in + map fromIntegral $ importIndexes ++ memIndexes + getMemIndex :: Module -> MemoryIndex -> Maybe Natural - getMemIndex Module { imports, mems } (Named id) = - let memImports = filter isMemImport imports in - case findIndex (\(Import { desc = ImportMemory ident _ }) -> ident == Just id) memImports of - Just idx -> return $ fromIntegral idx - Nothing -> - let isIdent (Memory _ (Just id) _) = True in - fromIntegral . (+ length memImports) <$> findIndex isIdent mems + getMemIndex mod (Named id) = + case getMemIndexes mod id of + [idx] -> return idx + _ -> Nothing getMemIndex Module { imports, mems } (Index idx) = Just idx -- global diff --git a/tests/Test.hs b/tests/Test.hs index bfa8e19..4c22eb1 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,6 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" + -- let files = ["call.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 6131babc8e9dd21f1ed4f4e285aebda6b4fabd59 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Thu, 4 Mar 2021 22:04:56 -0800 Subject: [PATCH 12/28] more grammar fixes --- src/Language/Wasm/Binary.hs | 4 +- src/Language/Wasm/Builder.hs | 4 +- src/Language/Wasm/Interpreter.hs | 2 +- src/Language/Wasm/Lexer.x | 1 + src/Language/Wasm/Parser.y | 108 +++++++++++++++---------------- src/Language/Wasm/Script.hs | 8 +-- src/Language/Wasm/Structure.hs | 2 +- src/Language/Wasm/Validate.hs | 38 +++++------ 8 files changed, 84 insertions(+), 83 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index bb00f1c..2ef6ae6 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -217,8 +217,8 @@ instance Serialize FuncType where return $ FuncType { params, results } instance Serialize ElemType where - put AnyFunc = putWord8 0x70 - get = byteGuard 0x70 >> return AnyFunc + put FuncRef = putWord8 0x70 + get = byteGuard 0x70 >> return FuncRef instance Serialize Limit where put (Limit min Nothing) = putWord8 0x00 >> putULEB128 min diff --git a/src/Language/Wasm/Builder.hs b/src/Language/Wasm/Builder.hs index da7c8f8..936ca64 100644 --- a/src/Language/Wasm/Builder.hs +++ b/src/Language/Wasm/Builder.hs @@ -858,7 +858,7 @@ importMemory mod name min max = do importTable :: TL.Text -> TL.Text -> Natural -> Maybe Natural -> GenMod Tbl importTable mod name min max = do modify $ \(st@GenModState { target = m }) -> st { - target = m { imports = imports m ++ [Import mod name $ ImportTable $ TableType (Limit min max) AnyFunc] } + target = m { imports = imports m ++ [Import mod name $ ImportTable $ TableType (Limit min max) FuncRef] } } return $ Tbl 0 @@ -968,7 +968,7 @@ newtype Tbl = Tbl Natural deriving (Show, Eq) table :: Natural -> Maybe Natural -> GenMod Tbl table min max = do modify $ \(st@GenModState { target = m }) -> st { - target = m { tables = tables m ++ [Table $ TableType (Limit min max) AnyFunc] } + target = m { tables = tables m ++ [Table $ TableType (Limit min max) FuncRef] } } return $ Tbl 0 diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index c5839af..482f7be 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -279,7 +279,7 @@ makeHostModule st items = do makeHostTables :: (Store, ModuleInstance) -> IO (Store, ModuleInstance) makeHostTables (st, inst) = do let tableLen = Vector.length $ tableInstances st - let (names, tables) = unzip [(name, Table (TableType lim AnyFunc)) | (name, (HostTable lim)) <- items] + let (names, tables) = unzip [(name, Table (TableType lim FuncRef)) | (name, (HostTable lim)) <- items] let instances = allocTables tables let exps = Vector.fromList $ zipWith (\name i -> ExportInstance name (ExternTable i)) names [tableLen..] let inst' = inst { diff --git a/src/Language/Wasm/Lexer.x b/src/Language/Wasm/Lexer.x index b81c0e8..35c4299 100644 --- a/src/Language/Wasm/Lexer.x +++ b/src/Language/Wasm/Lexer.x @@ -63,6 +63,7 @@ tokens :- <0> "+nan" { constToken $ TFloatLit $ BinRep (abs nan) } <0> "-nan" { constToken $ TFloatLit $ BinRep nan } <0> "nan:canonical" { constToken $ TFloatLit $ BinRep nan } +<0> "nan:arithmetic" { constToken $ TFloatLit $ BinRep nan } <0> $sign? @nanhex { parseNanSigned } <0> "inf" { constToken $ TFloatLit $ BinRep inf } <0> "+inf" { constToken $ TFloatLit $ BinRep inf } diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index c9bbdfa..bed07c3 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -116,7 +116,7 @@ import Language.Wasm.Lexer ( 'f32' { Lexeme _ (TKeyword "f32") } 'f64' { Lexeme _ (TKeyword "f64") } 'mut' { Lexeme _ (TKeyword "mut") } -'anyfunc' { Lexeme _ (TKeyword "anyfunc") } +'funcref' { Lexeme _ (TKeyword "funcref") } 'type' { Lexeme _ (TKeyword "type") } 'unreachable' { Lexeme _ (TKeyword "unreachable") } 'nop' { Lexeme _ (TKeyword "nop") } @@ -260,27 +260,27 @@ import Language.Wasm.Lexer ( 'f64.gt' { Lexeme _ (TKeyword "f64.gt") } 'f64.le' { Lexeme _ (TKeyword "f64.le") } 'f64.ge' { Lexeme _ (TKeyword "f64.ge") } -'i32.wrap/i64' { Lexeme _ (TKeyword "i32.wrap/i64") } -'i32.trunc_s/f32' { Lexeme _ (TKeyword "i32.trunc_s/f32") } -'i32.trunc_u/f32' { Lexeme _ (TKeyword "i32.trunc_u/f32") } -'i32.trunc_s/f64' { Lexeme _ (TKeyword "i32.trunc_s/f64") } -'i32.trunc_u/f64' { Lexeme _ (TKeyword "i32.trunc_u/f64") } -'i64.extend_s/i32' { Lexeme _ (TKeyword "i64.extend_s/i32") } -'i64.extend_u/i32' { Lexeme _ (TKeyword "i64.extend_u/i32") } -'i64.trunc_s/f32' { Lexeme _ (TKeyword "i64.trunc_s/f32") } -'i64.trunc_u/f32' { Lexeme _ (TKeyword "i64.trunc_u/f32") } -'i64.trunc_s/f64' { Lexeme _ (TKeyword "i64.trunc_s/f64") } -'i64.trunc_u/f64' { Lexeme _ (TKeyword "i64.trunc_u/f64") } -'f32.convert_s/i32' { Lexeme _ (TKeyword "f32.convert_s/i32") } -'f32.convert_u/i32' { Lexeme _ (TKeyword "f32.convert_u/i32") } -'f32.convert_s/i64' { Lexeme _ (TKeyword "f32.convert_s/i64") } -'f32.convert_u/i64' { Lexeme _ (TKeyword "f32.convert_u/i64") } -'f32.demote/f64' { Lexeme _ (TKeyword "f32.demote/f64") } -'f64.convert_s/i32' { Lexeme _ (TKeyword "f64.convert_s/i32") } -'f64.convert_u/i32' { Lexeme _ (TKeyword "f64.convert_u/i32") } -'f64.convert_s/i64' { Lexeme _ (TKeyword "f64.convert_s/i64") } -'f64.convert_u/i64' { Lexeme _ (TKeyword "f64.convert_u/i64") } -'f64.promote/f32' { Lexeme _ (TKeyword "f64.promote/f32") } +'i32.wrap_i64' { Lexeme _ (TKeyword "i32.wrap_i64") } +'i32.trunc_f32_s' { Lexeme _ (TKeyword "i32.trunc_f32_s") } +'i32.trunc_f32_u' { Lexeme _ (TKeyword "i32.trunc_f32_u") } +'i32.trunc_f64_s' { Lexeme _ (TKeyword "i32.trunc_f64_s") } +'i32.trunc_f64_u' { Lexeme _ (TKeyword "i32.trunc_f64_u") } +'i64.extend_i32_s' { Lexeme _ (TKeyword "i64.extend_i32_s") } +'i64.extend_i32_u' { Lexeme _ (TKeyword "i64.extend_i32_u") } +'i64.trunc_f32_s' { Lexeme _ (TKeyword "i64.trunc_f32_s") } +'i64.trunc_f32_u' { Lexeme _ (TKeyword "i64.trunc_f32_u") } +'i64.trunc_f64_s' { Lexeme _ (TKeyword "i64.trunc_f64_s") } +'i64.trunc_f64_u' { Lexeme _ (TKeyword "i64.trunc_f64_u") } +'f32.convert_i32_s' { Lexeme _ (TKeyword "f32.convert_i32_s") } +'f32.convert_i32_u' { Lexeme _ (TKeyword "f32.convert_i32_u") } +'f32.convert_i64_s' { Lexeme _ (TKeyword "f32.convert_i64_s") } +'f32.convert_i64_u' { Lexeme _ (TKeyword "f32.convert_i64_u") } +'f32.demote_f64' { Lexeme _ (TKeyword "f32.demote_f64") } +'f64.convert_i32_s' { Lexeme _ (TKeyword "f64.convert_i32_s") } +'f64.convert_i32_u' { Lexeme _ (TKeyword "f64.convert_i32_u") } +'f64.convert_i64_s' { Lexeme _ (TKeyword "f64.convert_i64_s") } +'f64.convert_i64_u' { Lexeme _ (TKeyword "f64.convert_i64_u") } +'f64.promote_f32' { Lexeme _ (TKeyword "f64.promote_f32") } 'i32.reinterpret_f32' { Lexeme _ (TKeyword "i32.reinterpret_f32") } 'i64.reinterpret_f64' { Lexeme _ (TKeyword "i64.reinterpret_f64") } 'f32.reinterpret_i32' { Lexeme _ (TKeyword "f32.reinterpret_i32") } @@ -538,27 +538,27 @@ plaininstr :: { PlainInstr } | 'f64.gt' { FRelOp BS64 FGt } | 'f64.le' { FRelOp BS64 FLe } | 'f64.ge' { FRelOp BS64 FGe } - | 'i32.wrap/i64' { I32WrapI64 } - | 'i32.trunc_s/f32' { ITruncFS BS32 BS32 } - | 'i32.trunc_u/f32' { ITruncFU BS32 BS32 } - | 'i32.trunc_s/f64' { ITruncFS BS32 BS64 } - | 'i32.trunc_u/f64' { ITruncFU BS32 BS64 } - | 'i64.extend_s/i32' { I64ExtendSI32 } - | 'i64.extend_u/i32' { I64ExtendUI32 } - | 'i64.trunc_s/f32' { ITruncFS BS64 BS32 } - | 'i64.trunc_u/f32' { ITruncFU BS64 BS32 } - | 'i64.trunc_s/f64' { ITruncFS BS64 BS64 } - | 'i64.trunc_u/f64' { ITruncFU BS64 BS64 } - | 'f32.convert_s/i32' { FConvertIS BS32 BS32 } - | 'f32.convert_u/i32' { FConvertIU BS32 BS32 } - | 'f32.convert_s/i64' { FConvertIS BS32 BS64 } - | 'f32.convert_u/i64' { FConvertIU BS32 BS64 } - | 'f32.demote/f64' { F32DemoteF64 } - | 'f64.convert_s/i32' { FConvertIS BS64 BS32 } - | 'f64.convert_u/i32' { FConvertIU BS64 BS32 } - | 'f64.convert_s/i64' { FConvertIS BS64 BS64 } - | 'f64.convert_u/i64' { FConvertIU BS64 BS64 } - | 'f64.promote/f32' { F64PromoteF32 } + | 'i32.wrap_i64' { I32WrapI64 } + | 'i32.trunc_f32_s' { ITruncFS BS32 BS32 } + | 'i32.trunc_f32_u' { ITruncFU BS32 BS32 } + | 'i32.trunc_f64_s' { ITruncFS BS32 BS64 } + | 'i32.trunc_f64_u' { ITruncFU BS32 BS64 } + | 'i64.extend_i32_s' { I64ExtendSI32 } + | 'i64.extend_i32_u' { I64ExtendUI32 } + | 'i64.trunc_f32_s' { ITruncFS BS64 BS32 } + | 'i64.trunc_f32_u' { ITruncFU BS64 BS32 } + | 'i64.trunc_f64_s' { ITruncFS BS64 BS64 } + | 'i64.trunc_f64_u' { ITruncFU BS64 BS64 } + | 'f32.convert_i32_s' { FConvertIS BS32 BS32 } + | 'f32.convert_i32_u' { FConvertIU BS32 BS32 } + | 'f32.convert_i64_s' { FConvertIS BS32 BS64 } + | 'f32.convert_i64_u' { FConvertIU BS32 BS64 } + | 'f32.demote_f64' { F32DemoteF64 } + | 'f64.convert_i32_s' { FConvertIS BS64 BS32 } + | 'f64.convert_i32_u' { FConvertIU BS64 BS32 } + | 'f64.convert_i64_s' { FConvertIS BS64 BS64 } + | 'f64.convert_i64_u' { FConvertIU BS64 BS64 } + | 'f64.promote_f32' { F64PromoteF32 } | 'i32.reinterpret_f32' { IReinterpretF BS32 } | 'i64.reinterpret_f64' { IReinterpretF BS64 } | 'f32.reinterpret_i32' { FReinterpretI BS32 } @@ -646,10 +646,10 @@ raw_block :: { Maybe Ident -> Either String Instruction } | '(' raw_block1 { $2 } raw_block1 :: { Maybe Ident -> Either String Instruction } - : 'result' valtype ')' list(instruction) 'end' opt(ident) { + : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { \ident -> if ident == $6 || isNothing $6 - then Right $ BlockInstr ident [$2] (concat $4) + then Right $ BlockInstr ident $2 (concat $4) else Left "Block labels have to match" } | folded_instr1 list(instruction) 'end' opt(ident) { @@ -675,10 +675,10 @@ raw_loop :: { Maybe Ident -> Either String Instruction } | '(' raw_loop1 { $2 } raw_loop1 :: { Maybe Ident -> Either String Instruction } - : 'result' valtype ')' list(instruction) 'end' opt(ident) { + : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { \ident -> if ident == $6 || isNothing $6 - then Right $ LoopInstr ident [$2] (concat $4) + then Right $ LoopInstr ident $2 (concat $4) else Left "Loop labels have to match" } | folded_instr1 list(instruction) 'end' opt(ident) { @@ -704,10 +704,10 @@ raw_if_result :: { Maybe Ident -> Either String [Instruction] } | '(' raw_if_result1 { $2 } raw_if_result1 :: { Maybe Ident -> Either String [Instruction] } - : 'result' valtype ')' list(instruction) raw_else { + : 'result' list(valtype) ')' list(instruction) raw_else { \ident -> if ident == (snd $5) || isNothing (snd $5) - then Right [IfInstr ident [$2] (concat $4) $ fst $5] + then Right [IfInstr ident $2 (concat $4) $ fst $5] else Left "If labels have to match" } | folded_instr1 list(instruction) raw_else { @@ -775,7 +775,7 @@ folded_block :: { Maybe Ident -> Instruction } | raw_instr list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } folded_block1 :: { Maybe Ident -> Instruction } - : 'result' valtype ')' list(instruction) ')' { \ident -> BlockInstr ident [$2] (concat $4) } + : 'result' list(valtype) ')' list(instruction) ')' { \ident -> BlockInstr ident $2 (concat $4) } | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } folded_loop :: { Maybe Ident -> Instruction } @@ -784,14 +784,14 @@ folded_loop :: { Maybe Ident -> Instruction } | raw_instr list(instruction) ')' { \ident -> LoopInstr ident [] ($1 ++ concat $2) } folded_loop1 :: { Maybe Ident -> Instruction } - : 'result' valtype ')' list(instruction) ')' { \ident -> LoopInstr ident [$2] (concat $4) } + : 'result' list(valtype) ')' list(instruction) ')' { \ident -> LoopInstr ident $2 (concat $4) } | folded_instr1 list(instruction) ')' { \ident -> LoopInstr ident [] ($1 ++ concat $2) } folded_if_result :: { Maybe Ident -> [Instruction] } - : 'result' valtype ')' '(' folded_then_else { + : 'result' list(valtype) ')' '(' folded_then_else { \ident -> let (pred, (trueBranch, falseBranch)) = $5 in - pred ++ [IfInstr ident [$2] trueBranch falseBranch] + pred ++ [IfInstr ident $2 trueBranch falseBranch] } | folded_then_else { \ident -> @@ -997,7 +997,7 @@ limits :: { Limit } : u32 opt(u32) { Limit (fromIntegral $1) (fromIntegral `fmap` $2) } elemtype :: { ElemType } - : 'anyfunc' { AnyFunc } + : 'funcref' { FuncRef } tabletype :: { TableType } : limits elemtype { TableType $1 $2 } diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index f04d96b..02d6813 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -161,11 +161,11 @@ runScript onAssertFail script = do getFailureString Validate.ResultTypeDoesntMatch = ["type mismatch"] getFailureString Validate.MoreThanOneMemory = ["multiple memories"] getFailureString Validate.MoreThanOneTable = ["multiple tables"] - getFailureString Validate.LocalIndexOutOfRange = ["unknown local"] - getFailureString Validate.MemoryIndexOutOfRange = ["unknown memory", "unknown memory 0"] - getFailureString Validate.TableIndexOutOfRange = ["unknown table", "unknown table 0"] + getFailureString (Validate.LocalIndexOutOfRange idx) = ["unknown local", "unknown local " <> TL.pack (show idx)] + getFailureString (Validate.MemoryIndexOutOfRange idx) = ["unknown memory", "unknown memory " <> TL.pack (show idx)] + getFailureString (Validate.TableIndexOutOfRange idx) = ["unknown table", "unknown table " <> TL.pack (show idx)] getFailureString Validate.FunctionIndexOutOfRange = ["unknown function", "unknown function 0"] - getFailureString Validate.GlobalIndexOutOfRange = ["unknown global"] + getFailureString (Validate.GlobalIndexOutOfRange idx) = ["unknown global", "unknown global " <> TL.pack (show idx)] getFailureString Validate.LabelIndexOutOfRange = ["unknown label"] getFailureString Validate.TypeIndexOutOfRange = ["unknown type"] getFailureString Validate.MinMoreThanMaxInMemoryLimit = ["size minimum must not be greater than maximum"] diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 1c8db11..87ee4c9 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -192,7 +192,7 @@ data Function = Function { data Limit = Limit Natural (Maybe Natural) deriving (Show, Eq, Generic, NFData) -data ElemType = AnyFunc deriving (Show, Eq, Generic, NFData) +data ElemType = FuncRef deriving (Show, Eq, Generic, NFData) data TableType = TableType Limit ElemType deriving (Show, Eq, Generic, NFData) diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index 92d4ae5..b773e0b 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -34,10 +34,10 @@ data ValidationError = | MoreThanOneMemory | MoreThanOneTable | FunctionIndexOutOfRange - | TableIndexOutOfRange - | MemoryIndexOutOfRange - | LocalIndexOutOfRange - | GlobalIndexOutOfRange + | TableIndexOutOfRange Natural + | MemoryIndexOutOfRange Natural + | LocalIndexOutOfRange Natural + | GlobalIndexOutOfRange Natural | LabelIndexOutOfRange | TypeIndexOutOfRange | ResultTypeDoesntMatch @@ -183,7 +183,7 @@ checkMemoryInstr :: Int -> MemArg -> Checker () checkMemoryInstr size memarg = do isMemArgValid size memarg Ctx { mems } <- ask - if length mems < 1 then throwError MemoryIndexOutOfRange else return () + if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return () getInstrType :: Instruction Natural -> Checker Arrow getInstrType Unreachable = return $ Any ==> Any @@ -228,7 +228,7 @@ getInstrType (Call fun) = do getInstrType (CallIndirect sign) = do Ctx { types, tables } <- ask if length tables < 1 - then throwError TableIndexOutOfRange + then throwError (TableIndexOutOfRange 0) else do Arrow from to <- maybeToEither TypeIndexOutOfRange $ asArrow <$> types !? sign return $ (from ++ [Val I32]) ==> to @@ -240,23 +240,23 @@ getInstrType Select = do return $ [var, var, Val I32] ==> var getInstrType (GetLocal local) = do Ctx { locals } <- ask - t <- maybeToEither LocalIndexOutOfRange $ locals !? local + t <- maybeToEither (LocalIndexOutOfRange local) $ locals !? local return $ empty ==> Val t getInstrType (SetLocal local) = do Ctx { locals } <- ask - t <- maybeToEither LocalIndexOutOfRange $ locals !? local + t <- maybeToEither (LocalIndexOutOfRange local) $ locals !? local return $ Val t ==> empty getInstrType (TeeLocal local) = do Ctx { locals } <- ask - t <- maybeToEither LocalIndexOutOfRange $ locals !? local + t <- maybeToEither (LocalIndexOutOfRange local) $ locals !? local return $ Val t ==> Val t getInstrType (GetGlobal global) = do Ctx { globals } <- ask - t <- maybeToEither GlobalIndexOutOfRange $ asType <$> globals !? global + t <- maybeToEither (GlobalIndexOutOfRange global) $ asType <$> globals !? global return $ empty ==> t getInstrType (SetGlobal global) = do Ctx { globals } <- ask - t <- maybeToEither GlobalIndexOutOfRange $ asType <$> globals !? global + t <- maybeToEither (GlobalIndexOutOfRange global) $ asType <$> globals !? global shouldBeMut $ globals !! fromIntegral global return $ t ==> empty getInstrType (I32Load memarg) = do @@ -330,10 +330,10 @@ getInstrType (I64Store32 memarg) = do return $ [I32, I64] ==> empty getInstrType CurrentMemory = do Ctx { mems } <- ask - if length mems < 1 then throwError MemoryIndexOutOfRange else return $ empty ==> I32 + if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return $ empty ==> I32 getInstrType GrowMemory = do Ctx { mems } <- ask - if length mems < 1 then throwError MemoryIndexOutOfRange else return $ I32 ==> I32 + if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return $ I32 ==> I32 getInstrType (I32Const _) = return $ empty ==> I32 getInstrType (I64Const _) = return $ empty ==> I64 getInstrType (F32Const _) = return $ empty ==> F32 @@ -414,7 +414,7 @@ isConstExpression ((F64Const _):rest) = isConstExpression rest isConstExpression ((GetGlobal idx):rest) = do Ctx {globals, importedGlobals} <- ask if importedGlobals <= idx - then throwError GlobalIndexOutOfRange + then throwError (GlobalIndexOutOfRange idx) else return () case globals !! fromIntegral idx of Const _ -> isConstExpression rest @@ -539,7 +539,7 @@ elemsShouldBeValid m@Module { elems, functions, tables, imports } = let isTableIndexValid = if tableIdx < (fromIntegral $ length tableImports + length tables) then return () - else Left TableIndexOutOfRange + else Left (TableIndexOutOfRange tableIdx) in let funImports = filter isFuncImport imports in let funsLength = fromIntegral $ length functions + length funImports in @@ -563,7 +563,7 @@ datasShouldBeValid m@Module { datas, mems, imports } = let memImports = filter isMemImport imports in if memIdx < (fromIntegral $ length memImports + length mems) then check - else Left MemoryIndexOutOfRange + else Left (MemoryIndexOutOfRange memIdx) startShouldBeValid :: Validator startShouldBeValid Module { start = Nothing } = return () @@ -587,9 +587,9 @@ exportsShouldBeValid Module { exports, imports, functions, mems, tables, globals isExportValid (Export _ (ExportFunc funIdx)) = if fromIntegral funIdx < length funcImports + length functions then return () else Left FunctionIndexOutOfRange isExportValid (Export _ (ExportTable tableIdx)) = - if fromIntegral tableIdx < length tableImports + length tables then return () else Left TableIndexOutOfRange + if fromIntegral tableIdx < length tableImports + length tables then return () else Left (TableIndexOutOfRange tableIdx) isExportValid (Export _ (ExportMemory memIdx)) = - if fromIntegral memIdx < length memImports + length mems then return () else Left MemoryIndexOutOfRange + if fromIntegral memIdx < length memImports + length mems then return () else Left (MemoryIndexOutOfRange memIdx) isExportValid (Export _ (ExportGlobal globalIdx)) = if fromIntegral globalIdx < length globalImports + length globals then ( @@ -601,7 +601,7 @@ exportsShouldBeValid Module { exports, imports, functions, mems, tables, globals ) else return () ) - else Left GlobalIndexOutOfRange + else Left (GlobalIndexOutOfRange globalIdx) areExportNamesUnique :: ValidationResult areExportNamesUnique = From 36cc7a1c16374c616c7f0c48041d5ea8d2c6a074 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 8 Mar 2021 21:35:43 -0800 Subject: [PATCH 13/28] implement sign-extension operators proposal --- src/Language/Wasm/Interpreter.hs | 22 ++++++++++++++++++++++ src/Language/Wasm/Parser.y | 10 ++++++++++ src/Language/Wasm/Structure.hs | 9 ++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 482f7be..1a0dbed 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -873,6 +873,16 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { return $ Done ctx { stack = VI32 (fromIntegral $ countTrailingZeros v) : rest } step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IPopcnt) = return $ Done ctx { stack = VI32 (fromIntegral $ popCount v) : rest } + step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IExtend8S) = + let byte = v .&. 0xFF in + let r = if byte >= 0x80 then asWord32 (fromIntegral byte - 0x100) else byte in + return $ Done ctx { stack = VI32 r : rest } + step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IExtend16S) = + let half = v .&. 0xFFFF in + let r = if half >= 0x8000 then asWord32 (fromIntegral half - 0x10000) else half in + return $ Done ctx { stack = VI32 r : rest } + step ctx@EvalCtx{ stack = (VI32 v:rest) } (IUnOp BS32 IExtend32S) = + return $ Done ctx { stack = VI32 v : rest } step ctx@EvalCtx{ stack = (VI64 v2:VI64 v1:rest) } (IBinOp BS64 IAdd) = return $ Done ctx { stack = VI64 (v1 + v2) : rest } step ctx@EvalCtx{ stack = (VI64 v2:VI64 v1:rest) } (IBinOp BS64 ISub) = @@ -939,6 +949,18 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { return $ Done ctx { stack = VI64 (fromIntegral $ countTrailingZeros v) : rest } step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IPopcnt) = return $ Done ctx { stack = VI64 (fromIntegral $ popCount v) : rest } + step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IExtend8S) = + let byte = v .&. 0xFF in + let r = if byte >= 0x80 then asWord64 (fromIntegral byte - 0x100) else byte in + return $ Done ctx { stack = VI64 r : rest } + step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IExtend16S) = + let quart = v .&. 0xFFFF in + let r = if quart >= 0x8000 then asWord64 (fromIntegral quart - 0x10000) else quart in + return $ Done ctx { stack = VI64 r : rest } + step ctx@EvalCtx{ stack = (VI64 v:rest) } (IUnOp BS64 IExtend32S) = + let half = v .&. 0xFFFFFFFF in + let r = if half >= 0x80000000 then asWord64 (fromIntegral half - 0x100000000) else half in + return $ Done ctx { stack = VI64 r : rest } step ctx@EvalCtx{ stack = (VF32 v:rest) } (FUnOp BS32 FAbs) = return $ Done ctx { stack = VF32 (abs v) : rest } step ctx@EvalCtx{ stack = (VF32 v:rest) } (FUnOp BS32 FNeg) = diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index bed07c3..2d94e1d 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -165,6 +165,8 @@ import Language.Wasm.Lexer ( 'i32.clz' { Lexeme _ (TKeyword "i32.clz") } 'i32.ctz' { Lexeme _ (TKeyword "i32.ctz") } 'i32.popcnt' { Lexeme _ (TKeyword "i32.popcnt") } +'i32.extend8_s' { Lexeme _ (TKeyword "i32.extend8_s") } +'i32.extend16_s' { Lexeme _ (TKeyword "i32.extend16_s") } 'i32.add' { Lexeme _ (TKeyword "i32.add") } 'i32.sub' { Lexeme _ (TKeyword "i32.sub") } 'i32.mul' { Lexeme _ (TKeyword "i32.mul") } @@ -183,6 +185,9 @@ import Language.Wasm.Lexer ( 'i64.clz' { Lexeme _ (TKeyword "i64.clz") } 'i64.ctz' { Lexeme _ (TKeyword "i64.ctz") } 'i64.popcnt' { Lexeme _ (TKeyword "i64.popcnt") } +'i64.extend8_s' { Lexeme _ (TKeyword "i64.extend8_s") } +'i64.extend16_s' { Lexeme _ (TKeyword "i64.extend16_s") } +'i64.extend32_s' { Lexeme _ (TKeyword "i64.extend32_s") } 'i64.add' { Lexeme _ (TKeyword "i64.add") } 'i64.sub' { Lexeme _ (TKeyword "i64.sub") } 'i64.mul' { Lexeme _ (TKeyword "i64.mul") } @@ -443,6 +448,8 @@ plaininstr :: { PlainInstr } | 'i32.clz' { IUnOp BS32 IClz } | 'i32.ctz' { IUnOp BS32 ICtz } | 'i32.popcnt' { IUnOp BS32 IPopcnt } + | 'i32.extend8_s' { IUnOp BS32 IExtend8S } + | 'i32.extend16_s' { IUnOp BS32 IExtend16S } | 'i32.add' { IBinOp BS32 IAdd } | 'i32.sub' { IBinOp BS32 ISub } | 'i32.mul' { IBinOp BS32 IMul } @@ -461,6 +468,9 @@ plaininstr :: { PlainInstr } | 'i64.clz' { IUnOp BS64 IClz } | 'i64.ctz' { IUnOp BS64 ICtz } | 'i64.popcnt' { IUnOp BS64 IPopcnt } + | 'i64.extend8_s' { IUnOp BS64 IExtend8S } + | 'i64.extend16_s' { IUnOp BS64 IExtend16S } + | 'i64.extend32_s' { IUnOp BS64 IExtend32S } | 'i64.add' { IBinOp BS64 IAdd } | 'i64.sub' { IBinOp BS64 ISub } | 'i64.mul' { IBinOp BS64 IMul } diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 87ee4c9..292c68a 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -57,7 +57,14 @@ import GHC.Generics (Generic) data BitSize = BS32 | BS64 deriving (Show, Eq, Generic, NFData) -data IUnOp = IClz | ICtz | IPopcnt deriving (Show, Eq, Generic, NFData) +data IUnOp = + IClz + | ICtz + | IPopcnt + | IExtend8S + | IExtend16S + | IExtend32S + deriving (Show, Eq, Generic, NFData) data IBinOp = IAdd From 02e2c4a7055a80890ffcb96480999f9b57138f98 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 8 Mar 2021 21:58:21 -0800 Subject: [PATCH 14/28] fix align bug for I64Load32U and start mutable globals export/import proposal --- src/Language/Wasm/Binary.hs | 12 ++++++++++++ src/Language/Wasm/Script.hs | 2 -- src/Language/Wasm/Validate.hs | 17 +++-------------- tests/Test.hs | 2 +- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index 2ef6ae6..d8d30c9 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -492,6 +492,13 @@ instance Serialize (Instruction Natural) where put (FReinterpretI BS32) = putWord8 0xBE put (FReinterpretI BS64) = putWord8 0xBF + put (IUnOp BS32 IExtend8S) = putWord8 0xC0 + put (IUnOp BS32 IExtend16S) = putWord8 0xC1 + put (IUnOp BS32 IExtend32S) = error "Opcode for i32.extend32_s doesn't exist" + put (IUnOp BS64 IExtend8S) = putWord8 0xC2 + put (IUnOp BS64 IExtend16S) = putWord8 0xC3 + put (IUnOp BS64 IExtend32S) = putWord8 0xC4 + get = do op <- getWord8 case op of @@ -676,6 +683,11 @@ instance Serialize (Instruction Natural) where 0xBD -> return $ IReinterpretF BS64 0xBE -> return $ FReinterpretI BS32 0xBF -> return $ FReinterpretI BS64 + 0xC0 -> return $ IUnOp BS32 IExtend8S + 0xC1 -> return $ IUnOp BS32 IExtend16S + 0xC2 -> return $ IUnOp BS64 IExtend8S + 0xC3 -> return $ IUnOp BS64 IExtend16S + 0xC4 -> return $ IUnOp BS64 IExtend32S _ -> fail "Unknown byte value in place of instruction opcode" putExpression :: Expression -> Put diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index 02d6813..603ba08 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -175,8 +175,6 @@ runScript onAssertFail script = do getFailureString Validate.InvalidConstantExpr = ["constant expression required"] getFailureString Validate.InvalidResultArity = ["invalid result arity"] getFailureString Validate.GlobalIsImmutable = ["global is immutable"] - getFailureString Validate.ImportedGlobalIsNotConst = ["mutable globals cannot be imported"] - getFailureString Validate.ExportedGlobalIsNotConst = ["mutable globals cannot be exported"] getFailureString Validate.InvalidStartFunctionType = ["start function"] getFailureString r = [TL.concat ["not implemented ", (TL.pack $ show r)]] diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index b773e0b..55bd7c1 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -45,8 +45,6 @@ data ValidationError = | InvalidResultArity | InvalidConstantExpr | InvalidStartFunctionType - | ImportedGlobalIsNotConst - | ExportedGlobalIsNotConst | GlobalIsImmutable deriving (Show, Eq) @@ -299,7 +297,7 @@ getInstrType (I64Load32S memarg) = do checkMemoryInstr 4 memarg return $ I32 ==> I64 getInstrType (I64Load32U memarg) = do - checkMemoryInstr 8 memarg + checkMemoryInstr 4 memarg return $ I32 ==> I64 getInstrType (I32Store memarg) = do checkMemoryInstr 4 memarg @@ -592,15 +590,7 @@ exportsShouldBeValid Module { exports, imports, functions, mems, tables, globals if fromIntegral memIdx < length memImports + length mems then return () else Left (MemoryIndexOutOfRange memIdx) isExportValid (Export _ (ExportGlobal globalIdx)) = if fromIntegral globalIdx < length globalImports + length globals - then ( - if fromIntegral globalIdx >= length globalImports - then ( - case globals !! (fromIntegral globalIdx - length globalImports) of - (Global (Mut _) _) -> Left ExportedGlobalIsNotConst - _ -> return () - ) - else return () - ) + then return () else Left (GlobalIndexOutOfRange globalIdx) areExportNamesUnique :: ValidationResult @@ -626,8 +616,7 @@ importsShouldBeValid Module { imports, types } = else Left TypeIndexOutOfRange isImportValid (Import _ _ (ImportTable _)) = return () -- checked in tables section isImportValid (Import _ _ (ImportMemory _)) = return () -- checked in mems section - isImportValid (Import _ _ (ImportGlobal (Const _))) = return () - isImportValid (Import _ _ (ImportGlobal (Mut _))) = Left ImportedGlobalIsNotConst + isImportValid (Import _ _ (ImportGlobal _)) = return () typesShouldBeValid :: Validator typesShouldBeValid Module { types } = foldMap isTypeValid types diff --git a/tests/Test.hs b/tests/Test.hs index 4c22eb1..f66b65f 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["call.wast"] + -- let files = ["linking.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 252ced498995df92597f136d162c535083124845 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Tue, 9 Mar 2021 22:45:16 -0800 Subject: [PATCH 15/28] added line position for failed asserts and implemented mutable globals import/export proposal --- src/Language/Wasm/Interpreter.hs | 18 ++++---- src/Language/Wasm/Parser.y | 77 +++++++++++++++++++++----------- src/Language/Wasm/Script.hs | 73 ++++++++++++++++-------------- tests/Test.hs | 2 +- 4 files changed, 101 insertions(+), 69 deletions(-) diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 1a0dbed..1a2242a 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -19,7 +19,8 @@ module Language.Wasm.Interpreter ( emptyStore, emptyImports, makeHostModule, - makeMutGlobal + makeMutGlobal, + makeConstGlobal ) where import qualified Data.Map as Map @@ -177,6 +178,9 @@ data GlobalInstance = GIConst ValueType Value | GIMut ValueType (IORef Value) makeMutGlobal :: Value -> IO GlobalInstance makeMutGlobal val = GIMut (getValueType val) <$> newIORef val +makeConstGlobal :: Value -> GlobalInstance +makeConstGlobal val = GIConst (getValueType val) val + getValueType :: Value -> ValueType getValueType (VI32 _) = I32 getValueType (VI64 _) = I64 @@ -364,13 +368,11 @@ calcInstance (Store fs ts ms gs) imps Module {functions, types, tables, mems, gl ExternGlobal globalAddr -> return globalAddr _ -> err let globalInst = gs ! globalAddr - let vt = case globalType of - Const vt -> vt - Mut vt -> vt - let vt' = case globalInst of - GIConst vt _ -> vt - GIMut vt _ -> vt - if vt == vt' then return idx else err + let typesMatch = case (globalType, globalInst) of + (Const vt, GIConst vt' _) -> vt == vt' + (Mut vt, GIMut vt' _) -> vt == vt' + _ -> False + if typesMatch then return idx else err checkImportType imp@(Import _ _ (ImportMemory limit)) = do idx <- getImpIdx imp memAddr <- case idx of diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 2d94e1d..c9259e5 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -313,14 +313,14 @@ import Language.Wasm.Lexer ( 'register' { Lexeme _ (TKeyword "register") } 'invoke' { Lexeme _ (TKeyword "invoke") } 'get' { Lexeme _ (TKeyword "get") } -'assert_return' { Lexeme _ (TKeyword "assert_return") } -'assert_return_canonical_nan' { Lexeme _ (TKeyword "assert_return_canonical_nan") } -'assert_return_arithmetic_nan' { Lexeme _ (TKeyword "assert_return_arithmetic_nan") } -'assert_trap' { Lexeme _ (TKeyword "assert_trap") } -'assert_malformed' { Lexeme _ (TKeyword "assert_malformed") } -'assert_invalid' { Lexeme _ (TKeyword "assert_invalid") } -'assert_unlinkable' { Lexeme _ (TKeyword "assert_unlinkable") } -'assert_exhaustion' { Lexeme _ (TKeyword "assert_exhaustion") } +'assert_return' { Lexeme $$ (TKeyword "assert_return") } +'assert_return_canonical_nan' { Lexeme $$ (TKeyword "assert_return_canonical_nan") } +'assert_return_arithmetic_nan' { Lexeme $$ (TKeyword "assert_return_arithmetic_nan") } +'assert_trap' { Lexeme $$ (TKeyword "assert_trap") } +'assert_malformed' { Lexeme $$ (TKeyword "assert_malformed") } +'assert_invalid' { Lexeme $$ (TKeyword "assert_invalid") } +'assert_unlinkable' { Lexeme $$ (TKeyword "assert_unlinkable") } +'assert_exhaustion' { Lexeme $$ (TKeyword "assert_exhaustion") } 'script' { Lexeme _ (TKeyword "script") } 'input' { Lexeme _ (TKeyword "input") } 'output' { Lexeme _ (TKeyword "output") } @@ -1104,7 +1104,7 @@ command1 :: { Command } : module1 { ModuleDef $1 } | 'register' string opt(ident) ')' { Register $2 $3 } | action1 { Action $1 } - | assertion1 { Assertion $1 } + | assertion1 { let (Just (AlexPn _ line _), a) = $1 in Assertion line a } | meta1 { Meta $1 } module1 :: { ModuleDef } @@ -1117,15 +1117,15 @@ action1 :: { Action } : 'invoke' opt(ident) string list(folded_instr) ')' { Invoke $2 $3 (map (map constInstructionToValue) $4) } | 'get' opt(ident) string ')' { Get $2 $3 } -assertion1 :: { Assertion } - : 'assert_return' '(' action1 list(folded_instr) ')' { AssertReturn $3 (map (map constInstructionToValue) $4) } - | 'assert_return_canonical_nan' '(' action1 ')' { AssertReturnCanonicalNaN $3 } - | 'assert_return_arithmetic_nan' '(' action1 ')' { AssertReturnArithmeticNaN $3 } - | 'assert_trap' '(' assertion_trap string ')' { AssertTrap $3 $4 } - | 'assert_malformed' '(' module1 string ')' { AssertMalformed $3 $4 } - | 'assert_invalid' '(' module1 string ')' { AssertInvalid $3 $4 } - | 'assert_unlinkable' '(' module1 string ')' { AssertUnlinkable $3 $4 } - | 'assert_exhaustion' '(' action1 string ')' { AssertExhaustion $3 $4 } +assertion1 :: { (Maybe AlexPosn, Assertion) } + : 'assert_return' '(' action1 list(folded_instr) ')' { ($1, AssertReturn $3 (map (map constInstructionToValue) $4)) } + | 'assert_return_canonical_nan' '(' action1 ')' { ($1, AssertReturnCanonicalNaN $3) } + | 'assert_return_arithmetic_nan' '(' action1 ')' { ($1, AssertReturnArithmeticNaN $3) } + | 'assert_trap' '(' assertion_trap string ')' { ($1, AssertTrap $3 $4) } + | 'assert_malformed' '(' module1 string ')' { ($1, AssertMalformed $3 $4) } + | 'assert_invalid' '(' module1 string ')' { ($1, AssertInvalid $3 $4) } + | 'assert_unlinkable' '(' module1 string ')' { ($1, AssertUnlinkable $3 $4) } + | 'assert_exhaustion' '(' action1 string ')' { ($1, AssertExhaustion $3 $4) } assertion_trap :: { Either Action ModuleDef } : action1 { Left $1 } @@ -1454,7 +1454,7 @@ data Command = ModuleDef ModuleDef | Register TL.Text (Maybe Ident) | Action Action - | Assertion Assertion + | Assertion Int Assertion | Meta Meta deriving (Show, Eq) @@ -1518,6 +1518,7 @@ desugarize fields = do segments <- mapM (synDataToStruct mod) $ datas mod globs <- mapM (synGlobalToStruct mod) $ globals mod checkMemoryIdentsUniqueness mod + checkGlobalIdentsUniqueness mod return S.Module { S.types = map synTypeDefToStruct $ types mod, S.functions = funs, @@ -1855,7 +1856,7 @@ desugarize fields = do getMemIndexes :: Module -> Ident -> [Natural] getMemIndexes Module { imports, mems } id = let memImports = zip [0..] $ filter isMemImport imports in - let importIndexes = map fst $ filter (\((_, Import { desc = ImportMemory ident _ })) -> ident == Just id) memImports in + let importIndexes = map fst $ filter (\(_, Import { desc = ImportMemory ident _ }) -> ident == Just id) memImports in let isIdent (_, (Memory _ (Just id) _)) = True in let memIndexes = map fst $ filter isIdent $ zip [length memImports..] mems in map fromIntegral $ importIndexes ++ memIndexes @@ -1873,6 +1874,23 @@ desugarize fields = do let ctx = FunCtx mod [] [] [] in S.Global globalType <$> mapM (synInstrToStruct ctx) initializer + checkGlobalIdentsUniqueness :: Module -> Either String () + checkGlobalIdentsUniqueness m@Module { imports, globals } = do + mapM_ checkImportUniqueness $ filter isGlobalImport imports + mapM_ checkGlobalUniqueness globals + where + checkImportUniqueness Import { desc = ImportGlobal (Just id) _ } = + if length (getGlobalIndexes m id) > 1 + then Left "duplicate global" + else return () + checkImportUniqueness _ = return () + + checkGlobalUniqueness (Global _ (Just id) _ _) = + if length (getGlobalIndexes m id) > 1 + then Left "duplicate global" + else return () + checkGlobalUniqueness _ = return () + extractGlobal :: [Global] -> ModuleField -> [Global] extractGlobal globals (MFGlobal global) = global : globals extractGlobal globals _ = globals @@ -1881,14 +1899,19 @@ desugarize fields = do isGlobalImport Import { desc = ImportGlobal _ _ } = True isGlobalImport _ = False + getGlobalIndexes :: Module -> Ident -> [Natural] + getGlobalIndexes Module { imports, globals } id = + let globalImports = zip [0..] $ filter isGlobalImport imports in + let importIndexes = map fst $ filter (\(_, Import { desc = ImportGlobal ident _ }) -> ident == Just id) globalImports in + let isIdent (_, Global { ident }) = ident == Just id in + let globalIndexes = map fst $ filter isIdent $ zip [length globalImports..] globals in + map fromIntegral $ importIndexes ++ globalIndexes + getGlobalIndex :: Module -> GlobalIndex -> Maybe Natural - getGlobalIndex Module { imports, globals } (Named id) = - let globalImports = filter isGlobalImport imports in - case findIndex (\(Import { desc = ImportGlobal ident _ }) -> ident == Just id) globalImports of - Just idx -> return $ fromIntegral idx - Nothing -> - let isIdent (Global { ident }) = ident == Just id in - fromIntegral . (+ length globalImports) <$> findIndex isIdent globals + getGlobalIndex mod@Module { imports, globals } (Named id) = + case getGlobalIndexes mod id of + [idx] -> return idx + _ -> Nothing getGlobalIndex Module { imports, globals } (Index idx) = Just idx -- elem segment diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index 603ba08..c1a63ce 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -47,7 +47,7 @@ emptyState = ScriptState { runScript :: OnAssertFail -> Script -> IO () runScript onAssertFail script = do - (globI32, globF32, globF64) <- hostGlobals + (globI32, globI64, globF32, globF64) <- hostGlobals (st, inst) <- Interpreter.makeHostModule Interpreter.emptyStore [ ("print", hostPrint []), ("print_i32", hostPrint [Struct.I32]), @@ -56,6 +56,7 @@ runScript onAssertFail script = do ("print_f32", hostPrint [Struct.F32]), ("print_f64", hostPrint [Struct.F64]), ("global_i32", globI32), + ("global_i64", globI64), ("global_f32", globF32), ("global_f64", globF64), ("memory", Interpreter.HostMemory $ Struct.Limit 1 (Just 2)), @@ -65,10 +66,16 @@ runScript onAssertFail script = do where hostPrint paramTypes = Interpreter.HostFunction (Struct.FuncType paramTypes []) (\args -> return []) hostGlobals = do - globI32 <- Interpreter.makeMutGlobal $ Interpreter.VI32 666 + let globI32 = Interpreter.makeConstGlobal $ Interpreter.VI32 666 + let globI64 = Interpreter.makeConstGlobal $ Interpreter.VI64 666 globF32 <- Interpreter.makeMutGlobal $ Interpreter.VF32 666 globF64 <- Interpreter.makeMutGlobal $ Interpreter.VF64 666 - return (Interpreter.HostGlobal globI32, Interpreter.HostGlobal globF32, Interpreter.HostGlobal globF64) + return ( + Interpreter.HostGlobal globI32, + Interpreter.HostGlobal globI64, + Interpreter.HostGlobal globF32, + Interpreter.HostGlobal globF64 + ) go [] _ = return () go (c:cs) st = runCommand st c >>= go cs @@ -130,19 +137,19 @@ runScript onAssertFail script = do isValueEqual (Interpreter.VF64 v1) (Interpreter.VF64 v2) = identicalIEEE v1 v2 isValueEqual _ _ = False - isNaNReturned :: ScriptState -> Action -> Assertion -> IO () - isNaNReturned st action assert = do + isNaNReturned :: ScriptState -> String -> Action -> Assertion -> IO () + isNaNReturned st pos action assert = do result <- runAction st action case result of Just [Interpreter.VF32 v] -> if isNaN v then return () - else onAssertFail ("Expected NaN, but action returned " ++ show v) assert + else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert Just [Interpreter.VF64 v] -> if isNaN v then return () - else onAssertFail ("Expected NaN, but action returned " ++ show v) assert - _ -> onAssertFail ("Expected NaN, but action returned " ++ show result) assert + else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert + _ -> onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show result) assert buildModule :: ModuleDef -> (Maybe Ident, Struct.Module) buildModule (RawModDef ident m) = (ident, m) @@ -178,67 +185,67 @@ runScript onAssertFail script = do getFailureString Validate.InvalidStartFunctionType = ["start function"] getFailureString r = [TL.concat ["not implemented ", (TL.pack $ show r)]] - runAssert :: ScriptState -> Assertion -> IO () - runAssert st assert@(AssertReturn action expected) = do + runAssert :: ScriptState -> String -> Assertion -> IO () + runAssert st pos assert@(AssertReturn action expected) = do result <- runAction st action case result of Just result -> do if length result == length expected && (all id $ zipWith isValueEqual result (map asArg expected)) then return () - else onAssertFail ("Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert - Nothing -> onAssertFail ("Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert - runAssert st assert@(AssertReturnCanonicalNaN action) = isNaNReturned st action assert - runAssert st assert@(AssertReturnArithmeticNaN action) = isNaNReturned st action assert - runAssert st assert@(AssertInvalid moduleDef failureString) = + else onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert + Nothing -> onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert + runAssert st pos assert@(AssertReturnCanonicalNaN action) = isNaNReturned st pos action assert + runAssert st pos assert@(AssertReturnArithmeticNaN action) = isNaNReturned st pos action assert + runAssert st pos assert@(AssertInvalid moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of - Right _ -> onAssertFail "An invalid module passed validation step" assert + Right _ -> onAssertFail (pos ++ ": An invalid module passed validation step") assert Left reason -> if failureString `elem` getFailureString reason then return () else - let msg = "Module is invalid for other reason. Expected " + let msg = pos ++ ": Module is invalid for other reason. Expected " ++ show failureString ++ ", but actual is " ++ show (getFailureString reason) in onAssertFail msg assert - runAssert st assert@(AssertMalformed (TextModDef _ textRep) failureString) = + runAssert st pos assert@(AssertMalformed (TextModDef _ textRep) failureString) = case DeepSeq.force $ Lexer.scanner (TLEncoding.encodeUtf8 textRep) >>= Parser.parseModule of - Right _ -> onAssertFail ("Module parsing should fail with failure string " ++ show failureString) assert + Right _ -> onAssertFail (pos ++ ": Module parsing should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = + runAssert st pos assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = case Binary.decodeModuleLazy binaryRep of - Right _ -> onAssertFail ("Module decoding should fail with failure string " ++ show failureString) assert + Right _ -> onAssertFail (pos ++ ": Module decoding should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st assert@(AssertMalformed (RawModDef _ _) failureString) = return () - runAssert st assert@(AssertUnlinkable moduleDef failureString) = + runAssert st _ assert@(AssertMalformed (RawModDef _ _) failureString) = return () + runAssert st pos assert@(AssertUnlinkable moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do res <- Interpreter.instantiate (store st) (buildImports st) m case res of Left err -> return () - Right _ -> onAssertFail ("Module linking should fail with failure string " ++ show failureString) assert - Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason - runAssert st assert@(AssertTrap (Left action) failureString) = do + Right _ -> onAssertFail (pos ++ ": Module linking should fail with failure string " ++ show failureString) assert + Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason + runAssert st pos assert@(AssertTrap (Left action) failureString) = do result <- runAction st action if isNothing result then return () - else onAssertFail ("Expected trap, but action returned " ++ show (fromJust result)) assert - runAssert st assert@(AssertTrap (Right moduleDef) failureString) = + else onAssertFail (pos ++ ":Expected trap, but action returned " ++ show (fromJust result)) assert + runAssert st pos assert@(AssertTrap (Right moduleDef) failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do res <- Interpreter.instantiate (store st) (buildImports st) m case res of Left "Start function terminated with trap" -> return () - _ -> onAssertFail ("Module linking should fail with trap during execution of a start function") assert - Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason - runAssert st assert@(AssertExhaustion action failureString) = do + _ -> onAssertFail (pos ++ ": Module linking should fail with trap during execution of a start function") assert + Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason + runAssert st pos assert@(AssertExhaustion action failureString) = do result <- runAction st action if isNothing result then return () - else onAssertFail ("Expected exhaustion, but action returned " ++ show (fromJust result)) assert + else onAssertFail (pos ++ ": Expected exhaustion, but action returned " ++ show (fromJust result)) assert runCommand :: ScriptState -> Command -> IO ScriptState runCommand st (ModuleDef moduleDef) = @@ -246,5 +253,5 @@ runScript onAssertFail script = do addModule ident m st runCommand st (Register name i) = return $ addToRegistery name i st runCommand st (Action action) = runAction st action >> return st - runCommand st (Assertion assertion) = runAssert st assertion >> return st + runCommand st (Assertion pos assertion) = runAssert st ("Line " ++ show pos) assertion >> return st runCommand st _ = return st diff --git a/tests/Test.hs b/tests/Test.hs index f66b65f..409d653 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["linking.wast"] + -- let files = ["global.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 016ec834222a596b0734ab7d36c6a9bb1e273be2 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Fri, 12 Mar 2021 22:34:42 -0800 Subject: [PATCH 16/28] change instansiating to be stateful --- src/Language/Wasm/Interpreter.hs | 49 +++++++++------- src/Language/Wasm/Script.hs | 99 +++++++++++++++++++------------- tests/Test.hs | 2 +- 3 files changed, 87 insertions(+), 63 deletions(-) diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 1a2242a..1a44f12 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -53,6 +53,7 @@ import Data.Bits ( ) import Numeric.IEEE (IEEE, copySign, minNum, maxNum, identicalIEEE) import Control.Monad.Except (ExceptT, runExceptT, throwError) +import qualified Control.Monad.State as State import Control.Monad.IO.Class (liftIO) import Language.Wasm.Structure as Struct @@ -468,25 +469,27 @@ allocMems mems = Vector.fromList <$> mapM allocMem mems memory } -type Initialize = ExceptT String IO +type Initialize = ExceptT String (State.StateT Store IO) -initialize :: ModuleInstance -> Module -> Store -> Initialize Store -initialize inst Module {elems, datas, start} store = do - checkedMems <- mapM (checkData store) datas - checkedTables <- mapM (checkElem store) elems +initialize :: ModuleInstance -> Module -> Initialize () +initialize inst Module {elems, datas, start} = do + checkedMems <- mapM checkData datas + checkedTables <- mapM checkElem elems mapM_ initData checkedMems - st <- Monad.foldM initElem store checkedTables + mapM_ initElem checkedTables + st <- State.get case start of Just (StartFunction idx) -> do - let funInst = funcInstances store ! (funcaddrs inst ! fromIntegral idx) + let funInst = funcInstances st ! (funcaddrs inst ! fromIntegral idx) mainRes <- liftIO $ eval defaultBudget st funInst [] case mainRes of - Just [] -> return st + Just [] -> return () _ -> throwError "Start function terminated with trap" - Nothing -> return st + Nothing -> return () where - checkElem :: Store -> ElemSegment -> Initialize (Address, Int, [Address]) - checkElem st ElemSegment {tableIndex, offset, funcIndexes} = do + checkElem :: ElemSegment -> Initialize (Address, Int, [Address]) + checkElem ElemSegment {tableIndex, offset, funcIndexes} = do + st <- State.get VI32 val <- liftIO $ evalConstExpr inst st offset let from = fromIntegral val let funcs = map ((funcaddrs inst !) . fromIntegral) funcIndexes @@ -497,14 +500,15 @@ initialize inst Module {elems, datas, start} store = do Monad.when (last > len) $ throwError "elements segment does not fit" return (idx, from, funcs) - initElem :: Store -> (Address, Int, [Address]) -> Initialize Store - initElem st (idx, from, funcs) = do - let TableInstance lim elems = tableInstances st ! idx - let table = TableInstance lim (elems // zip [from..] (map Just funcs)) - return st { tableInstances = tableInstances st Vector.// [(idx, table)] } + initElem :: (Address, Int, [Address]) -> Initialize () + initElem (idx, from, funcs) = State.modify $ \st -> + let TableInstance lim elems = tableInstances st ! idx in + let table = TableInstance lim (elems // zip [from..] (map Just funcs)) in + st { tableInstances = tableInstances st Vector.// [(idx, table)] } - checkData :: Store -> DataSegment -> Initialize (Int, MemoryStore, LBS.ByteString) - checkData st DataSegment {memIndex, offset, chunk} = do + checkData :: DataSegment -> Initialize (Int, MemoryStore, LBS.ByteString) + checkData DataSegment {memIndex, offset, chunk} = do + st <- State.get VI32 val <- liftIO $ evalConstExpr inst st offset let from = fromIntegral val let idx = memaddrs inst ! fromIntegral memIndex @@ -519,21 +523,22 @@ initialize inst Module {elems, datas, start} store = do initData (from, mem, chunk) = mapM_ (\(i,b) -> ByteArray.writeByteArray mem i b) $ zip [from..] $ LBS.unpack chunk -instantiate :: Store -> Imports -> Valid.ValidModule -> IO (Either String (ModuleInstance, Store)) -instantiate st imps mod = runExceptT $ do +instantiate :: Store -> Imports -> Valid.ValidModule -> IO (Either String ModuleInstance, Store) +instantiate st imps mod = flip State.runStateT st $ runExceptT $ do let m = Valid.getModule mod inst <- calcInstance st imps m let functions = funcInstances st <> (allocFunctions inst $ Struct.functions m) globals <- liftIO $ (globalInstances st <>) <$> (allocAndInitGlobals inst st $ Struct.globals m) let tables = tableInstances st <> (allocTables $ Struct.tables m) mems <- liftIO $ (memInstances st <>) <$> (allocMems $ Struct.mems m) - st' <- initialize inst m $ st { + State.put $ st { funcInstances = functions, tableInstances = tables, memInstances = mems, globalInstances = globals } - return $ (inst, st') + initialize inst m + return inst type Stack = [Value] diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index c1a63ce..6c12fa6 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -8,6 +8,8 @@ import qualified Data.Map as Map import qualified Data.Vector as Vector import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy.Encoding as TLEncoding +import qualified Control.Monad.State as State +import Control.Monad.IO.Class (liftIO) import Numeric.IEEE (identicalIEEE) import qualified Control.DeepSeq as DeepSeq import Data.Maybe (fromJust, isNothing) @@ -45,6 +47,8 @@ emptyState = ScriptState { moduleRegistery = Map.empty } +type AssertM = State.StateT (ScriptState, String) IO + runScript :: OnAssertFail -> Script -> IO () runScript onAssertFail script = do (globI32, globI64, globF32, globF64) <- hostGlobals @@ -103,9 +107,9 @@ runScript onAssertFail script = do addModule ident m st = case Validate.validate m of Right m -> do - res <- Interpreter.instantiate (store st) (buildImports st) m + (res, store') <- Interpreter.instantiate (store st) (buildImports st) m case res of - Right (modInst, store') -> return $ addToStore ident modInst $ st { lastModule = Just modInst, store = store' } + Right modInst -> return $ addToStore ident modInst $ st { lastModule = Just modInst, store = store' } Left reason -> error $ "Module instantiation failed due to invalid module with reason: " ++ show reason Left reason -> error $ "Module instantiation failed due to invalid module with reason: " ++ show reason @@ -137,19 +141,19 @@ runScript onAssertFail script = do isValueEqual (Interpreter.VF64 v1) (Interpreter.VF64 v2) = identicalIEEE v1 v2 isValueEqual _ _ = False - isNaNReturned :: ScriptState -> String -> Action -> Assertion -> IO () - isNaNReturned st pos action assert = do - result <- runAction st action + isNaNReturned :: Action -> Assertion -> AssertM () + isNaNReturned action assert = do + result <- runActionInAssert action case result of Just [Interpreter.VF32 v] -> if isNaN v then return () - else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert + else printFailedAssert ("Expected NaN, but action returned " ++ show v) assert Just [Interpreter.VF64 v] -> if isNaN v then return () - else onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show v) assert - _ -> onAssertFail (pos ++ ": Expected NaN, but action returned " ++ show result) assert + else printFailedAssert ("Expected NaN, but action returned " ++ show v) assert + _ -> printFailedAssert ("Expected NaN, but action returned " ++ show result) assert buildModule :: ModuleDef -> (Maybe Ident, Struct.Module) buildModule (RawModDef ident m) = (ident, m) @@ -185,67 +189,81 @@ runScript onAssertFail script = do getFailureString Validate.InvalidStartFunctionType = ["start function"] getFailureString r = [TL.concat ["not implemented ", (TL.pack $ show r)]] - runAssert :: ScriptState -> String -> Assertion -> IO () - runAssert st pos assert@(AssertReturn action expected) = do - result <- runAction st action + printFailedAssert :: String -> Assertion -> AssertM () + printFailedAssert msg assert = do + (_, pos) <- State.get + liftIO $ onAssertFail (pos ++ ": " ++ msg) assert + + runActionInAssert :: Action -> AssertM (Maybe [Interpreter.Value]) + runActionInAssert action = do + (st, _) <- State.get + liftIO $ runAction st action + + runAssert :: Assertion -> AssertM () + runAssert assert@(AssertReturn action expected) = do + (st, _) <- State.get + result <- runActionInAssert action case result of Just result -> do if length result == length expected && (all id $ zipWith isValueEqual result (map asArg expected)) then return () - else onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert - Nothing -> onAssertFail (pos ++ ": Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert - runAssert st pos assert@(AssertReturnCanonicalNaN action) = isNaNReturned st pos action assert - runAssert st pos assert@(AssertReturnArithmeticNaN action) = isNaNReturned st pos action assert - runAssert st pos assert@(AssertInvalid moduleDef failureString) = + else printFailedAssert ("Expected " ++ show (map asArg expected) ++ ", but action returned " ++ show result) assert + Nothing -> printFailedAssert ("Expected " ++ show (map asArg expected) ++ ", but action returned Trap") assert + runAssert assert@(AssertReturnCanonicalNaN action) = isNaNReturned action assert + runAssert assert@(AssertReturnArithmeticNaN action) = isNaNReturned action assert + runAssert assert@(AssertInvalid moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of - Right _ -> onAssertFail (pos ++ ": An invalid module passed validation step") assert + Right _ -> printFailedAssert "An invalid module passed validation step" assert Left reason -> if failureString `elem` getFailureString reason then return () else - let msg = pos ++ ": Module is invalid for other reason. Expected " + let msg = "Module is invalid for other reason. Expected " ++ show failureString ++ ", but actual is " ++ show (getFailureString reason) - in onAssertFail msg assert - runAssert st pos assert@(AssertMalformed (TextModDef _ textRep) failureString) = + in printFailedAssert msg assert + runAssert assert@(AssertMalformed (TextModDef _ textRep) failureString) = case DeepSeq.force $ Lexer.scanner (TLEncoding.encodeUtf8 textRep) >>= Parser.parseModule of - Right _ -> onAssertFail (pos ++ ": Module parsing should fail with failure string " ++ show failureString) assert + Right _ -> printFailedAssert ("Module parsing should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st pos assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = + runAssert assert@(AssertMalformed (BinaryModDef ident binaryRep) failureString) = case Binary.decodeModuleLazy binaryRep of - Right _ -> onAssertFail (pos ++ ": Module decoding should fail with failure string " ++ show failureString) assert + Right _ -> printFailedAssert ("Module decoding should fail with failure string " ++ show failureString) assert Left _ -> return () - runAssert st _ assert@(AssertMalformed (RawModDef _ _) failureString) = return () - runAssert st pos assert@(AssertUnlinkable moduleDef failureString) = + runAssert assert@(AssertMalformed (RawModDef _ _) failureString) = return () + runAssert assert@(AssertUnlinkable moduleDef failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do - res <- Interpreter.instantiate (store st) (buildImports st) m + st <- fst <$> State.get + (res, _) <- liftIO $ Interpreter.instantiate (store st) (buildImports st) m case res of Left err -> return () - Right _ -> onAssertFail (pos ++ ": Module linking should fail with failure string " ++ show failureString) assert - Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason - runAssert st pos assert@(AssertTrap (Left action) failureString) = do - result <- runAction st action + Right _ -> printFailedAssert ("Module linking should fail with failure string " ++ show failureString) assert + Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason + runAssert assert@(AssertTrap (Left action) failureString) = do + result <- runActionInAssert action if isNothing result then return () - else onAssertFail (pos ++ ":Expected trap, but action returned " ++ show (fromJust result)) assert - runAssert st pos assert@(AssertTrap (Right moduleDef) failureString) = + else printFailedAssert ("Expected trap, but action returned " ++ show (fromJust result)) assert + runAssert assert@(AssertTrap (Right moduleDef) failureString) = let (_, m) = buildModule moduleDef in case Validate.validate m of Right m -> do - res <- Interpreter.instantiate (store st) (buildImports st) m + st <- fst <$> State.get + (res, store') <- liftIO $ Interpreter.instantiate (store st) (buildImports st) m case res of - Left "Start function terminated with trap" -> return () - _ -> onAssertFail (pos ++ ": Module linking should fail with trap during execution of a start function") assert - Left reason -> error $ pos ++ ": Module linking failed due to invalid module with reason: " ++ show reason - runAssert st pos assert@(AssertExhaustion action failureString) = do - result <- runAction st action + Left "Start function terminated with trap" -> + State.modify $ \(st, pos) -> (st { store = store' }, pos) + _ -> printFailedAssert ("Module linking should fail with trap during execution of a start function") assert + Left reason -> error $ "Module linking failed due to invalid module with reason: " ++ show reason + runAssert assert@(AssertExhaustion action failureString) = do + result <- runActionInAssert action if isNothing result then return () - else onAssertFail (pos ++ ": Expected exhaustion, but action returned " ++ show (fromJust result)) assert + else printFailedAssert ("Expected exhaustion, but action returned " ++ show (fromJust result)) assert runCommand :: ScriptState -> Command -> IO ScriptState runCommand st (ModuleDef moduleDef) = @@ -253,5 +271,6 @@ runScript onAssertFail script = do addModule ident m st runCommand st (Register name i) = return $ addToRegistery name i st runCommand st (Action action) = runAction st action >> return st - runCommand st (Assertion pos assertion) = runAssert st ("Line " ++ show pos) assertion >> return st + runCommand st (Assertion pos assertion) = do + fst <$> flip State.execStateT (st, ("Line " ++ show pos)) (runAssert assertion) runCommand st _ = return st diff --git a/tests/Test.hs b/tests/Test.hs index 409d653..f66b65f 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["global.wast"] + -- let files = ["linking.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 66e86754b01f29571af8ea65b4b04a972e4e693a Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Fri, 12 Mar 2021 22:56:23 -0800 Subject: [PATCH 17/28] report multiple start sections in text representation as parsing error --- src/Language/Wasm/Parser.y | 10 ++++++++++ tests/Test.hs | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index c9259e5..dadfef0 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -1501,6 +1501,7 @@ constInstructionToValue _ = error "Only const instructions supported as argument desugarize :: [ModuleField] -> Either String S.Module desugarize fields = do checkImportsOrder fields + checkStartCount fields let mod = Module { types = reverse $ foldl' extractTypeDef (reverse $ explicitTypeDefs fields) fields, functions = extract extractFunction fields, @@ -1562,6 +1563,15 @@ desugarize fields = do checkDef _ (MFMem _) = return True checkDef _ (MFTable _) = return True checkDef nonImportOccured _ = return nonImportOccured + + checkStartCount :: [ModuleField] -> Either String () + checkStartCount fields = foldM checkDef False fields >> return () + where + checkDef startOccured (MFStart _) = + if startOccured + then Left "Multiple start sections" + else Right True + checkDef startOccured _ = return startOccured extractTypeDef :: [TypeDef] -> ModuleField -> [TypeDef] extractTypeDef defs (MFType _) = defs -- should be extracted before implicit defs diff --git a/tests/Test.hs b/tests/Test.hs index f66b65f..ed398db 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["linking.wast"] + -- let files = ["start.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 4b670b3d175599b0c8dd25f51cd35c1f449e2b0f Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 15 Mar 2021 22:59:10 -0700 Subject: [PATCH 18/28] start multivalue proposal implementation for block instruction --- src/Language/Wasm/Binary.hs | 29 +++++++++++++++++--- src/Language/Wasm/Builder.hs | 12 ++++----- src/Language/Wasm/Interpreter.hs | 6 ++++- src/Language/Wasm/Parser.y | 46 +++++++++++++++++++------------- src/Language/Wasm/Structure.hs | 8 +++++- src/Language/Wasm/Validate.hs | 25 +++++++++++++---- tests/Test.hs | 2 +- 7 files changed, 92 insertions(+), 36 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index d8d30c9..019fa39 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -167,6 +167,29 @@ getResultType = do 0x7C -> return [F64] _ -> fail "unexpected byte in result type position" +putBlockType :: BlockType -> Put +putBlockType (Inline Nothing) = putWord8 0x40 +putBlockType (Inline (Just valType)) = put valType +putBlockType (TypeIndex idx) = putSLEB128 idx + +getInlineBlockType :: Get (Maybe (Maybe ValueType)) +getInlineBlockType = do + op <- getWord8 + case op of + 0x40 -> return $ Just Nothing + 0x7F -> return $ Just (Just I32) + 0x7E -> return $ Just (Just I64) + 0x7D -> return $ Just (Just F32) + 0x7C -> return $ Just (Just F64) + _ -> return Nothing + +getBlockType :: Get BlockType +getBlockType = do + inlineType <- lookAheadM getInlineBlockType + case inlineType of + Just inline -> return $ Inline inline + Nothing -> TypeIndex <$> getSLEB128 33 + data SectionType = CustomSection | TypeSection @@ -304,9 +327,9 @@ instance Serialize MemArg where instance Serialize (Instruction Natural) where put Unreachable = putWord8 0x00 put Nop = putWord8 0x01 - put (Block result body) = do + put (Block blockType body) = do putWord8 0x02 - putResultType result + putBlockType blockType putExpression body put (Loop result body) = do putWord8 0x03 @@ -504,7 +527,7 @@ instance Serialize (Instruction Natural) where case op of 0x00 -> return Unreachable 0x01 -> return Nop - 0x02 -> Block <$> getResultType <*> getExpression + 0x02 -> Block <$> getBlockType <*> getExpression 0x03 -> Loop <$> getResultType <*> getExpression 0x04 -> do resultType <- getResultType diff --git a/src/Language/Wasm/Builder.hs b/src/Language/Wasm/Builder.hs index 936ca64..b5a604c 100644 --- a/src/Language/Wasm/Builder.hs +++ b/src/Language/Wasm/Builder.hs @@ -41,7 +41,7 @@ module Language.Wasm.Builder ( memorySize, growMemory, nop, Language.Wasm.Builder.drop, select, call, callIndirect, finish, br, brIf, brTable, - if', loop, block, when, for, while, + if', loop, {-block,-} when, for, while, trap, unreachable, appendExpr, after, Producer, OutType, produce, Consumer, (.=) @@ -727,11 +727,11 @@ loop res body = do appendExpr [Loop (asResultValue res) (genExpr deep $ body)] return returnableValue -block :: (Returnable res) => res -> GenFun res -> GenFun res -block res body = do - deep <- (+1) <$> ask - appendExpr [Block (asResultValue res) (genExpr deep $ body)] - return returnableValue +-- block :: (Returnable res) => res -> GenFun res -> GenFun res +-- block res body = do +-- deep <- (+1) <$> ask +-- appendExpr [Block (asResultValue res) (genExpr deep $ body)] +-- return returnableValue trap :: Proxy t -> GenFun (Proxy t) trap t = do diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index 1a44f12..c237aab 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -635,7 +635,11 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { step :: EvalCtx -> Instruction Natural -> IO EvalResult step _ Unreachable = return Trap step ctx Nop = return $ Done ctx - step ctx (Block resType expr) = do + step ctx (Block blockType expr) = do + let resType = case blockType of + Inline Nothing -> [] + Inline (Just valType) -> [valType] + TypeIndex typeIdx -> results $ funcTypes moduleInstance ! fromIntegral typeIdx res <- go ctx { labels = Label resType : labels ctx } expr case res of Break 0 r EvalCtx{ locals = ls } -> return $ Done ctx { locals = ls, stack = r ++ stack ctx } diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index dadfef0..3a9f717 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -576,7 +576,7 @@ plaininstr :: { PlainInstr } typeuse :: { TypeUse } : '(' typeuse1 { $2 } - | {- empty -} { AnonimousTypeUse $ FuncType [] [] } + | {- empty -} { emptyTypeUse } typeuse1 :: { TypeUse } : 'type' index ')' typedtypeuse { IndexedTypeUse $2 $4 } @@ -644,28 +644,28 @@ raw_block :: { Maybe Ident -> Either String Instruction } : 'end' opt(ident) { \ident -> if ident == $2 || isNothing $2 - then Right $ BlockInstr ident [] [] + then Right $ BlockInstr ident emptyTypeUse [] else Left "Block labels have to match" } | raw_instr list(instruction) 'end' opt(ident) { \ident -> if ident == $4 || isNothing $4 - then Right $ BlockInstr ident [] ($1 ++ concat $2) + then Right $ BlockInstr ident emptyTypeUse ($1 ++ concat $2) else Left "Block labels have to match" } | '(' raw_block1 { $2 } raw_block1 :: { Maybe Ident -> Either String Instruction } - : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { + : typeuse1 list(instruction) 'end' opt(ident) { \ident -> - if ident == $6 || isNothing $6 - then Right $ BlockInstr ident $2 (concat $4) + if ident == $4 || isNothing $4 + then Right $ BlockInstr ident $1 (concat $2) else Left "Block labels have to match" } | folded_instr1 list(instruction) 'end' opt(ident) { \ident -> if ident == $4 || isNothing $4 - then Right $ BlockInstr ident [] ($1 ++ concat $2) + then Right $ BlockInstr ident emptyTypeUse ($1 ++ concat $2) else Left "Block labels have to match" } @@ -737,7 +737,7 @@ raw_else :: { ([Instruction], Maybe Ident) } raw_call_indirect :: { [Instruction] } : '(' raw_call_indirect_typeuse { (PlainInstr $ CallIndirect $ fst $2) : snd $2 } - | {- empty -} { [PlainInstr $ CallIndirect $ AnonimousTypeUse $ FuncType [] []] } + | {- empty -} { [PlainInstr $ CallIndirect emptyTypeUse] } raw_call_indirect_typeuse :: { (TypeUse, [Instruction]) } : 'type' index ')' raw_call_indirect_functype { @@ -780,13 +780,13 @@ folded_instr1 :: { [Instruction] } | 'if' opt(ident) '(' folded_if_result { $4 $2 } folded_block :: { Maybe Ident -> Instruction } - : ')' { \ident -> BlockInstr ident [] [] } + : ')' { \ident -> BlockInstr ident emptyTypeUse [] } | '(' folded_block1 { $2 } - | raw_instr list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } + | raw_instr list(instruction) ')' { \ident -> BlockInstr ident emptyTypeUse ($1 ++ concat $2) } folded_block1 :: { Maybe Ident -> Instruction } - : 'result' list(valtype) ')' list(instruction) ')' { \ident -> BlockInstr ident $2 (concat $4) } - | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident [] ($1 ++ concat $2) } + : typeuse1 list(instruction) ')' { \ident -> BlockInstr ident $1 (concat $2) } + | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident emptyTypeUse ($1 ++ concat $2) } folded_loop :: { Maybe Ident -> Instruction } : ')' { \ident -> LoopInstr ident [] [] } @@ -821,7 +821,7 @@ folded_else :: { [Instruction] } | '(' 'else' list(instruction) ')' ')' { concat $3 } folded_call_indirect :: { [Instruction] } - : ')' { [PlainInstr $ CallIndirect $ AnonimousTypeUse $ FuncType [] []] } + : ')' { [PlainInstr $ CallIndirect emptyTypeUse] } | '(' folded_call_indirect_typeuse { snd $2 ++ [PlainInstr $ CallIndirect $ fst $2] } folded_call_indirect_typeuse :: { (TypeUse, [Instruction]) } @@ -1308,11 +1308,13 @@ data TypeUse = | AnonimousTypeUse FuncType deriving (Show, Eq, Generic, NFData) +emptyTypeUse = AnonimousTypeUse emptyFuncType + data Instruction = PlainInstr PlainInstr | BlockInstr { label :: Maybe Ident, - resultType :: [ValueType], + blockType :: TypeUse, body :: [Instruction] } | LoopInstr { @@ -1593,8 +1595,8 @@ desugarize fields = do extractTypeDefFromInstruction :: [TypeDef] -> Instruction -> [TypeDef] extractTypeDefFromInstruction defs (PlainInstr (CallIndirect typeUse)) = matchTypeUse defs typeUse - extractTypeDefFromInstruction defs (BlockInstr { body }) = - extractTypeDefFromInstructions defs body + extractTypeDefFromInstruction defs (BlockInstr { body, blockType }) = + extractTypeDefFromInstructions (matchTypeUse defs blockType) body extractTypeDefFromInstruction defs (LoopInstr { body }) = extractTypeDefFromInstructions defs body extractTypeDefFromInstruction defs (IfInstr { trueBranch, falseBranch }) = @@ -1742,9 +1744,15 @@ desugarize fields = do synInstrToStruct _ (PlainInstr F64PromoteF32) = return $ S.F64PromoteF32 synInstrToStruct _ (PlainInstr (IReinterpretF sz)) = return $ S.IReinterpretF sz synInstrToStruct _ (PlainInstr (FReinterpretI sz)) = return $ S.FReinterpretI sz - synInstrToStruct ctx BlockInstr {label, resultType, body} = - let ctx' = ctx { ctxLabels = label : ctxLabels ctx } in - S.Block resultType <$> mapM (synInstrToStruct ctx') body + synInstrToStruct ctx@FunCtx { ctxMod = Module { types } } BlockInstr {label, blockType, body} = do + let ctx' = ctx { ctxLabels = label : ctxLabels ctx } + bt <- case blockType of + AnonimousTypeUse (FuncType [] []) -> return $ S.Inline Nothing + AnonimousTypeUse (FuncType [] [vt]) -> return $ S.Inline (Just vt) + typed -> case getTypeIndex types typed of + Just idx -> return $ S.TypeIndex idx + Nothing -> Left "unknown type" + S.Block bt <$> mapM (synInstrToStruct ctx') body synInstrToStruct ctx LoopInstr {label, resultType, body} = let ctx' = ctx { ctxLabels = label : ctxLabels ctx } in S.Loop resultType <$> mapM (synInstrToStruct ctx') body diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 292c68a..72d5dab 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -30,6 +30,7 @@ module Language.Wasm.Structure ( GlobalType(..), FuncType(..), ValueType(..), + BlockType(..), ParamsType, ResultType, LocalsType, @@ -115,11 +116,16 @@ type LocalsType = [ValueType] data FuncType = FuncType { params :: ParamsType, results :: ResultType } deriving (Show, Eq, Generic, NFData) +data BlockType = + Inline (Maybe ValueType) + | TypeIndex TypeIndex + deriving (Show, Eq, Generic, NFData) + data Instruction index = -- Control instructions Unreachable | Nop - | Block { resultType :: ResultType, body :: Expression } + | Block { blockType :: BlockType, body :: Expression } | Loop { resultType :: ResultType, body :: Expression } | If { resultType :: ResultType, true :: Expression, false :: Expression } | Br index diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index 55bd7c1..01e43f4 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -183,15 +183,30 @@ checkMemoryInstr size memarg = do Ctx { mems } <- ask if length mems < 1 then throwError (MemoryIndexOutOfRange 0) else return () +getBlockType :: BlockType -> Checker Arrow +getBlockType (Inline Nothing) = return $ empty ==> empty +getBlockType (Inline (Just valType)) = return $ empty ==> valType +getBlockType (TypeIndex typeIdx) = do + Ctx { types } <- ask + maybeToEither TypeIndexOutOfRange $ asArrow <$> types !? typeIdx + +getResultType :: BlockType -> Checker [ValueType] +getResultType (Inline Nothing) = return [] +getResultType (Inline (Just valType)) = return [valType] +getResultType (TypeIndex typeIdx) = do + Ctx { types } <- ask + maybeToEither TypeIndexOutOfRange $ results <$> types !? typeIdx + getInstrType :: Instruction Natural -> Checker Arrow getInstrType Unreachable = return $ Any ==> Any getInstrType Nop = return $ empty ==> empty -getInstrType Block { resultType, body } = do - let blockType = empty ==> resultType +getInstrType Block { blockType, body } = do + bt <- getBlockType blockType + resultType <- getResultType blockType t <- withLabel resultType $ getExpressionType body - if isArrowMatch t blockType - then return $ empty ==> resultType - else throwError $ TypeMismatch t blockType + if isArrowMatch t bt + then return bt + else throwError $ TypeMismatch t bt getInstrType Loop { resultType, body } = do let blockType = empty ==> resultType t <- withLabel [] $ getExpressionType body diff --git a/tests/Test.hs b/tests/Test.hs index ed398db..729fbee 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["start.wast"] + let files = ["block.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From d5664908d132ab877b93b7a85619268a9da4d192 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Tue, 16 Mar 2021 23:45:43 -0700 Subject: [PATCH 19/28] simplify grammar and parse block typeuses --- src/Language/Wasm/Parser.y | 151 +++++++++++++------------------------ 1 file changed, 52 insertions(+), 99 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 3a9f717..e13a5d9 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -574,6 +574,43 @@ plaininstr :: { PlainInstr } | 'f32.reinterpret_i32' { FReinterpretI BS32 } | 'f64.reinterpret_i64' { FReinterpretI BS64 } +typeuse_cont(next) + : '(' typeuse1_cont(next) { $2 } + | {- empty -} { (emptyTypeUse, Nothing) } + +typeuse1_cont(next) + : 'type' index ')' typesign(next) { let (ft, next) = $4 in (IndexedTypeUse $2 (Just ft), next) } + | typesign1(next) { + let (ft, next) = $1 in + (AnonimousTypeUse ft, next) + } + +typesign(next) + : '(' typesign1(next) { $2 } + | {- empty -} { (emptyFuncType, Nothing) } + +typesign1(next) + : 'param' list(valtype) ')' typesign(next) { + let (ft, next) = $4 in + (mergeFuncType (FuncType (map (ParamType Nothing) $2) []) ft, next) + } + | 'param' ident valtype ')' typesign(next) { + let (ft, next) = $5 in + (mergeFuncType (FuncType [ParamType (Just $2) $3] []) ft, next) + } + | typesign_result1(next) { $1 } + +typesign_result(next) + : '(' typesign_result1(next) { $2 } + | {- empty -} { (emptyFuncType, Nothing) } + +typesign_result1(next) + : 'result' list(valtype) ')' typesign_result(next) { + let (ft, next) = $4 in + (mergeFuncType (FuncType [] $2) ft, next) + } + | next { (emptyFuncType, Just $1) } + typeuse :: { TypeUse } : '(' typeuse1 { $2 } | {- empty -} { emptyTypeUse } @@ -641,31 +678,12 @@ raw_instr :: { [Instruction] } | 'if' opt(ident) raw_if_result {% $3 $2 } raw_block :: { Maybe Ident -> Either String Instruction } - : 'end' opt(ident) { - \ident -> - if ident == $2 || isNothing $2 - then Right $ BlockInstr ident emptyTypeUse [] - else Left "Block labels have to match" - } - | raw_instr list(instruction) 'end' opt(ident) { + : typeuse_cont(folded_instr1) list(instruction) 'end' opt(ident) { \ident -> if ident == $4 || isNothing $4 - then Right $ BlockInstr ident emptyTypeUse ($1 ++ concat $2) - else Left "Block labels have to match" - } - | '(' raw_block1 { $2 } - -raw_block1 :: { Maybe Ident -> Either String Instruction } - : typeuse1 list(instruction) 'end' opt(ident) { - \ident -> - if ident == $4 || isNothing $4 - then Right $ BlockInstr ident $1 (concat $2) - else Left "Block labels have to match" - } - | folded_instr1 list(instruction) 'end' opt(ident) { - \ident -> - if ident == $4 || isNothing $4 - then Right $ BlockInstr ident emptyTypeUse ($1 ++ concat $2) + then + let (tu, instr) = $1 in + Right $ BlockInstr ident tu (fromMaybe [] instr ++ concat $2) else Left "Block labels have to match" } @@ -736,58 +754,27 @@ raw_else :: { ([Instruction], Maybe Ident) } } raw_call_indirect :: { [Instruction] } - : '(' raw_call_indirect_typeuse { (PlainInstr $ CallIndirect $ fst $2) : snd $2 } - | {- empty -} { [PlainInstr $ CallIndirect emptyTypeUse] } - -raw_call_indirect_typeuse :: { (TypeUse, [Instruction]) } - : 'type' index ')' raw_call_indirect_functype { - (IndexedTypeUse $2 $ fst $4, snd $4) + : typeuse_cont(folded_instr1) { + let (tu, instr) = $1 in + [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr } - | raw_call_indirect_functype1 { - (AnonimousTypeUse $ fromMaybe (FuncType [] []) $ fst $1, snd $1) - } - -raw_call_indirect_functype :: { (Maybe FuncType, [Instruction]) } - : '(' raw_call_indirect_functype1 { $2 } - | {- empty -} { (Nothing, []) } - -raw_call_indirect_functype1 :: { (Maybe FuncType, [Instruction]) } - : 'param' list(valtype) ')' raw_call_indirect_functype { - let ft = fromMaybe emptyFuncType $ fst $4 in - (Just $ ft { params = map (ParamType Nothing) $2 ++ params ft }, snd $4) - } - | raw_call_indirect_return_functype1 { $1 } - -raw_call_indirect_return_functype :: { (Maybe FuncType, [Instruction]) } - : '(' raw_call_indirect_return_functype1 { $2 } - | {- empty -} { (Nothing, []) } - -raw_call_indirect_return_functype1 :: { (Maybe FuncType, [Instruction]) } - : 'result' list(valtype) ')' raw_call_indirect_return_functype { - let ft = fromMaybe emptyFuncType $ fst $4 in - (Just $ ft { results = $2 ++ results ft }, snd $4) - } - | folded_instr1 { (Nothing, $1) } folded_instr :: { [Instruction] } : '(' folded_instr1 { $2 } folded_instr1 :: { [Instruction] } : plaininstr list(folded_instr) ')' { concat $2 ++ [PlainInstr $1] } - | 'call_indirect' folded_call_indirect { $2 } - | 'block' opt(ident) folded_block { [$3 $2] } + | 'call_indirect' typeuse_cont(folded_instr1) list(instruction) ')' { + let (tu, instr) = $2 in + [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr ++ concat $3 + } + | 'block' opt(ident) typeuse_cont(folded_instr1) list(instruction) ')' { + let (typeUse, instr) = $3 in + [BlockInstr $2 typeUse (fromMaybe [] instr ++ concat $4)] + } | 'loop' opt(ident) folded_loop { [$3 $2] } | 'if' opt(ident) '(' folded_if_result { $4 $2 } -folded_block :: { Maybe Ident -> Instruction } - : ')' { \ident -> BlockInstr ident emptyTypeUse [] } - | '(' folded_block1 { $2 } - | raw_instr list(instruction) ')' { \ident -> BlockInstr ident emptyTypeUse ($1 ++ concat $2) } - -folded_block1 :: { Maybe Ident -> Instruction } - : typeuse1 list(instruction) ')' { \ident -> BlockInstr ident $1 (concat $2) } - | folded_instr1 list(instruction) ')' { \ident -> BlockInstr ident emptyTypeUse ($1 ++ concat $2) } - folded_loop :: { Maybe Ident -> Instruction } : ')' { \ident -> LoopInstr ident [] [] } | '(' folded_loop1 { $2 } @@ -820,40 +807,6 @@ folded_else :: { [Instruction] } : ')' { [] } | '(' 'else' list(instruction) ')' ')' { concat $3 } -folded_call_indirect :: { [Instruction] } - : ')' { [PlainInstr $ CallIndirect emptyTypeUse] } - | '(' folded_call_indirect_typeuse { snd $2 ++ [PlainInstr $ CallIndirect $ fst $2] } - -folded_call_indirect_typeuse :: { (TypeUse, [Instruction]) } - : 'type' index ')' folded_call_indirect_functype { - (IndexedTypeUse $2 $ fst $4, snd $4) - } - | folded_call_indirect_functype1 { - (AnonimousTypeUse $ fromMaybe (FuncType [] []) $ fst $1, snd $1) - } - -folded_call_indirect_functype :: { (Maybe FuncType, [Instruction]) } - : '(' folded_call_indirect_functype1 { $2 } - | ')' { (Nothing, []) } - -folded_call_indirect_functype1 :: { (Maybe FuncType, [Instruction]) } - : 'param' list(valtype) ')' folded_call_indirect_functype { - let ft = fromMaybe emptyFuncType $ fst $4 in - (Just $ ft { params = map (ParamType Nothing) $2 ++ params ft }, snd $4) - } - | folded_call_indirect_return_functype1 { $1 } - -folded_call_indirect_return_functype :: { (Maybe FuncType, [Instruction]) } - : '(' folded_call_indirect_return_functype1 { $2 } - | ')' { (Nothing, []) } - -folded_call_indirect_return_functype1 :: { (Maybe FuncType, [Instruction]) } - : 'result' list(valtype) ')' folded_call_indirect_return_functype { - let ft = fromMaybe emptyFuncType $ fst $4 in - (Just $ ft { results = $2 ++ results ft }, snd $4) - } - | folded_instr1 list(folded_instr) ')' { (Nothing, $1 ++ concat $2) } - importdesc :: { ImportDesc } : 'func' opt(ident) typeuse ')' { ImportFunc $2 $3 } | 'table' opt(ident) tabletype ')' { ImportTable $2 $3 } From 03f9386c8adfe6cfc8db534cd7f6e2a839a914e0 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Wed, 17 Mar 2021 22:34:50 -0700 Subject: [PATCH 20/28] clean up the parser a little bit and relax arity checks on validation phase --- src/Language/Wasm/Parser.y | 59 +++++++++-------------------------- src/Language/Wasm/Validate.hs | 26 +++++---------- 2 files changed, 22 insertions(+), 63 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index e13a5d9..104bb4e 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -579,7 +579,11 @@ typeuse_cont(next) | {- empty -} { (emptyTypeUse, Nothing) } typeuse1_cont(next) - : 'type' index ')' typesign(next) { let (ft, next) = $4 in (IndexedTypeUse $2 (Just ft), next) } + : 'type' index ')' typesign(next) { + case $4 of + (FuncType [] [], next) -> (IndexedTypeUse $2 Nothing, next) + (ft, next) -> (IndexedTypeUse $2 (Just ft), next) + } | typesign1(next) { let (ft, next) = $1 in (AnonimousTypeUse ft, next) @@ -611,48 +615,16 @@ typesign_result1(next) } | next { (emptyFuncType, Just $1) } +never : EOF { () } + typeuse :: { TypeUse } - : '(' typeuse1 { $2 } - | {- empty -} { emptyTypeUse } - -typeuse1 :: { TypeUse } - : 'type' index ')' typedtypeuse { IndexedTypeUse $2 $4 } - | paramsresultstypeuse { AnonimousTypeUse $1 } - -typedtypeuse :: { Maybe FuncType } - : '(' paramsresultstypeuse { Just $2 } - | {- empty -} { Nothing } + : typeuse_cont(never) { fst $1 } typedef :: { TypeDef } : 'type' opt(ident) functype ')' { TypeDef $2 $3 } functype :: { FuncType } - : '(' 'func' params_results { $3 } - -params_results :: { FuncType } - : ')' { emptyFuncType } - | '(' params_results1 { $2 } - -params_results1 :: { FuncType } - : 'param' list(valtype) ')' params_results { mergeFuncType (FuncType (map (ParamType Nothing) $2) []) $4 } - | 'param' ident valtype ')' params_results { mergeFuncType (FuncType [ParamType (Just $2) $3] []) $5 } - | results1 { $1 } - -results :: { FuncType } - : ')' { emptyFuncType } - | '(' results1 { $2 } - -results1 :: { FuncType } - : 'result' list(valtype) ')' results { mergeFuncType (FuncType [] $2) $4 } - -paramsresultstypeuse :: { FuncType } - : paramsresultstypeuse '(' paramsresulttypeuse { mergeFuncType $1 $3 } - | paramsresulttypeuse { $1 } - -paramsresulttypeuse :: { FuncType } - : 'param' list(valtype) ')' { FuncType (map (ParamType Nothing) $2) [] } - | 'param' ident valtype ')' { FuncType [ParamType (Just $2) $3] [] } - | 'result' list(valtype) ')' { FuncType [] $2 } + : '(' 'func' typesign(never) ')' { fst $3 } memarg1 :: { MemArg } : opt(offset) opt(align) {% parseMemArg 1 $1 $2 } @@ -672,7 +644,10 @@ instruction :: { [Instruction] } raw_instr :: { [Instruction] } : plaininstr { [PlainInstr $1] } - | 'call_indirect' raw_call_indirect { $2 } + | 'call_indirect' typeuse_cont(folded_instr1) { + let (tu, instr) = $2 in + [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr + } | 'block' opt(ident) raw_block {% (: []) `fmap` $3 $2 } | 'loop' opt(ident) raw_loop {% (: []) `fmap` $3 $2 } | 'if' opt(ident) raw_if_result {% $3 $2 } @@ -753,12 +728,6 @@ raw_else :: { ([Instruction], Maybe Ident) } else Left "If labels have to match" } -raw_call_indirect :: { [Instruction] } - : typeuse_cont(folded_instr1) { - let (tu, instr) = $1 in - [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr - } - folded_instr :: { [Instruction] } : '(' folded_instr1 { $2 } @@ -766,7 +735,7 @@ folded_instr1 :: { [Instruction] } : plaininstr list(folded_instr) ')' { concat $2 ++ [PlainInstr $1] } | 'call_indirect' typeuse_cont(folded_instr1) list(instruction) ')' { let (tu, instr) = $2 in - [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr ++ concat $3 + fromMaybe [] instr ++ concat $3 ++ [PlainInstr $ CallIndirect tu] } | 'block' opt(ident) typeuse_cont(folded_instr1) list(instruction) ')' { let (typeUse, instr) = $3 in diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index 01e43f4..6b3073f 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -471,17 +471,14 @@ ctxFromModule locals labels returns m@Module {types, tables, mems, globals, impo isFunctionValid :: Function -> Validator isFunctionValid Function {funcType, localTypes = locals, body} mod@Module {types} = if fromIntegral funcType < length types - then - let FuncType params results = types !! fromIntegral funcType in - if length results > 1 - then Left InvalidResultArity - else do - let r = safeHead results - let ctx = ctxFromModule (params ++ locals) [r] r mod - arr <- runChecker ctx $ getExpressionType body - if isArrowMatch arr (empty ==> results) - then return () - else Left $ TypeMismatch arr (empty ==> results) + then do + let FuncType params results = types !! fromIntegral funcType + let r = safeHead results + let ctx = ctxFromModule (params ++ locals) [r] r mod + arr <- runChecker ctx $ getExpressionType body + if isArrowMatch arr (empty ==> results) + then return () + else Left $ TypeMismatch arr (empty ==> results) else Left TypeIndexOutOfRange functionsShouldBeValid :: Validator @@ -633,12 +630,6 @@ importsShouldBeValid Module { imports, types } = isImportValid (Import _ _ (ImportMemory _)) = return () -- checked in mems section isImportValid (Import _ _ (ImportGlobal _)) = return () -typesShouldBeValid :: Validator -typesShouldBeValid Module { types } = foldMap isTypeValid types - where - isTypeValid :: FuncType -> ValidationResult - isTypeValid FuncType { results } = if length results <= 1 then return () else Left InvalidResultArity - newtype ValidModule = ValidModule { getModule :: Module } deriving (Show, Eq) validate :: Module -> Either ValidationError ValidModule @@ -646,7 +637,6 @@ validate mod = const (ValidModule mod) <$> foldMap ($ mod) validators where validators :: [Validator] validators = [ - typesShouldBeValid, functionsShouldBeValid, tablesShouldBeValid, memoryShouldBeValid, From a6692fdef9ea6bc35cc90b91ed3398b829ebfd66 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Fri, 19 Mar 2021 22:25:47 -0700 Subject: [PATCH 21/28] get rid of some shift/reduce conflicts in grammar --- src/Language/Wasm/Parser.y | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 104bb4e..781dba4 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -584,10 +584,7 @@ typeuse1_cont(next) (FuncType [] [], next) -> (IndexedTypeUse $2 Nothing, next) (ft, next) -> (IndexedTypeUse $2 (Just ft), next) } - | typesign1(next) { - let (ft, next) = $1 in - (AnonimousTypeUse ft, next) - } + | typesign1(next) { (AnonimousTypeUse $ fst $1, snd $1) } typesign(next) : '(' typesign1(next) { $2 } @@ -648,20 +645,16 @@ raw_instr :: { [Instruction] } let (tu, instr) = $2 in [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr } - | 'block' opt(ident) raw_block {% (: []) `fmap` $3 $2 } + | 'block' opt(ident) typeuse_cont(folded_instr1_list) 'end' opt(ident) {% + if $2 == $5 || isNothing $5 + then + let (tu, instr) = $3 in + Right $ [BlockInstr $2 tu (fromMaybe [] instr)] + else Left "Block labels have to match" + } | 'loop' opt(ident) raw_loop {% (: []) `fmap` $3 $2 } | 'if' opt(ident) raw_if_result {% $3 $2 } -raw_block :: { Maybe Ident -> Either String Instruction } - : typeuse_cont(folded_instr1) list(instruction) 'end' opt(ident) { - \ident -> - if ident == $4 || isNothing $4 - then - let (tu, instr) = $1 in - Right $ BlockInstr ident tu (fromMaybe [] instr ++ concat $2) - else Left "Block labels have to match" - } - raw_loop :: { Maybe Ident -> Either String Instruction } : 'end' opt(ident) { \ident -> @@ -731,15 +724,19 @@ raw_else :: { ([Instruction], Maybe Ident) } folded_instr :: { [Instruction] } : '(' folded_instr1 { $2 } +folded_instr1_list :: { [Instruction] } + : folded_instr1_list instruction { $1 ++ $2 } + | folded_instr1 { $1 } + folded_instr1 :: { [Instruction] } : plaininstr list(folded_instr) ')' { concat $2 ++ [PlainInstr $1] } - | 'call_indirect' typeuse_cont(folded_instr1) list(instruction) ')' { + | 'call_indirect' typeuse_cont(folded_instr1_list) ')' { let (tu, instr) = $2 in - fromMaybe [] instr ++ concat $3 ++ [PlainInstr $ CallIndirect tu] + fromMaybe [] instr ++ [PlainInstr $ CallIndirect tu] } - | 'block' opt(ident) typeuse_cont(folded_instr1) list(instruction) ')' { + | 'block' opt(ident) typeuse_cont(folded_instr1_list) ')' { let (typeUse, instr) = $3 in - [BlockInstr $2 typeUse (fromMaybe [] instr ++ concat $4)] + [BlockInstr $2 typeUse (fromMaybe [] instr)] } | 'loop' opt(ident) folded_loop { [$3 $2] } | 'if' opt(ident) '(' folded_if_result { $4 $2 } From f3415a611f567c4f01bf18b4e22c0fa555d90b35 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Mon, 29 Mar 2021 21:56:25 -0700 Subject: [PATCH 22/28] refactor typeuse parser to accomodate raw instructions --- src/Language/Wasm/Parser.y | 116 ++++++++++++++++++++----------------- tests/Test.hs | 2 +- 2 files changed, 65 insertions(+), 53 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 781dba4..6587b75 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -574,54 +574,56 @@ plaininstr :: { PlainInstr } | 'f32.reinterpret_i32' { FReinterpretI BS32 } | 'f64.reinterpret_i64' { FReinterpretI BS64 } -typeuse_cont(next) - : '(' typeuse1_cont(next) { $2 } - | {- empty -} { (emptyTypeUse, Nothing) } +typeuse_cont(close, next) + : '(' typeuse1_cont(close, next) { $2 } + | next { (emptyTypeUse, Nothing, $1) } -typeuse1_cont(next) - : 'type' index ')' typesign(next) { +typeuse1_cont(close, next) + : 'type' index ')' typesign(close, next) { case $4 of - (FuncType [] [], next) -> (IndexedTypeUse $2 Nothing, next) - (ft, next) -> (IndexedTypeUse $2 (Just ft), next) + (FuncType [] [], close, next) -> (IndexedTypeUse $2 Nothing, close, next) + (ft, close, next) -> (IndexedTypeUse $2 (Just ft), close, next) } - | typesign1(next) { (AnonimousTypeUse $ fst $1, snd $1) } - -typesign(next) - : '(' typesign1(next) { $2 } - | {- empty -} { (emptyFuncType, Nothing) } - -typesign1(next) - : 'param' list(valtype) ')' typesign(next) { - let (ft, next) = $4 in - (mergeFuncType (FuncType (map (ParamType Nothing) $2) []) ft, next) + | typesign1(close, next) { + let (fnType, close, next) = $1 in + (AnonimousTypeUse fnType, close, next) } - | 'param' ident valtype ')' typesign(next) { - let (ft, next) = $5 in - (mergeFuncType (FuncType [ParamType (Just $2) $3] []) ft, next) - } - | typesign_result1(next) { $1 } -typesign_result(next) - : '(' typesign_result1(next) { $2 } - | {- empty -} { (emptyFuncType, Nothing) } +typesign(close, next) + : '(' typesign1(close, next) { $2 } + | next { (emptyFuncType, Nothing, $1) } -typesign_result1(next) - : 'result' list(valtype) ')' typesign_result(next) { - let (ft, next) = $4 in - (mergeFuncType (FuncType [] $2) ft, next) +typesign1(close, next) + : 'param' list(valtype) ')' typesign(close, next) { + let (ft, close, next) = $4 in + (mergeFuncType (FuncType (map (ParamType Nothing) $2) []) ft, close, next) } - | next { (emptyFuncType, Just $1) } + | 'param' ident valtype ')' typesign(close, next) { + let (ft, close, next) = $5 in + (mergeFuncType (FuncType [ParamType (Just $2) $3] []) ft, close, next) + } + | typesign_result1(close, next) { $1 } + +typesign_result(close, next) + : '(' typesign_result1(close, next) { $2 } + | next { (emptyFuncType, Nothing, $1) } + +typesign_result1(close, next) + : 'result' list(valtype) ')' typesign_result(close, next) { + let (ft, close, next) = $4 in + (mergeFuncType (FuncType [] $2) ft, close, next) + } + | close next { (emptyFuncType, Just $1, $2) } never : EOF { () } -typeuse :: { TypeUse } - : typeuse_cont(never) { fst $1 } +empty : {- empty -} { () } typedef :: { TypeDef } : 'type' opt(ident) functype ')' { TypeDef $2 $3 } functype :: { FuncType } - : '(' 'func' typesign(never) ')' { fst $3 } + : '(' 'func' typesign(never, ')') { let (ft, _, _) = $3 in ft } memarg1 :: { MemArg } : opt(offset) opt(align) {% parseMemArg 1 $1 $2 } @@ -639,17 +641,22 @@ instruction :: { [Instruction] } : raw_instr { $1 } | folded_instr { $1 } +folded_instr1_list : folded_instr1 list(folded_instr) { $1 ++ concat $2 } + +block_end + : raw_instr list(instruction) 'end' opt(ident) { ($1 ++ concat $2, $4) } + | 'end' opt(ident) { ([], $2) } + raw_instr :: { [Instruction] } : plaininstr { [PlainInstr $1] } - | 'call_indirect' typeuse_cont(folded_instr1) { - let (tu, instr) = $2 in + | 'call_indirect' typeuse_cont(folded_instr1, empty) { + let (tu, instr, _) = $2 in [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr } - | 'block' opt(ident) typeuse_cont(folded_instr1_list) 'end' opt(ident) {% - if $2 == $5 || isNothing $5 - then - let (tu, instr) = $3 in - Right $ [BlockInstr $2 tu (fromMaybe [] instr)] + | 'block' opt(ident) typeuse_cont(folded_instr1_list, block_end) {% + let (tu, instr, (rest, identAfter)) = $3 in + if $2 == identAfter || isNothing identAfter + then Right $ [BlockInstr $2 tu (fromMaybe [] instr ++ rest)] else Left "Block labels have to match" } | 'loop' opt(ident) raw_loop {% (: []) `fmap` $3 $2 } @@ -724,19 +731,19 @@ raw_else :: { ([Instruction], Maybe Ident) } folded_instr :: { [Instruction] } : '(' folded_instr1 { $2 } -folded_instr1_list :: { [Instruction] } - : folded_instr1_list instruction { $1 ++ $2 } - | folded_instr1 { $1 } +instr_list_closed + : raw_instr list(instruction) ')' { $1 ++ concat $2 } + | ')' { [] } folded_instr1 :: { [Instruction] } : plaininstr list(folded_instr) ')' { concat $2 ++ [PlainInstr $1] } - | 'call_indirect' typeuse_cont(folded_instr1_list) ')' { - let (tu, instr) = $2 in - fromMaybe [] instr ++ [PlainInstr $ CallIndirect tu] + | 'call_indirect' typeuse_cont(folded_instr1_list, instr_list_closed) { + let (tu, instr, rest) = $2 in + fromMaybe [] instr ++ rest ++ [PlainInstr $ CallIndirect tu] } - | 'block' opt(ident) typeuse_cont(folded_instr1_list) ')' { - let (typeUse, instr) = $3 in - [BlockInstr $2 typeUse (fromMaybe [] instr)] + | 'block' opt(ident) typeuse_cont(folded_instr1_list, instr_list_closed) { + let (typeUse, instr, rest) = $3 in + [BlockInstr $2 typeUse (fromMaybe [] instr ++ rest)] } | 'loop' opt(ident) folded_loop { [$3 $2] } | 'if' opt(ident) '(' folded_if_result { $4 $2 } @@ -774,7 +781,9 @@ folded_else :: { [Instruction] } | '(' 'else' list(instruction) ')' ')' { concat $3 } importdesc :: { ImportDesc } - : 'func' opt(ident) typeuse ')' { ImportFunc $2 $3 } + : 'func' opt(ident) typeuse_cont(never, ')') { + let (ft, _, _) = $3 in ImportFunc $2 ft + } | 'table' opt(ident) tabletype ')' { ImportTable $2 $3 } | 'memory' opt(ident) limits ')' { ImportMemory $2 $3 } | 'global' opt(ident) globaltype ')' { ImportGlobal $2 $3 } @@ -804,8 +813,9 @@ export_import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } | import_typeuse_locals_body1 { $1 } import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } - : 'import' name name ')' typeuse ')' { - \ident -> MFImport $ Import [] $2 $3 $ ImportFunc ident $5 + : 'import' name name ')' typeuse_cont(never, ')') { + let (ft, _, _) = $5 in + \ident -> MFImport $ Import [] $2 $3 $ ImportFunc ident ft } | typeuse_locals_body1 { MFFunc . $1 } @@ -1072,6 +1082,8 @@ opt(p) : p { Just $1 } | {- empty -} { Nothing } +pair(f, s) : f s { ($1, $2)} + { -- partial function by intention diff --git a/tests/Test.hs b/tests/Test.hs index 729fbee..f88b373 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - let files = ["block.wast"] + let files = ["block.wast", "stack.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 057b490864c10fdf7417834f3ee125d24bb914fc Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Thu, 1 Apr 2021 21:30:58 -0700 Subject: [PATCH 23/28] refactor function parser --- src/Language/Wasm/Parser.y | 115 +++++++++++++++---------------------- tests/Test.hs | 2 +- 2 files changed, 46 insertions(+), 71 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 6587b75..36f5fb8 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -576,44 +576,44 @@ plaininstr :: { PlainInstr } typeuse_cont(close, next) : '(' typeuse1_cont(close, next) { $2 } - | next { (emptyTypeUse, Nothing, $1) } + | next { (emptyTypeUse, Left $1) } typeuse1_cont(close, next) : 'type' index ')' typesign(close, next) { case $4 of - (FuncType [] [], close, next) -> (IndexedTypeUse $2 Nothing, close, next) - (ft, close, next) -> (IndexedTypeUse $2 (Just ft), close, next) + (FuncType [] [], rest) -> (IndexedTypeUse $2 Nothing, rest) + (ft, rest) -> (IndexedTypeUse $2 (Just ft), rest) } | typesign1(close, next) { - let (fnType, close, next) = $1 in - (AnonimousTypeUse fnType, close, next) + let (fnType, rest) = $1 in + (AnonimousTypeUse fnType, rest) } typesign(close, next) : '(' typesign1(close, next) { $2 } - | next { (emptyFuncType, Nothing, $1) } + | next { (emptyFuncType, Left $1) } typesign1(close, next) : 'param' list(valtype) ')' typesign(close, next) { - let (ft, close, next) = $4 in - (mergeFuncType (FuncType (map (ParamType Nothing) $2) []) ft, close, next) + let (ft, rest) = $4 in + (mergeFuncType (FuncType (map (ParamType Nothing) $2) []) ft, rest) } | 'param' ident valtype ')' typesign(close, next) { - let (ft, close, next) = $5 in - (mergeFuncType (FuncType [ParamType (Just $2) $3] []) ft, close, next) + let (ft, rest) = $5 in + (mergeFuncType (FuncType [ParamType (Just $2) $3] []) ft, rest) } | typesign_result1(close, next) { $1 } typesign_result(close, next) : '(' typesign_result1(close, next) { $2 } - | next { (emptyFuncType, Nothing, $1) } + | next { (emptyFuncType, Left $1) } typesign_result1(close, next) : 'result' list(valtype) ')' typesign_result(close, next) { - let (ft, close, next) = $4 in - (mergeFuncType (FuncType [] $2) ft, close, next) + let (ft, rest) = $4 in + (mergeFuncType (FuncType [] $2) ft, rest) } - | close next { (emptyFuncType, Just $1, $2) } + | close { (emptyFuncType, Right $1) } never : EOF { () } @@ -623,7 +623,7 @@ typedef :: { TypeDef } : 'type' opt(ident) functype ')' { TypeDef $2 $3 } functype :: { FuncType } - : '(' 'func' typesign(never, ')') { let (ft, _, _) = $3 in ft } + : '(' 'func' typesign(never, ')') { let (ft, _) = $3 in ft } memarg1 :: { MemArg } : opt(offset) opt(align) {% parseMemArg 1 $1 $2 } @@ -650,13 +650,14 @@ block_end raw_instr :: { [Instruction] } : plaininstr { [PlainInstr $1] } | 'call_indirect' typeuse_cont(folded_instr1, empty) { - let (tu, instr, _) = $2 in - [PlainInstr $ CallIndirect tu] ++ fromMaybe [] instr + let (tu, instr) = $2 in + [PlainInstr $ CallIndirect tu] ++ either (const []) id instr } - | 'block' opt(ident) typeuse_cont(folded_instr1_list, block_end) {% - let (tu, instr, (rest, identAfter)) = $3 in + | 'block' opt(ident) typeuse_cont(pair(folded_instr1_list, block_end), block_end) {% + let (tu, rest) = $3 in + let (instr, (instr', identAfter)) = either (\a -> ([], a)) id rest in if $2 == identAfter || isNothing identAfter - then Right $ [BlockInstr $2 tu (fromMaybe [] instr ++ rest)] + then Right $ [BlockInstr $2 tu (instr ++ instr')] else Left "Block labels have to match" } | 'loop' opt(ident) raw_loop {% (: []) `fmap` $3 $2 } @@ -737,13 +738,15 @@ instr_list_closed folded_instr1 :: { [Instruction] } : plaininstr list(folded_instr) ')' { concat $2 ++ [PlainInstr $1] } - | 'call_indirect' typeuse_cont(folded_instr1_list, instr_list_closed) { - let (tu, instr, rest) = $2 in - fromMaybe [] instr ++ rest ++ [PlainInstr $ CallIndirect tu] + | 'call_indirect' typeuse_cont(pair(folded_instr1_list, instr_list_closed), instr_list_closed) { + let (tu, rest) = $2 in + let (instr, instr') = either (\a -> ([], a)) id rest in + instr ++ instr' ++ [PlainInstr $ CallIndirect tu] } - | 'block' opt(ident) typeuse_cont(folded_instr1_list, instr_list_closed) { - let (typeUse, instr, rest) = $3 in - [BlockInstr $2 typeUse (fromMaybe [] instr ++ rest)] + | 'block' opt(ident) typeuse_cont(pair(folded_instr1_list, instr_list_closed), instr_list_closed) { + let (typeUse, rest) = $3 in + let (instr, instr') = either (\a -> ([], a)) id rest in + [BlockInstr $2 typeUse (instr ++ instr')] } | 'loop' opt(ident) folded_loop { [$3 $2] } | 'if' opt(ident) '(' folded_if_result { $4 $2 } @@ -782,7 +785,7 @@ folded_else :: { [Instruction] } importdesc :: { ImportDesc } : 'func' opt(ident) typeuse_cont(never, ')') { - let (ft, _, _) = $3 in ImportFunc $2 ft + let (ft, _) = $3 in ImportFunc $2 ft } | 'table' opt(ident) tabletype ')' { ImportTable $2 $3 } | 'memory' opt(ident) limits ')' { ImportMemory $2 $3 } @@ -814,56 +817,28 @@ export_import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } : 'import' name name ')' typeuse_cont(never, ')') { - let (ft, _, _) = $5 in + let (ft, _) = $5 in \ident -> MFImport $ Import [] $2 $3 $ ImportFunc ident ft } - | typeuse_locals_body1 { MFFunc . $1 } - -typeuse_locals_body1 :: { Maybe Ident -> Function } - : 'type' index ')' signature_locals_body { - \i -> - let (AnonimousTypeUse signature) = funcType $4 in - let typeSign = if signature == emptyFuncType then Nothing else Just signature in - $4 { funcType = IndexedTypeUse $2 typeSign, ident = i } - } - | signature_locals_body1 { \i -> $1 { ident = i } } - -signature_locals_body :: { Function } - : ')' { emptyFunction } - | '(' signature_locals_body1 { $2 } - -signature_locals_body1 :: { Function } - : 'param' list(valtype) ')' signature_locals_body { - prependFuncParams (map (ParamType Nothing) $2) $4 - } - | 'param' ident valtype ')' signature_locals_body { - prependFuncParams [ParamType (Just $2) $3] $5 - } - | result_locals_body1 { $1 } - -result_locals_body :: { Function } - : ')' { emptyFunction } - | '(' result_locals_body1 { $2 } - | raw_instr list(instruction) ')' { emptyFunction { body = $1 ++ concat $2 } } - -result_locals_body1 :: { Function } - : 'result' list(valtype) ')' result_locals_body { - prependFuncResults $2 $4 - } - | locals_body1 { - emptyFunction { locals = fst $1, body = snd $1 } + | typeuse1_cont(func_mid1, func_end) { + let (funcType, rest) = $1 in + let (locals, body) = either (\a -> ([], a)) id rest in + \ident -> MFFunc $ emptyFunction { locals, body, ident, funcType } } -locals_body :: { ([LocalType], [Instruction]) } - : ')' { ([], []) } - | raw_instr list(instruction) ')' { ([], $1 ++ concat $2)} - | '(' locals_body1 { $2 } +func_mid :: { ([LocalType], [Instruction]) } + : func_end { ([], $1) } + | '(' func_mid1 { $2 } -locals_body1 :: { ([LocalType], [Instruction]) } - : 'local' list(valtype) ')' locals_body { (map (LocalType Nothing) $2 ++ fst $4, snd $4) } - | 'local' ident valtype ')' locals_body { (LocalType (Just $2) $3 : fst $5, snd $5) } +func_mid1 :: { ([LocalType], [Instruction]) } + : 'local' list(valtype) ')' func_mid { (map (LocalType Nothing) $2 ++ fst $4, snd $4) } + | 'local' ident valtype ')' func_mid { (LocalType (Just $2) $3 : fst $5, snd $5) } | folded_instr1 list(instruction) ')' { ([], $1 ++ concat $2) } +func_end + : ')' { [] } + | raw_instr list(instruction) ')' { $1 ++ concat $2 } + -- FUNCTION END -- -- GLOBAL -- diff --git a/tests/Test.hs b/tests/Test.hs index f88b373..6d1023c 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - let files = ["block.wast", "stack.wast"] + let files = ["block.wast", "stack.wast", "func.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 47b6b546efd96b9808470146c091063636d61e1f Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Sun, 4 Apr 2021 13:56:40 -0700 Subject: [PATCH 24/28] type signature parsing for loop and if blocks --- src/Language/Wasm/Binary.hs | 18 ++-- src/Language/Wasm/Builder.hs | 102 +++++++++++------------ src/Language/Wasm/Interpreter.hs | 12 ++- src/Language/Wasm/Parser.y | 138 +++++++++++-------------------- src/Language/Wasm/Structure.hs | 4 +- src/Language/Wasm/Validate.hs | 29 ++++--- tests/Test.hs | 2 +- 7 files changed, 141 insertions(+), 164 deletions(-) diff --git a/src/Language/Wasm/Binary.hs b/src/Language/Wasm/Binary.hs index 019fa39..56f7527 100644 --- a/src/Language/Wasm/Binary.hs +++ b/src/Language/Wasm/Binary.hs @@ -331,17 +331,17 @@ instance Serialize (Instruction Natural) where putWord8 0x02 putBlockType blockType putExpression body - put (Loop result body) = do + put (Loop blockType body) = do putWord8 0x03 - putResultType result + putBlockType blockType putExpression body - put If {resultType, true, false = []} = do + put If {blockType, true, false = []} = do putWord8 0x04 - putResultType resultType + putBlockType blockType putExpression true - put If {resultType, true, false} = do + put If {blockType, true, false} = do putWord8 0x04 - putResultType resultType + putBlockType blockType mapM_ put true putWord8 0x05 -- ELSE putExpression false @@ -528,12 +528,12 @@ instance Serialize (Instruction Natural) where 0x00 -> return Unreachable 0x01 -> return Nop 0x02 -> Block <$> getBlockType <*> getExpression - 0x03 -> Loop <$> getResultType <*> getExpression + 0x03 -> Loop <$> getBlockType <*> getExpression 0x04 -> do - resultType <- getResultType + blockType <- getBlockType (true, hasElse) <- getTrueBranch false <- if hasElse then getExpression else return [] - return $ If resultType true false + return $ If blockType true false 0x0C -> Br <$> getULEB128 32 0x0D -> BrIf <$> getULEB128 32 0x0E -> BrTable <$> (map unIndex <$> getVec) <*> getULEB128 32 diff --git a/src/Language/Wasm/Builder.hs b/src/Language/Wasm/Builder.hs index b5a604c..caa158a 100644 --- a/src/Language/Wasm/Builder.hs +++ b/src/Language/Wasm/Builder.hs @@ -41,7 +41,7 @@ module Language.Wasm.Builder ( memorySize, growMemory, nop, Language.Wasm.Builder.drop, select, call, callIndirect, finish, br, brIf, brTable, - if', loop, {-block,-} when, for, while, + {-if', loop, block, when, for, while,-} trap, unreachable, appendExpr, after, Producer, OutType, produce, Consumer, (.=) @@ -681,7 +681,7 @@ finish val = do appendExpr [Return] newtype Label i = Label Natural deriving (Show, Eq) - +{- when :: (Producer pred, OutType pred ~ Proxy I32) => pred -> GenFun () @@ -704,28 +704,28 @@ while pred body = do body loopLabel <- label if' () pred (br loopLabel) (return ()) - if' () pred (loop () loopBody) (return ()) + if' () pred (loop () loopBody) (return ())-} label :: GenFun (Label t) label = Label <$> ask -if' :: (Producer pred, OutType pred ~ Proxy I32, Returnable res) - => res - -> pred - -> GenFun res - -> GenFun res - -> GenFun res -if' res pred true false = do - produce pred - deep <- (+1) <$> ask - appendExpr [If (asResultValue res) (genExpr deep $ true) (genExpr deep $ false)] - return returnableValue +-- if' :: (Producer pred, OutType pred ~ Proxy I32, Returnable res) +-- => res +-- -> pred +-- -> GenFun res +-- -> GenFun res +-- -> GenFun res +-- if' res pred true false = do +-- produce pred +-- deep <- (+1) <$> ask +-- appendExpr [If (asResultValue res) (genExpr deep $ true) (genExpr deep $ false)] +-- return returnableValue -loop :: (Returnable res) => res -> GenFun res -> GenFun res -loop res body = do - deep <- (+1) <$> ask - appendExpr [Loop (asResultValue res) (genExpr deep $ body)] - return returnableValue +-- loop :: (Returnable res) => res -> GenFun res -> GenFun res +-- loop res body = do +-- deep <- (+1) <$> ask +-- appendExpr [Loop (asResultValue res) (genExpr deep $ body)] +-- return returnableValue -- block :: (Returnable res) => res -> GenFun res -> GenFun res -- block res body = do @@ -988,39 +988,39 @@ asWord64 i | i >= 0 = fromIntegral i | otherwise = 0xFFFFFFFFFFFFFFFF - (fromIntegral (abs i)) + 1 -rts :: Module -rts = genMod $ do - gc <- importFunction "rts" "gc" () [I32] - memory 10 Nothing +-- rts :: Module +-- rts = genMod $ do +-- gc <- importFunction "rts" "gc" () [I32] +-- memory 10 Nothing - stackStart <- global Const i32 0 - stackEnd <- global Const i32 0 - stackBase <- global Mut i32 0 - stackTop <- global Mut i32 0 +-- stackStart <- global Const i32 0 +-- stackEnd <- global Const i32 0 +-- stackBase <- global Mut i32 0 +-- stackTop <- global Mut i32 0 - retReg <- global Mut i32 0 - tmpReg <- global Mut i32 0 +-- retReg <- global Mut i32 0 +-- tmpReg <- global Mut i32 0 - heapStart <- global Mut i32 0 - heapNext <- global Mut i32 0 - heapEnd <- global Mut i32 0 +-- heapStart <- global Mut i32 0 +-- heapNext <- global Mut i32 0 +-- heapEnd <- global Mut i32 0 - aligned <- fun i32 $ do - size <- param i32 - (size `add` i32c 3) `and` i32c 0xFFFFFFFC - alloc <- funRec i32 $ \self -> do - size <- param i32 - alignedSize <- local i32 - addr <- local i32 - alignedSize .= call aligned [arg size] - if' i32 ((heapNext `add` alignedSize) `lt_u` heapEnd) - (do - addr .= heapNext - heapNext .= heapNext `add` alignedSize - ret addr - ) - (do - call gc [] - call self [arg size] - ) - return () +-- aligned <- fun i32 $ do +-- size <- param i32 +-- (size `add` i32c 3) `and` i32c 0xFFFFFFFC +-- alloc <- funRec i32 $ \self -> do +-- size <- param i32 +-- alignedSize <- local i32 +-- addr <- local i32 +-- alignedSize .= call aligned [arg size] +-- if' i32 ((heapNext `add` alignedSize) `lt_u` heapEnd) +-- (do +-- addr .= heapNext +-- heapNext .= heapNext `add` alignedSize +-- ret addr +-- ) +-- (do +-- call gc [] +-- call self [arg size] +-- ) +-- return () diff --git a/src/Language/Wasm/Interpreter.hs b/src/Language/Wasm/Interpreter.hs index c237aab..acb36dc 100644 --- a/src/Language/Wasm/Interpreter.hs +++ b/src/Language/Wasm/Interpreter.hs @@ -646,14 +646,22 @@ eval budget store FunctionInstance { funcType, moduleInstance, code = Function { Break n r ctx' -> return $ Break (n - 1) r ctx' Done ctx'@EvalCtx{ labels = (_:rest) } -> return $ Done ctx' { labels = rest } command -> return command - step ctx loop@(Loop resType expr) = do + step ctx loop@(Loop blockType expr) = do + let resType = case blockType of + Inline Nothing -> [] + Inline (Just valType) -> [valType] + TypeIndex typeIdx -> results $ funcTypes moduleInstance ! fromIntegral typeIdx res <- go ctx { labels = Label resType : labels ctx } expr case res of Break 0 r EvalCtx{ locals = ls } -> step ctx { locals = ls, stack = r ++ stack ctx } loop Break n r ctx' -> return $ Break (n - 1) r ctx' Done ctx'@EvalCtx{ labels = (_:rest) } -> return $ Done ctx' { labels = rest } command -> return command - step ctx@EvalCtx{ stack = (VI32 v): rest } (If resType true false) = do + step ctx@EvalCtx{ stack = (VI32 v): rest } (If blockType true false) = do + let resType = case blockType of + Inline Nothing -> [] + Inline (Just valType) -> [valType] + TypeIndex typeIdx -> results $ funcTypes moduleInstance ! fromIntegral typeIdx let expr = if v /= 0 then true else false res <- go ctx { labels = Label resType : labels ctx, stack = rest } expr case res of diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 36f5fb8..03f84c1 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -660,68 +660,32 @@ raw_instr :: { [Instruction] } then Right $ [BlockInstr $2 tu (instr ++ instr')] else Left "Block labels have to match" } - | 'loop' opt(ident) raw_loop {% (: []) `fmap` $3 $2 } - | 'if' opt(ident) raw_if_result {% $3 $2 } - -raw_loop :: { Maybe Ident -> Either String Instruction } - : 'end' opt(ident) { - \ident -> - if ident == $2 || isNothing $2 - then Right $ LoopInstr ident [] [] - else Left "Loop labels have to match" + | 'loop' opt(ident) typeuse_cont(pair(folded_instr1_list, block_end), block_end) {% + let (tu, rest) = $3 in + let (instr, (instr', identAfter)) = either (\a -> ([], a)) id rest in + if $2 == identAfter || isNothing identAfter + then Right $ [LoopInstr $2 tu (instr ++ instr')] + else Left "Block labels have to match" } - | raw_instr list(instruction) 'end' opt(ident) { - \ident -> - if ident == $4 || isNothing $4 - then Right $ LoopInstr ident [] ($1 ++ concat $2) - else Left "Loop labels have to match" - } - | '(' raw_loop1 { $2 } - -raw_loop1 :: { Maybe Ident -> Either String Instruction } - : 'result' list(valtype) ')' list(instruction) 'end' opt(ident) { - \ident -> - if ident == $6 || isNothing $6 - then Right $ LoopInstr ident $2 (concat $4) - else Left "Loop labels have to match" - } - | folded_instr1 list(instruction) 'end' opt(ident) { - \ident -> - if ident == $4 || isNothing $4 - then Right $ LoopInstr ident [] ($1 ++ concat $2) - else Left "Loop labels have to match" + | 'if' opt(ident) typeuse_cont(pair(folded_instr1_list, raw_if_end), raw_if_end) {% + let (tu, rest) = $3 in + let (trueBranch, falseBranch, identAfter) = either id (\(t, (t', f, i)) -> (t ++ t', f, i)) rest in + if $2 == identAfter || isNothing identAfter + then Right $ [IfInstr $2 tu trueBranch falseBranch] + else Left "If labels have to match" } -raw_if_result :: { Maybe Ident -> Either String [Instruction] } - : raw_else { - \ident -> - if ident == (snd $1) || isNothing (snd $1) - then Right [IfInstr ident [] [] $ fst $1] - else Left "If labels have to match" +raw_if_end + : raw_if_else { + let (falseBranch, ident) = $1 in + ([], falseBranch, ident) } - | raw_instr list(instruction) raw_else { - \ident -> - if ident == (snd $3) || isNothing (snd $3) - then Right [IfInstr ident [] ($1 ++ concat $2) $ fst $3] - else Left "If labels have to match" - } - | '(' raw_if_result1 { $2 } - -raw_if_result1 :: { Maybe Ident -> Either String [Instruction] } - : 'result' list(valtype) ')' list(instruction) raw_else { - \ident -> - if ident == (snd $5) || isNothing (snd $5) - then Right [IfInstr ident $2 (concat $4) $ fst $5] - else Left "If labels have to match" - } - | folded_instr1 list(instruction) raw_else { - \ident -> - if ident == (snd $3) || isNothing (snd $3) - then Right [IfInstr ident [] ($1 ++ concat $2) $ fst $3] - else Left "If labels have to match" + | raw_instr list(instruction) raw_if_else { + let (falseBranch, ident) = $3 in + ($1 ++ concat $2, falseBranch, ident) } -raw_else :: { ([Instruction], Maybe Ident) } +raw_if_else :: { ([Instruction], Maybe Ident) } : 'end' opt(ident) { ([], $2) } | 'else' opt(ident) list(instruction) 'end' opt(ident) {% if matchIdents $2 $5 @@ -748,28 +712,14 @@ folded_instr1 :: { [Instruction] } let (instr, instr') = either (\a -> ([], a)) id rest in [BlockInstr $2 typeUse (instr ++ instr')] } - | 'loop' opt(ident) folded_loop { [$3 $2] } - | 'if' opt(ident) '(' folded_if_result { $4 $2 } - -folded_loop :: { Maybe Ident -> Instruction } - : ')' { \ident -> LoopInstr ident [] [] } - | '(' folded_loop1 { $2 } - | raw_instr list(instruction) ')' { \ident -> LoopInstr ident [] ($1 ++ concat $2) } - -folded_loop1 :: { Maybe Ident -> Instruction } - : 'result' list(valtype) ')' list(instruction) ')' { \ident -> LoopInstr ident $2 (concat $4) } - | folded_instr1 list(instruction) ')' { \ident -> LoopInstr ident [] ($1 ++ concat $2) } - -folded_if_result :: { Maybe Ident -> [Instruction] } - : 'result' list(valtype) ')' '(' folded_then_else { - \ident -> - let (pred, (trueBranch, falseBranch)) = $5 in - pred ++ [IfInstr ident $2 trueBranch falseBranch] + | 'loop' opt(ident) typeuse_cont(pair(folded_instr1_list, instr_list_closed), instr_list_closed) { + let (typeUse, rest) = $3 in + let (instr, instr') = either (\a -> ([], a)) id rest in + [LoopInstr $2 typeUse (instr ++ instr')] } - | folded_then_else { - \ident -> - let (pred, (trueBranch, falseBranch)) = $1 in - pred ++ [IfInstr ident [] trueBranch falseBranch] + | 'if' opt(ident) '(' typeuse1_cont(folded_then_else, never) { + let (typeUse, Right (pred, (trueBranch, falseBranch))) = $4 in + pred ++ [IfInstr $2 typeUse trueBranch falseBranch] } folded_then_else :: { ([Instruction], ([Instruction], [Instruction])) } @@ -1225,12 +1175,12 @@ data Instruction = } | LoopInstr { label :: Maybe Ident, - resultType :: [ValueType], + blockType :: TypeUse, body :: [Instruction] } | IfInstr { label :: Maybe Ident, - resultType :: [ValueType], + blockType :: TypeUse, trueBranch :: [Instruction], falseBranch :: [Instruction] } @@ -1503,10 +1453,10 @@ desugarize fields = do matchTypeUse defs typeUse extractTypeDefFromInstruction defs (BlockInstr { body, blockType }) = extractTypeDefFromInstructions (matchTypeUse defs blockType) body - extractTypeDefFromInstruction defs (LoopInstr { body }) = - extractTypeDefFromInstructions defs body - extractTypeDefFromInstruction defs (IfInstr { trueBranch, falseBranch }) = - extractTypeDefFromInstructions defs $ trueBranch ++ falseBranch + extractTypeDefFromInstruction defs (LoopInstr { body, blockType }) = + extractTypeDefFromInstructions (matchTypeUse defs blockType) body + extractTypeDefFromInstruction defs (IfInstr { blockType, trueBranch, falseBranch }) = + extractTypeDefFromInstructions (matchTypeUse defs blockType) $ trueBranch ++ falseBranch extractTypeDefFromInstruction defs _ = defs funcTypesEq :: FuncType -> FuncType -> Bool @@ -1659,14 +1609,26 @@ desugarize fields = do Just idx -> return $ S.TypeIndex idx Nothing -> Left "unknown type" S.Block bt <$> mapM (synInstrToStruct ctx') body - synInstrToStruct ctx LoopInstr {label, resultType, body} = - let ctx' = ctx { ctxLabels = label : ctxLabels ctx } in - S.Loop resultType <$> mapM (synInstrToStruct ctx') body - synInstrToStruct ctx IfInstr {label, resultType, trueBranch, falseBranch} = do + synInstrToStruct ctx@FunCtx { ctxMod = Module { types } } LoopInstr {label, blockType, body} = do let ctx' = ctx { ctxLabels = label : ctxLabels ctx } + bt <- case blockType of + AnonimousTypeUse (FuncType [] []) -> return $ S.Inline Nothing + AnonimousTypeUse (FuncType [] [vt]) -> return $ S.Inline (Just vt) + typed -> case getTypeIndex types typed of + Just idx -> return $ S.TypeIndex idx + Nothing -> Left "unknown type" + S.Loop bt <$> mapM (synInstrToStruct ctx') body + synInstrToStruct ctx@FunCtx { ctxMod = Module { types } } IfInstr {label, blockType, trueBranch, falseBranch} = do + let ctx' = ctx { ctxLabels = label : ctxLabels ctx } + bt <- case blockType of + AnonimousTypeUse (FuncType [] []) -> return $ S.Inline Nothing + AnonimousTypeUse (FuncType [] [vt]) -> return $ S.Inline (Just vt) + typed -> case getTypeIndex types typed of + Just idx -> return $ S.TypeIndex idx + Nothing -> Left "unknown type" trueBranch' <- mapM (synInstrToStruct ctx') trueBranch falseBranch' <- mapM (synInstrToStruct ctx') falseBranch - return $ S.If resultType trueBranch' falseBranch' + return $ S.If bt trueBranch' falseBranch' synFunctionToStruct :: Module -> Function -> Either String S.Function synFunctionToStruct mod Function { funcType, locals, body } = do diff --git a/src/Language/Wasm/Structure.hs b/src/Language/Wasm/Structure.hs index 72d5dab..a280a1b 100644 --- a/src/Language/Wasm/Structure.hs +++ b/src/Language/Wasm/Structure.hs @@ -126,8 +126,8 @@ data Instruction index = Unreachable | Nop | Block { blockType :: BlockType, body :: Expression } - | Loop { resultType :: ResultType, body :: Expression } - | If { resultType :: ResultType, true :: Expression, false :: Expression } + | Loop { blockType :: BlockType, body :: Expression } + | If { blockType :: BlockType, true :: Expression, false :: Expression } | Br index | BrIf index | BrTable [index] index diff --git a/src/Language/Wasm/Validate.hs b/src/Language/Wasm/Validate.hs index 6b3073f..3e8da6d 100644 --- a/src/Language/Wasm/Validate.hs +++ b/src/Language/Wasm/Validate.hs @@ -207,19 +207,26 @@ getInstrType Block { blockType, body } = do if isArrowMatch t bt then return bt else throwError $ TypeMismatch t bt -getInstrType Loop { resultType, body } = do - let blockType = empty ==> resultType - t <- withLabel [] $ getExpressionType body - if isArrowMatch t blockType - then return $ empty ==> resultType - else throwError $ TypeMismatch t blockType -getInstrType If { resultType, true, false } = do - let blockType = empty ==> resultType +getInstrType Loop { blockType, body } = do + bt <- getBlockType blockType + resultType <- getResultType blockType + t <- withLabel resultType $ getExpressionType body + if isArrowMatch t bt + then return bt + else throwError $ TypeMismatch t bt +getInstrType If { blockType, true, false } = do + bt <- getBlockType blockType + resultType <- getResultType blockType l <- withLabel resultType $ getExpressionType true r <- withLabel resultType $ getExpressionType false - if isArrowMatch l blockType - then (if isArrowMatch r blockType then (return $ I32 ==> resultType) else (throwError $ TypeMismatch r blockType)) - else throwError $ TypeMismatch l blockType + if isArrowMatch l bt + then ( + if isArrowMatch r bt + then let Arrow from to = bt in + (return $ (from ++ [Val I32]) ==> to) + else (throwError $ TypeMismatch r bt) + ) + else throwError $ TypeMismatch l bt getInstrType (Br lbl) = do r <- map Val . maybeToList <$> getLabel lbl return $ (Any : r) ==> Any diff --git a/tests/Test.hs b/tests/Test.hs index 6d1023c..96f7388 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - let files = ["block.wast", "stack.wast", "func.wast"] + let files = ["block.wast", "loop.wast", "if.wast", "stack.wast", "func.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 1202fc50f99cbd23bd6a8e457ab0aab3d515cc18 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Sun, 4 Apr 2021 15:30:57 -0700 Subject: [PATCH 25/28] instuction_list parser --- src/Language/Wasm/Parser.y | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 03f84c1..81e602b 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -641,6 +641,48 @@ instruction :: { [Instruction] } : raw_instr { $1 } | folded_instr { $1 } +instruction_list(terminator) + : terminator { ($1, []) } + | plaininstr mixed_instruction_list(terminator) { ([PlainInstr $1] ++) `fmap` $2 } + | 'call_indirect' typeuse_cont(folded_instr_list(terminator), instruction_list(terminator)) { + let (tu, rest) = $2 in + ([PlainInstr $ CallIndirect tu] ++) `fmap` (either id id rest) + } + | 'block' opt(ident) typeuse_cont(folded_instr_list('end'), instruction_list('end')) opt(ident) mixed_instruction_list(terminator) {% + let (tu, rest) = $3 in + let (_, instr) = either id id rest in + if $2 == $4 || isNothing $4 + then Right $ ([BlockInstr $2 tu instr] ++) `fmap` $5 + else Left "Block labels have to match" + } + | 'loop' opt(ident) typeuse_cont(folded_instr_list('end'), instruction_list('end')) opt(ident) mixed_instruction_list(terminator) {% + let (tu, rest) = $3 in + let (_, instr) = either id id rest in + if $2 == $4 || isNothing $4 + then Right $ ([LoopInstr $2 tu instr] ++) `fmap` $5 + else Left "Loop labels have to match" + } + | 'if' opt(ident) typeuse_cont(folded_instr_list(if_else), instruction_list(if_else)) mixed_instruction_list(terminator) {% + let (tu, rest) = $3 in + let ((falseBranch, identAfter), trueBranch) = either id id rest in + if $2 == identAfter || isNothing identAfter + then Right $ ([IfInstr $2 tu trueBranch falseBranch] ++) `fmap` $4 + else Left "If labels have to match" + } + +mixed_instruction_list(terminator) + : '(' folded_instr1 mixed_instruction_list(terminator) { ($2 ++) `fmap` $3 } + | instruction_list(terminator) { $1 } + +if_else :: { ([Instruction], Maybe Ident) } + : 'end' opt(ident) { ([], $2) } + | 'else' opt(ident) mixed_instruction_list('end') opt(ident) {% + if matchIdents $2 $4 + then Right (snd $3, if isNothing $2 then $4 else $2) + else Left "If labels have to match" + } +folded_instr_list(terminator) : folded_instr1 mixed_instruction_list(terminator) { ($1 ++) `fmap` $2 } + folded_instr1_list : folded_instr1 list(folded_instr) { $1 ++ concat $2 } block_end From 53b145399d34c10e790891aa442380547cf06ff2 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Sun, 4 Apr 2021 16:25:22 -0700 Subject: [PATCH 26/28] get rid of some rules --- src/Language/Wasm/Parser.y | 103 +++++++------------------------------ tests/Test.hs | 2 +- 2 files changed, 21 insertions(+), 84 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 81e602b..4b53a04 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -617,8 +617,6 @@ typesign_result1(close, next) never : EOF { () } -empty : {- empty -} { () } - typedef :: { TypeDef } : 'type' opt(ident) functype ')' { TypeDef $2 $3 } @@ -637,10 +635,6 @@ memarg4 :: { MemArg } memarg8 :: { MemArg } : opt(offset) opt(align) {% parseMemArg 8 $1 $2 } -instruction :: { [Instruction] } - : raw_instr { $1 } - | folded_instr { $1 } - instruction_list(terminator) : terminator { ($1, []) } | plaininstr mixed_instruction_list(terminator) { ([PlainInstr $1] ++) `fmap` $2 } @@ -681,83 +675,28 @@ if_else :: { ([Instruction], Maybe Ident) } then Right (snd $3, if isNothing $2 then $4 else $2) else Left "If labels have to match" } + folded_instr_list(terminator) : folded_instr1 mixed_instruction_list(terminator) { ($1 ++) `fmap` $2 } -folded_instr1_list : folded_instr1 list(folded_instr) { $1 ++ concat $2 } - -block_end - : raw_instr list(instruction) 'end' opt(ident) { ($1 ++ concat $2, $4) } - | 'end' opt(ident) { ([], $2) } - -raw_instr :: { [Instruction] } - : plaininstr { [PlainInstr $1] } - | 'call_indirect' typeuse_cont(folded_instr1, empty) { - let (tu, instr) = $2 in - [PlainInstr $ CallIndirect tu] ++ either (const []) id instr - } - | 'block' opt(ident) typeuse_cont(pair(folded_instr1_list, block_end), block_end) {% - let (tu, rest) = $3 in - let (instr, (instr', identAfter)) = either (\a -> ([], a)) id rest in - if $2 == identAfter || isNothing identAfter - then Right $ [BlockInstr $2 tu (instr ++ instr')] - else Left "Block labels have to match" - } - | 'loop' opt(ident) typeuse_cont(pair(folded_instr1_list, block_end), block_end) {% - let (tu, rest) = $3 in - let (instr, (instr', identAfter)) = either (\a -> ([], a)) id rest in - if $2 == identAfter || isNothing identAfter - then Right $ [LoopInstr $2 tu (instr ++ instr')] - else Left "Block labels have to match" - } - | 'if' opt(ident) typeuse_cont(pair(folded_instr1_list, raw_if_end), raw_if_end) {% - let (tu, rest) = $3 in - let (trueBranch, falseBranch, identAfter) = either id (\(t, (t', f, i)) -> (t ++ t', f, i)) rest in - if $2 == identAfter || isNothing identAfter - then Right $ [IfInstr $2 tu trueBranch falseBranch] - else Left "If labels have to match" - } - -raw_if_end - : raw_if_else { - let (falseBranch, ident) = $1 in - ([], falseBranch, ident) - } - | raw_instr list(instruction) raw_if_else { - let (falseBranch, ident) = $3 in - ($1 ++ concat $2, falseBranch, ident) - } - -raw_if_else :: { ([Instruction], Maybe Ident) } - : 'end' opt(ident) { ([], $2) } - | 'else' opt(ident) list(instruction) 'end' opt(ident) {% - if matchIdents $2 $5 - then Right (concat $3, if isNothing $2 then $5 else $2) - else Left "If labels have to match" - } - folded_instr :: { [Instruction] } : '(' folded_instr1 { $2 } -instr_list_closed - : raw_instr list(instruction) ')' { $1 ++ concat $2 } - | ')' { [] } - folded_instr1 :: { [Instruction] } - : plaininstr list(folded_instr) ')' { concat $2 ++ [PlainInstr $1] } - | 'call_indirect' typeuse_cont(pair(folded_instr1_list, instr_list_closed), instr_list_closed) { + : plaininstr mixed_instruction_list(')') { snd $2 ++ [PlainInstr $1] } + | 'call_indirect' typeuse_cont(folded_instr_list(')'), instruction_list(')')) { let (tu, rest) = $2 in - let (instr, instr') = either (\a -> ([], a)) id rest in - instr ++ instr' ++ [PlainInstr $ CallIndirect tu] + let instr = snd $ either id id rest in + instr ++ [PlainInstr $ CallIndirect tu] } - | 'block' opt(ident) typeuse_cont(pair(folded_instr1_list, instr_list_closed), instr_list_closed) { + | 'block' opt(ident) typeuse_cont(folded_instr_list(')'), instruction_list(')')) { let (typeUse, rest) = $3 in - let (instr, instr') = either (\a -> ([], a)) id rest in - [BlockInstr $2 typeUse (instr ++ instr')] + let instr = snd $ either id id rest in + [BlockInstr $2 typeUse instr] } - | 'loop' opt(ident) typeuse_cont(pair(folded_instr1_list, instr_list_closed), instr_list_closed) { + | 'loop' opt(ident) typeuse_cont(folded_instr_list(')'), instruction_list(')')) { let (typeUse, rest) = $3 in - let (instr, instr') = either (\a -> ([], a)) id rest in - [LoopInstr $2 typeUse (instr ++ instr')] + let instr = snd $ either id id rest in + [LoopInstr $2 typeUse instr] } | 'if' opt(ident) '(' typeuse1_cont(folded_then_else, never) { let (typeUse, Right (pred, (trueBranch, falseBranch))) = $4 in @@ -765,7 +704,7 @@ folded_instr1 :: { [Instruction] } } folded_then_else :: { ([Instruction], ([Instruction], [Instruction])) } - : 'then' list(instruction) ')' folded_else { ([], (concat $2, $4)) } + : 'then' mixed_instruction_list(')') folded_else { ([], (snd $2, $3)) } | folded_instr1 '(' folded_then_else { let (pred, branches) = $3 in ($1 ++ pred, branches) @@ -773,7 +712,7 @@ folded_then_else :: { ([Instruction], ([Instruction], [Instruction])) } folded_else :: { [Instruction] } : ')' { [] } - | '(' 'else' list(instruction) ')' ')' { concat $3 } + | '(' 'else' mixed_instruction_list(')') ')' { snd $3 } importdesc :: { ImportDesc } : 'func' opt(ident) typeuse_cont(never, ')') { @@ -792,8 +731,8 @@ function :: { ModuleField } export_import_typeuse_locals_body :: { Maybe Ident -> ModuleField } : ')' { \i -> MFFunc emptyFunction { ident = i } } - | raw_instr list(instruction) ')' { - \i -> MFFunc emptyFunction { ident = i, body = $1 ++ concat $2 } + | instruction_list(')') { + \i -> MFFunc emptyFunction { ident = i, body = snd $1 } } | '(' export_import_typeuse_locals_body1 { $2 } @@ -825,11 +764,11 @@ func_mid :: { ([LocalType], [Instruction]) } func_mid1 :: { ([LocalType], [Instruction]) } : 'local' list(valtype) ')' func_mid { (map (LocalType Nothing) $2 ++ fst $4, snd $4) } | 'local' ident valtype ')' func_mid { (LocalType (Just $2) $3 : fst $5, snd $5) } - | folded_instr1 list(instruction) ')' { ([], $1 ++ concat $2) } + | folded_instr_list(')') { ([], snd $1) } func_end : ')' { [] } - | raw_instr list(instruction) ')' { $1 ++ concat $2 } + | instruction_list(')') { snd $1 } -- FUNCTION END -- @@ -843,11 +782,11 @@ globaltype :: { GlobalType } | '(' 'mut' valtype ')' { Mut $3 } global_type_export_import :: { Maybe Ident -> ModuleField } - : valtype list(instruction) ')' { \ident -> MFGlobal $ Global [] ident (Const $1) $ concat $2 } + : valtype mixed_instruction_list(')') { \ident -> MFGlobal $ Global [] ident (Const $1) $ snd $2 } | '(' global_mut_export_import { $2 } global_mut_export_import :: { Maybe Ident -> ModuleField } - : 'mut' valtype ')' list(instruction) ')' { \ident -> MFGlobal $ Global [] ident (Mut $2) $ concat $4 } + : 'mut' valtype ')' mixed_instruction_list(')') { \ident -> MFGlobal $ Global [] ident (Mut $2) $ snd $4 } | 'export' name ')' global_type_export_import { \ident -> case $4 ident of @@ -952,7 +891,7 @@ start :: { StartFunction } -- but collection of testcases omits 'offset' in this position -- I am going to support both options for now, but maybe it has to be updated in future. offsetexpr :: { [Instruction] } - : 'offset' list(folded_instr) ')' { concat $2 } + : 'offset' mixed_instruction_list(')') { snd $2 } | folded_instr1 { $1 } elemsegment :: { ElemSegment } @@ -1049,8 +988,6 @@ opt(p) : p { Just $1 } | {- empty -} { Nothing } -pair(f, s) : f s { ($1, $2)} - { -- partial function by intention diff --git a/tests/Test.hs b/tests/Test.hs index 96f7388..d848b61 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - let files = ["block.wast", "loop.wast", "if.wast", "stack.wast", "func.wast"] + -- let files = ["block.wast", "loop.wast", "if.wast", "stack.wast", "func.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From 52b2a11887ea703204c06ebcada2e3053aaa8df6 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Sun, 4 Apr 2021 17:11:07 -0700 Subject: [PATCH 27/28] fix imports --- src/Language/Wasm/Parser.y | 6 +++--- src/Language/Wasm/Script.hs | 4 ++-- tests/Test.hs | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 4b53a04..194f950 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -621,7 +621,7 @@ typedef :: { TypeDef } : 'type' opt(ident) functype ')' { TypeDef $2 $3 } functype :: { FuncType } - : '(' 'func' typesign(never, ')') { let (ft, _) = $3 in ft } + : '(' 'func' typesign(')', ')') { let (ft, _) = $3 in ft } memarg1 :: { MemArg } : opt(offset) opt(align) {% parseMemArg 1 $1 $2 } @@ -715,7 +715,7 @@ folded_else :: { [Instruction] } | '(' 'else' mixed_instruction_list(')') ')' { snd $3 } importdesc :: { ImportDesc } - : 'func' opt(ident) typeuse_cont(never, ')') { + : 'func' opt(ident) typeuse_cont(')', ')') { let (ft, _) = $3 in ImportFunc $2 ft } | 'table' opt(ident) tabletype ')' { ImportTable $2 $3 } @@ -747,7 +747,7 @@ export_import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } | import_typeuse_locals_body1 { $1 } import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } - : 'import' name name ')' typeuse_cont(never, ')') { + : 'import' name name ')' typeuse_cont(')', ')') { let (ft, _) = $5 in \ident -> MFImport $ Import [] $2 $3 $ ImportFunc ident ft } diff --git a/src/Language/Wasm/Script.hs b/src/Language/Wasm/Script.hs index 6c12fa6..2dfa395 100644 --- a/src/Language/Wasm/Script.hs +++ b/src/Language/Wasm/Script.hs @@ -72,8 +72,8 @@ runScript onAssertFail script = do hostGlobals = do let globI32 = Interpreter.makeConstGlobal $ Interpreter.VI32 666 let globI64 = Interpreter.makeConstGlobal $ Interpreter.VI64 666 - globF32 <- Interpreter.makeMutGlobal $ Interpreter.VF32 666 - globF64 <- Interpreter.makeMutGlobal $ Interpreter.VF64 666 + let globF32 = Interpreter.makeConstGlobal $ Interpreter.VF32 666 + let globF64 = Interpreter.makeConstGlobal $ Interpreter.VF64 666 return ( Interpreter.HostGlobal globI32, Interpreter.HostGlobal globI64, diff --git a/tests/Test.hs b/tests/Test.hs index d848b61..27e0392 100644 --- a/tests/Test.hs +++ b/tests/Test.hs @@ -17,7 +17,7 @@ import qualified Data.List as List main :: IO () main = do files <- filter (List.isSuffixOf ".wast") <$> Directory.listDirectory "tests/spec" - -- let files = ["block.wast", "loop.wast", "if.wast", "stack.wast", "func.wast"] + -- let files = ["imports.wast", "block.wast", "loop.wast", "if.wast", "stack.wast", "func.wast"] scriptTestCases <- (`mapM` files) $ \file -> do test <- LBS.readFile ("tests/spec/" ++ file) return $ testCase file $ do From bbd09ecf4f5006fbc9535f31338683eafeab5e46 Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Sun, 4 Apr 2021 17:19:25 -0700 Subject: [PATCH 28/28] remove redundant clauses --- src/Language/Wasm/Parser.y | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Language/Wasm/Parser.y b/src/Language/Wasm/Parser.y index 194f950..289bbe4 100644 --- a/src/Language/Wasm/Parser.y +++ b/src/Language/Wasm/Parser.y @@ -730,8 +730,7 @@ function :: { ModuleField } : 'func' opt(ident) export_import_typeuse_locals_body { $3 $2 } export_import_typeuse_locals_body :: { Maybe Ident -> ModuleField } - : ')' { \i -> MFFunc emptyFunction { ident = i } } - | instruction_list(')') { + : instruction_list(')') { \i -> MFFunc emptyFunction { ident = i, body = snd $1 } } | '(' export_import_typeuse_locals_body1 { $2 } @@ -751,14 +750,14 @@ import_typeuse_locals_body1 :: { Maybe Ident -> ModuleField } let (ft, _) = $5 in \ident -> MFImport $ Import [] $2 $3 $ ImportFunc ident ft } - | typeuse1_cont(func_mid1, func_end) { + | typeuse1_cont(func_mid1, instruction_list(')')) { let (funcType, rest) = $1 in - let (locals, body) = either (\a -> ([], a)) id rest in + let (locals, body) = either (\a -> ([], snd a)) id rest in \ident -> MFFunc $ emptyFunction { locals, body, ident, funcType } } func_mid :: { ([LocalType], [Instruction]) } - : func_end { ([], $1) } + : instruction_list(')') { ([], snd $1) } | '(' func_mid1 { $2 } func_mid1 :: { ([LocalType], [Instruction]) } @@ -766,10 +765,6 @@ func_mid1 :: { ([LocalType], [Instruction]) } | 'local' ident valtype ')' func_mid { (LocalType (Just $2) $3 : fst $5, snd $5) } | folded_instr_list(')') { ([], snd $1) } -func_end - : ')' { [] } - | instruction_list(')') { snd $1 } - -- FUNCTION END -- -- GLOBAL --