From d5dc06bf49b7a783036885cf86345530437fd7a7 Mon Sep 17 00:00:00 2001 From: Ryan Kelly Date: Sat, 28 Jan 2017 21:04:34 +1100 Subject: [PATCH 1/2] Fix tests to reflect new NaN semantics --- interpreter/README.md | 3 +- interpreter/host/js.ml | 57 ++- interpreter/host/run.ml | 19 +- interpreter/text/arrange.ml | 6 +- interpreter/text/lexer.mll | 3 +- interpreter/text/parser.mly | 5 +- interpreter/text/script.ml | 3 +- test/core/f32.wast | 942 ++++++++++++++++++----------------- test/core/f64.wast | 958 +++++++++++++++++++----------------- test/core/float_exprs.wast | 178 +++---- test/core/float_misc.wast | 6 +- 11 files changed, 1177 insertions(+), 1003 deletions(-) diff --git a/interpreter/README.md b/interpreter/README.md index 8e46856f4a..c2f722ab8e 100644 --- a/interpreter/README.md +++ b/interpreter/README.md @@ -315,7 +315,8 @@ action: assertion: ( assert_return * ) ;; assert action has expected results - ( assert_return_nan ) ;; assert action results in NaN + ( assert_return_canonical_nan ) ;; assert action results in NaN in a canonical form + ( assert_return_arithmetic_nan ) ;; assert action results in NaN with 1 in MSB of fraction field ( assert_trap ) ;; assert action traps with given failure string ( assert_malformed ) ;; assert module cannot be decoded with given failure string ( assert_invalid ) ;; assert module is invalid with given failure string diff --git a/interpreter/host/js.ml b/interpreter/host/js.ml index d5338e9309..6a36b6a02a 100644 --- a/interpreter/host/js.ml +++ b/interpreter/host/js.ml @@ -116,7 +116,18 @@ let harness = " };\n" ^ "}\n" ^ "\n" ^ - "function assert_return_nan(action) {\n" ^ + "function assert_return_canonical_nan(action) {\n" ^ + " let actual = action();\n" ^ + " // Note that JS can't reliably distinguish different NaN values,\n" ^ + " // so there's no good way to test that it's a canonical NaN.\n" ^ + " if (!Number.isNaN(actual)) {\n" ^ + " throw new Error(\"Wasm return value NaN expected, got \" + actual);\n" ^ + " };\n" ^ + "}\n" ^ + "\n" ^ + "function assert_return_arithmetic_nan(action) {\n" ^ + " // Note that JS can't reliably distinguish different NaN values,\n" ^ + " // so there's no good way to test for specific bitpatterns here.\n" ^ " let actual = action();\n" ^ " if (!Number.isNaN(actual)) {\n" ^ " throw new Error(\"Wasm return value NaN expected, got \" + actual);\n" ^ @@ -168,12 +179,24 @@ let eq_of = function | F32Type -> Values.F32 F32Op.Eq | F64Type -> Values.F64 F64Op.Eq +let and_of = function + | I32Type | F32Type -> Values.I32 I32Op.And + | I64Type | F64Type -> Values.I64 I64Op.And + let reinterpret_of = function | I32Type -> I32Type, Nop | I64Type -> I64Type, Nop | F32Type -> I32Type, Convert (Values.I32 I32Op.ReinterpretFloat) | F64Type -> I64Type, Convert (Values.I64 I64Op.ReinterpretFloat) +let canonical_nan_of = function + | I32Type | F32Type -> Values.I32 (F32.to_bits F32.pos_nan) + | I64Type | F64Type -> Values.I64 (F64.to_bits F64.pos_nan) + +let abs_mask_of = function + | I32Type | F32Type -> Values.I32 Int32.max_int + | I64Type | F64Type -> Values.I64 Int64.max_int + let invoke t lits at = [t], FuncImport (1l @@ at) @@ at, List.map (fun lit -> Const lit @@ at) lits @ [Call (0l @@ at) @@ at] @@ -195,15 +218,25 @@ let assert_return lits ts at = BrIf (0l @@ at) @@ at ] in [], List.flatten (List.rev_map test lits) -let assert_return_nan ts at = - let var i = Int32.of_int i @@ at in - let init i t = [SetLocal (var i) @@ at] in - let test i t = - [ GetLocal (var i) @@ at; - GetLocal (var i) @@ at; - Compare (eq_of t) @@ at; +let assert_return_nan_bitpattern nan_bitmask_of ts at = + let test t = + let t', reinterpret = reinterpret_of t in + [ reinterpret @@ at; + Const (nan_bitmask_of t' @@ at) @@ at; + Binary (and_of t') @@ at; + Const (canonical_nan_of t' @@ at) @@ at; + Compare (eq_of t') @@ at; + Test (Values.I32 I32Op.Eqz) @@ at; BrIf (0l @@ at) @@ at ] - in ts, List.flatten (List.mapi init ts @ List.mapi test ts) + in [], List.flatten (List.rev_map test ts) + +let assert_return_canonical_nan = + (* The result may only differ from the canonical NaN in its sign bit *) + assert_return_nan_bitpattern abs_mask_of + +let assert_return_arithmetic_nan = + (* The result can be any NaN that's one everywhere the canonical NaN is one *) + assert_return_nan_bitpattern canonical_nan_of let wrap module_name item_name wrap_action wrap_assertion at = let itypes, ikind, action = wrap_action at in @@ -327,8 +360,10 @@ let of_assertion mods ass = | AssertReturn (act, lits) -> of_assertion' mods act "assert_return" (List.map of_literal lits) (Some (assert_return lits)) - | AssertReturnNaN act -> - of_assertion' mods act "assert_return_nan" [] (Some assert_return_nan) + | AssertReturnCanonicalNaN act -> + of_assertion' mods act "assert_return_canonical_nan" [] (Some assert_return_canonical_nan) + | AssertReturnArithmeticNaN act -> + of_assertion' mods act "assert_return_arithmetic_nan" [] (Some assert_return_arithmetic_nan) | AssertTrap (act, _) -> of_assertion' mods act "assert_trap" [] None | AssertExhaustion (act, _) -> diff --git a/interpreter/host/run.ml b/interpreter/host/run.ml index fe48751f1b..3e041c9a5d 100644 --- a/interpreter/host/run.ml +++ b/interpreter/host/run.ml @@ -356,15 +356,28 @@ let run_assertion ass = let expect_vs = List.map (fun v -> v.it) vs in assert_result ass.at (got_vs = expect_vs) got_vs print_result expect_vs - | AssertReturnNaN act -> + | AssertReturnCanonicalNaN act -> trace ("Asserting return..."); let got_vs = run_action act in - let is_nan = + let is_canonical_nan = match got_vs with | [Values.F32 got_f32] -> got_f32 = F32.pos_nan || got_f32 = F32.neg_nan | [Values.F64 got_f64] -> got_f64 = F64.pos_nan || got_f64 = F64.neg_nan | _ -> false - in assert_result ass.at is_nan got_vs print_endline "nan" + in assert_result ass.at is_canonical_nan got_vs print_endline "nan" + + | AssertReturnArithmeticNaN act -> + trace ("Asserting return..."); + let got_vs = run_action act in + let is_arithmetic_nan = + (* Accept any NaN that's one everywhere pos_nan is one *) + match got_vs with + | [Values.F32 got_f32] -> let pos_nan = F32.to_bits F32.pos_nan in + Int32.logand (F32.to_bits got_f32) pos_nan = pos_nan + | [Values.F64 got_f64] -> let pos_nan = F64.to_bits F64.pos_nan in + Int64.logand (F64.to_bits got_f64) pos_nan = pos_nan + | _ -> false + in assert_result ass.at is_arithmetic_nan got_vs print_endline "nan" | AssertTrap (act, re) -> trace ("Asserting trap..."); diff --git a/interpreter/text/arrange.ml b/interpreter/text/arrange.ml index f6cabf8fe4..7334804544 100644 --- a/interpreter/text/arrange.ml +++ b/interpreter/text/arrange.ml @@ -416,8 +416,10 @@ let assertion mode ass = Node ("assert_trap", [definition mode None def; Atom (string re)]) | AssertReturn (act, lits) -> Node ("assert_return", action act :: List.map literal lits) - | AssertReturnNaN act -> - Node ("assert_return_nan", [action act]) + | AssertReturnCanonicalNaN act -> + Node ("assert_return_canonical_nan", [action act]) + | AssertReturnArithmeticNaN act -> + Node ("assert_return_arithmetic_nan", [action act]) | AssertTrap (act, re) -> Node ("assert_trap", [action act; Atom (string re)]) | AssertExhaustion (act, re) -> diff --git a/interpreter/text/lexer.mll b/interpreter/text/lexer.mll index 9f1cd8b328..70f4a9c34e 100644 --- a/interpreter/text/lexer.mll +++ b/interpreter/text/lexer.mll @@ -308,7 +308,8 @@ rule token = parse | "assert_invalid" { ASSERT_INVALID } | "assert_unlinkable" { ASSERT_UNLINKABLE } | "assert_return" { ASSERT_RETURN } - | "assert_return_nan" { ASSERT_RETURN_NAN } + | "assert_return_canonical_nan" { ASSERT_RETURN_CANONICAL_NAN } + | "assert_return_arithmetic_nan" { ASSERT_RETURN_ARITHMETIC_NAN } | "assert_trap" { ASSERT_TRAP } | "assert_exhaustion" { ASSERT_EXHAUSTION } | "input" { INPUT } diff --git a/interpreter/text/parser.mly b/interpreter/text/parser.mly index 37e681939b..def0b811b8 100644 --- a/interpreter/text/parser.mly +++ b/interpreter/text/parser.mly @@ -157,7 +157,7 @@ let inline_type (c : context) ty at = %token MODULE TABLE ELEM MEMORY DATA OFFSET IMPORT EXPORT TABLE %token SCRIPT REGISTER INVOKE GET %token ASSERT_MALFORMED ASSERT_INVALID ASSERT_SOFT_INVALID ASSERT_UNLINKABLE -%token ASSERT_RETURN ASSERT_RETURN_NAN ASSERT_TRAP ASSERT_EXHAUSTION +%token ASSERT_RETURN ASSERT_RETURN_CANONICAL_NAN ASSERT_RETURN_ARITHMETIC_NAN ASSERT_TRAP ASSERT_EXHAUSTION %token INPUT OUTPUT %token EOF @@ -661,7 +661,8 @@ assertion : | LPAR ASSERT_TRAP module_ TEXT RPAR { AssertUninstantiable (snd $3, $4) @@ at () } | LPAR ASSERT_RETURN action const_list RPAR { AssertReturn ($3, $4) @@ at () } - | LPAR ASSERT_RETURN_NAN action RPAR { AssertReturnNaN $3 @@ at () } + | LPAR ASSERT_RETURN_CANONICAL_NAN action RPAR { AssertReturnCanonicalNaN $3 @@ at () } + | LPAR ASSERT_RETURN_ARITHMETIC_NAN action RPAR { AssertReturnArithmeticNaN $3 @@ at () } | LPAR ASSERT_TRAP action TEXT RPAR { AssertTrap ($3, $4) @@ at () } | LPAR ASSERT_EXHAUSTION action TEXT RPAR { AssertExhaustion ($3, $4) @@ at () } diff --git a/interpreter/text/script.ml b/interpreter/text/script.ml index d3048f3c67..faa87e76fd 100644 --- a/interpreter/text/script.ml +++ b/interpreter/text/script.ml @@ -17,7 +17,8 @@ and assertion' = | AssertUnlinkable of definition * string | AssertUninstantiable of definition * string | AssertReturn of action * Ast.literal list - | AssertReturnNaN of action + | AssertReturnCanonicalNaN of action + | AssertReturnArithmeticNaN of action | AssertTrap of action * string | AssertExhaustion of action * string diff --git a/test/core/f32.wast b/test/core/f32.wast index 9f58f9bd10..790cc0b3d5 100644 --- a/test/core/f32.wast +++ b/test/core/f32.wast @@ -50,10 +50,10 @@ (assert_return (invoke "add" (f32.const -0x0p+0) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x0p+0) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan))) (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)) @@ -86,10 +86,10 @@ (assert_return (invoke "add" (f32.const -0x1p-149) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x1p-149) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan))) (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)) @@ -122,10 +122,10 @@ (assert_return (invoke "add" (f32.const -0x1p-126) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x1p-126) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan))) (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)) @@ -158,10 +158,10 @@ (assert_return (invoke "add" (f32.const -0x1p-1) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x1p-1) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan))) (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)) @@ -194,10 +194,10 @@ (assert_return (invoke "add" (f32.const -0x1p+0) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x1p+0) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan))) (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)) @@ -230,10 +230,10 @@ (assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan))) (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)) @@ -266,10 +266,10 @@ (assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan))) (assert_return (invoke "add" (f32.const -infinity) (f32.const -0x0p+0)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const -infinity) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "add" (f32.const infinity) (f32.const -0x0p+0)) (f32.const infinity)) @@ -299,49 +299,49 @@ (assert_return (invoke "add" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const infinity)) (assert_return (invoke "add" (f32.const infinity) (f32.const 0x1.fffffep+127)) (f32.const infinity)) (assert_return (invoke "add" (f32.const -infinity) (f32.const -infinity)) (f32.const -infinity)) -(assert_return_nan (invoke "add" (f32.const -infinity) (f32.const infinity))) -(assert_return_nan (invoke "add" (f32.const infinity) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "add" (f32.const -infinity) (f32.const infinity))) +(assert_return_canonical_nan (invoke "add" (f32.const infinity) (f32.const -infinity))) (assert_return (invoke "add" (f32.const infinity) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "add" (f32.const -infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x0p+0)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x0p+0)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x1p-149)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x1p-149)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x1p-126)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x1p-126)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x1p-1)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x1p-1)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x1p+0)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x1p+0)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -infinity)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const infinity)) (f32.const -nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const -infinity)) (f32.const nan)) -(assert_return (invoke "add" (f32.const nan) (f32.const infinity)) (f32.const nan)) -(assert_return (invoke "add" (f32.const -nan) (f32.const -nan)) (f32.const -nan)) -(assert_return_nan (invoke "add" (f32.const -nan) (f32.const nan))) -(assert_return_nan (invoke "add" (f32.const nan) (f32.const -nan))) -(assert_return (invoke "add" (f32.const nan) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "add" (f32.const -infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const nan))) (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)) @@ -374,10 +374,10 @@ (assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan))) (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)) @@ -410,10 +410,10 @@ (assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan))) (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)) @@ -446,10 +446,10 @@ (assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan))) (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)) @@ -482,10 +482,10 @@ (assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan))) (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)) @@ -518,10 +518,10 @@ (assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan))) (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)) @@ -554,10 +554,10 @@ (assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan))) (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)) @@ -590,10 +590,10 @@ (assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const -infinity)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan))) (assert_return (invoke "sub" (f32.const -infinity) (f32.const -0x0p+0)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const infinity) (f32.const -0x0p+0)) (f32.const infinity)) @@ -622,50 +622,50 @@ (assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x1.fffffep+127)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const infinity)) (assert_return (invoke "sub" (f32.const infinity) (f32.const 0x1.fffffep+127)) (f32.const infinity)) -(assert_return_nan (invoke "sub" (f32.const -infinity) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "sub" (f32.const -infinity) (f32.const -infinity))) (assert_return (invoke "sub" (f32.const -infinity) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "sub" (f32.const infinity) (f32.const -infinity)) (f32.const infinity)) -(assert_return_nan (invoke "sub" (f32.const infinity) (f32.const infinity))) -(assert_return (invoke "sub" (f32.const -infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x0p+0)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x0p+0)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x1p-149)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x1p-149)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x1p-126)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x1p-126)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x1p-1)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x1p-1)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x1p+0)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x1p+0)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -infinity)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const infinity)) (f32.const -nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const -infinity)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const nan) (f32.const infinity)) (f32.const nan)) -(assert_return (invoke "sub" (f32.const -nan) (f32.const -nan)) (f32.const -nan)) -(assert_return_nan (invoke "sub" (f32.const -nan) (f32.const nan))) -(assert_return_nan (invoke "sub" (f32.const nan) (f32.const -nan))) -(assert_return (invoke "sub" (f32.const nan) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sub" (f32.const infinity) (f32.const infinity))) +(assert_return_canonical_nan (invoke "sub" (f32.const -infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const nan))) (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)) @@ -694,14 +694,14 @@ (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_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -infinity))) -(assert_return_nan (invoke "mul" (f32.const -0x0p+0) (f32.const infinity))) -(assert_return_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -infinity))) -(assert_return_nan (invoke "mul" (f32.const 0x0p+0) (f32.const infinity))) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan))) (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)) @@ -734,10 +734,10 @@ (assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan))) (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)) @@ -770,10 +770,10 @@ (assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan))) (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)) @@ -806,10 +806,10 @@ (assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan))) (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)) @@ -842,10 +842,10 @@ (assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan))) (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)) @@ -878,10 +878,10 @@ (assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan))) (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)) @@ -914,14 +914,14 @@ (assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const nan)) -(assert_return_nan (invoke "mul" (f32.const -infinity) (f32.const -0x0p+0))) -(assert_return_nan (invoke "mul" (f32.const -infinity) (f32.const 0x0p+0))) -(assert_return_nan (invoke "mul" (f32.const infinity) (f32.const -0x0p+0))) -(assert_return_nan (invoke "mul" (f32.const infinity) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -infinity) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -infinity) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const infinity) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const infinity) (f32.const 0x0p+0))) (assert_return (invoke "mul" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const infinity)) (assert_return (invoke "mul" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const infinity) (f32.const -0x1p-149)) (f32.const -infinity)) @@ -950,50 +950,50 @@ (assert_return (invoke "mul" (f32.const -infinity) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const infinity) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "mul" (f32.const infinity) (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "mul" (f32.const -infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x0p+0)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x0p+0)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x1p-149)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x1p-149)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x1p-126)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x1p-126)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x1p-1)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x1p-1)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x1p+0)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x1p+0)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -infinity)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const infinity)) (f32.const -nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const -infinity)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const nan) (f32.const infinity)) (f32.const nan)) -(assert_return (invoke "mul" (f32.const -nan) (f32.const -nan)) (f32.const -nan)) -(assert_return_nan (invoke "mul" (f32.const -nan) (f32.const nan))) -(assert_return_nan (invoke "mul" (f32.const nan) (f32.const -nan))) -(assert_return (invoke "mul" (f32.const nan) (f32.const nan)) (f32.const nan)) -(assert_return_nan (invoke "div" (f32.const -0x0p+0) (f32.const -0x0p+0))) -(assert_return_nan (invoke "div" (f32.const -0x0p+0) (f32.const 0x0p+0))) -(assert_return_nan (invoke "div" (f32.const 0x0p+0) (f32.const -0x0p+0))) -(assert_return_nan (invoke "div" (f32.const 0x0p+0) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const nan))) +(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)) @@ -1022,10 +1022,10 @@ (assert_return (invoke "div" (f32.const -0x0p+0) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x0p+0) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan))) (assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1058,10 +1058,10 @@ (assert_return (invoke "div" (f32.const -0x1p-149) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p-149) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan))) (assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1094,10 +1094,10 @@ (assert_return (invoke "div" (f32.const -0x1p-126) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p-126) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan))) (assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1130,10 +1130,10 @@ (assert_return (invoke "div" (f32.const -0x1p-1) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p-1) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan))) (assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1166,10 +1166,10 @@ (assert_return (invoke "div" (f32.const -0x1p+0) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1p+0) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan))) (assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1202,10 +1202,10 @@ (assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan))) (assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1238,10 +1238,10 @@ (assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const -0x0p+0)) (assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan))) (assert_return (invoke "div" (f32.const -infinity) (f32.const -0x0p+0)) (f32.const infinity)) (assert_return (invoke "div" (f32.const -infinity) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const infinity) (f32.const -0x0p+0)) (f32.const -infinity)) @@ -1270,50 +1270,50 @@ (assert_return (invoke "div" (f32.const -infinity) (f32.const 0x1.fffffep+127)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const -infinity)) (assert_return (invoke "div" (f32.const infinity) (f32.const 0x1.fffffep+127)) (f32.const infinity)) -(assert_return_nan (invoke "div" (f32.const -infinity) (f32.const -infinity))) -(assert_return_nan (invoke "div" (f32.const -infinity) (f32.const infinity))) -(assert_return_nan (invoke "div" (f32.const infinity) (f32.const -infinity))) -(assert_return_nan (invoke "div" (f32.const infinity) (f32.const infinity))) -(assert_return (invoke "div" (f32.const -infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const infinity) (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const infinity) (f32.const nan)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x0p+0)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x0p+0)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x1p-149)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x1p-149)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x1p-126)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x1p-126)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x1p-1)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x1p-1)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x1p+0)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x1p+0)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -infinity)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const infinity)) (f32.const -nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const -infinity)) (f32.const nan)) -(assert_return (invoke "div" (f32.const nan) (f32.const infinity)) (f32.const nan)) -(assert_return (invoke "div" (f32.const -nan) (f32.const -nan)) (f32.const -nan)) -(assert_return_nan (invoke "div" (f32.const -nan) (f32.const nan))) -(assert_return_nan (invoke "div" (f32.const nan) (f32.const -nan))) -(assert_return (invoke "div" (f32.const nan) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "div" (f32.const -infinity) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const -infinity) (f32.const infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const infinity) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const infinity) (f32.const infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const -infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const infinity) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const nan))) (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)) @@ -1346,10 +1346,12 @@ (assert_return (invoke "min" (f32.const -0x0p+0) (f32.const infinity)) (f32.const -0x0p+0)) (assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x0p+0) (f32.const infinity)) (f32.const 0x0p+0)) -(assert_return_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan))) +(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_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)) @@ -1382,10 +1384,12 @@ (assert_return (invoke "min" (f32.const -0x1p-149) (f32.const infinity)) (f32.const -0x1p-149)) (assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x1p-149) (f32.const infinity)) (f32.const 0x1p-149)) -(assert_return_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan))) +(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_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)) @@ -1418,10 +1422,12 @@ (assert_return (invoke "min" (f32.const -0x1p-126) (f32.const infinity)) (f32.const -0x1p-126)) (assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x1p-126) (f32.const infinity)) (f32.const 0x1p-126)) -(assert_return_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan))) +(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_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)) @@ -1454,10 +1460,12 @@ (assert_return (invoke "min" (f32.const -0x1p-1) (f32.const infinity)) (f32.const -0x1p-1)) (assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x1p-1) (f32.const infinity)) (f32.const 0x1p-1)) -(assert_return_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan))) +(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_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)) @@ -1490,10 +1498,12 @@ (assert_return (invoke "min" (f32.const -0x1p+0) (f32.const infinity)) (f32.const -0x1p+0)) (assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x1p+0) (f32.const infinity)) (f32.const 0x1p+0)) -(assert_return_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan))) +(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_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)) @@ -1526,10 +1536,12 @@ (assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const -0x1.921fb6p+2)) (assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const 0x1.921fb6p+2)) -(assert_return_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan))) +(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_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)) @@ -1562,10 +1574,12 @@ (assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const -0x1.fffffep+127)) (assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const 0x1.fffffep+127)) -(assert_return_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan))) +(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_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 -infinity) (f32.const -0x0p+0)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const -infinity) (f32.const 0x0p+0)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const infinity) (f32.const -0x0p+0)) (f32.const -0x0p+0)) @@ -1598,46 +1612,66 @@ (assert_return (invoke "min" (f32.const -infinity) (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const infinity) (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "min" (f32.const infinity) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "min" (f32.const -infinity) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -infinity) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const infinity) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const infinity) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -infinity))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const infinity))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -infinity))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const infinity))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const -nan) (f32.const nan))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const -nan))) -(assert_return_nan (invoke "min" (f32.const nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -infinity) (f32.const nan))) +(assert_return_arithmetic_nan (invoke "min" (f32.const -infinity) (f32.const nan:0x200000))) +(assert_return_canonical_nan (invoke "min" (f32.const infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "min" (f32.const infinity) (f32.const nan))) +(assert_return_arithmetic_nan (invoke "min" (f32.const infinity) (f32.const nan:0x200000))) +(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_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_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_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_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_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_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_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_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_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_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_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_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (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_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const infinity))) +(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -infinity))) +(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const infinity))) +(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -nan))) +(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:0x200000) (f32.const nan))) (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)) @@ -1670,10 +1704,12 @@ (assert_return (invoke "max" (f32.const -0x0p+0) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -infinity)) (f32.const 0x0p+0)) (assert_return (invoke "max" (f32.const 0x0p+0) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan))) +(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_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)) @@ -1706,10 +1742,12 @@ (assert_return (invoke "max" (f32.const -0x1p-149) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const 0x1p-149)) (assert_return (invoke "max" (f32.const 0x1p-149) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan))) +(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_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)) @@ -1742,10 +1780,12 @@ (assert_return (invoke "max" (f32.const -0x1p-126) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const 0x1p-126)) (assert_return (invoke "max" (f32.const 0x1p-126) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan))) +(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_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)) @@ -1778,10 +1818,12 @@ (assert_return (invoke "max" (f32.const -0x1p-1) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const 0x1p-1)) (assert_return (invoke "max" (f32.const 0x1p-1) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan))) +(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_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)) @@ -1814,10 +1856,12 @@ (assert_return (invoke "max" (f32.const -0x1p+0) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const 0x1p+0)) (assert_return (invoke "max" (f32.const 0x1p+0) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan))) +(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_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)) @@ -1850,10 +1894,12 @@ (assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const 0x1.921fb6p+2)) (assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan))) +(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_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)) @@ -1886,10 +1932,12 @@ (assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const 0x1.fffffep+127)) (assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan))) +(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_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 -infinity) (f32.const -0x0p+0)) (f32.const -0x0p+0)) (assert_return (invoke "max" (f32.const -infinity) (f32.const 0x0p+0)) (f32.const 0x0p+0)) (assert_return (invoke "max" (f32.const infinity) (f32.const -0x0p+0)) (f32.const infinity)) @@ -1922,46 +1970,50 @@ (assert_return (invoke "max" (f32.const -infinity) (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const infinity) (f32.const -infinity)) (f32.const infinity)) (assert_return (invoke "max" (f32.const infinity) (f32.const infinity)) (f32.const infinity)) -(assert_return_nan (invoke "max" (f32.const -infinity) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -infinity) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const infinity) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const infinity) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x0p+0))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x0p+0))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x0p+0))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x0p+0))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-149))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-149))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x1p-149))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x1p-149))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-126))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-126))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x1p-126))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x1p-126))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-1))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-1))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x1p-1))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x1p-1))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x1p+0))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x1p+0))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x1p+0))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x1p+0))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x1.921fb6p+2))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x1.921fb6p+2))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x1.921fb6p+2))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x1.921fb6p+2))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -0x1.fffffep+127))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const 0x1.fffffep+127))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -0x1.fffffep+127))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const 0x1.fffffep+127))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -infinity))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const infinity))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -infinity))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const infinity))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const -nan) (f32.const nan))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const -nan))) -(assert_return_nan (invoke "max" (f32.const nan) (f32.const nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -infinity) (f32.const nan))) +(assert_return_arithmetic_nan (invoke "max" (f32.const -infinity) (f32.const nan:0x200000))) +(assert_return_canonical_nan (invoke "max" (f32.const infinity) (f32.const -nan))) +(assert_return_canonical_nan (invoke "max" (f32.const infinity) (f32.const nan))) +(assert_return_arithmetic_nan (invoke "max" (f32.const infinity) (f32.const nan:0x200000))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x0p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x0p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-149))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-149))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-126))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-1))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-1))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p+0))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.921fb6p+2))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.fffffep+127))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -infinity))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const infinity))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const nan))) +(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const nan:0x200000))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -nan))) +(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const nan))) +(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const nan:0x200000))) (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)) @@ -2288,22 +2340,22 @@ (assert_return (invoke "copysign" (f32.const nan) (f32.const nan)) (f32.const nan)) (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_nan (invoke "sqrt" (f32.const -0x1p-149))) +(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_nan (invoke "sqrt" (f32.const -0x1p-126))) +(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p-126))) (assert_return (invoke "sqrt" (f32.const 0x1p-126)) (f32.const 0x1p-63)) -(assert_return_nan (invoke "sqrt" (f32.const -0x1p-1))) +(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_nan (invoke "sqrt" (f32.const -0x1p+0))) +(assert_return_canonical_nan (invoke "sqrt" (f32.const -0x1p+0))) (assert_return (invoke "sqrt" (f32.const 0x1p+0)) (f32.const 0x1p+0)) -(assert_return_nan (invoke "sqrt" (f32.const -0x1.921fb6p+2))) +(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_nan (invoke "sqrt" (f32.const -0x1.fffffep+127))) +(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_nan (invoke "sqrt" (f32.const -infinity))) +(assert_return_canonical_nan (invoke "sqrt" (f32.const -infinity))) (assert_return (invoke "sqrt" (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "sqrt" (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "sqrt" (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "sqrt" (f32.const -nan))) +(assert_return_canonical_nan (invoke "sqrt" (f32.const nan))) (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)) @@ -2320,8 +2372,8 @@ (assert_return (invoke "floor" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) (assert_return (invoke "floor" (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "floor" (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "floor" (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "floor" (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "floor" (f32.const -nan))) +(assert_return_canonical_nan (invoke "floor" (f32.const nan))) (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)) @@ -2338,8 +2390,8 @@ (assert_return (invoke "ceil" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) (assert_return (invoke "ceil" (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "ceil" (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "ceil" (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "ceil" (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "ceil" (f32.const -nan))) +(assert_return_canonical_nan (invoke "ceil" (f32.const nan))) (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)) @@ -2356,8 +2408,8 @@ (assert_return (invoke "trunc" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) (assert_return (invoke "trunc" (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "trunc" (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "trunc" (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "trunc" (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "trunc" (f32.const -nan))) +(assert_return_canonical_nan (invoke "trunc" (f32.const nan))) (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)) @@ -2374,8 +2426,8 @@ (assert_return (invoke "nearest" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127)) (assert_return (invoke "nearest" (f32.const -infinity)) (f32.const -infinity)) (assert_return (invoke "nearest" (f32.const infinity)) (f32.const infinity)) -(assert_return (invoke "nearest" (f32.const -nan)) (f32.const -nan)) -(assert_return (invoke "nearest" (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "nearest" (f32.const -nan))) +(assert_return_canonical_nan (invoke "nearest" (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)) diff --git a/test/core/f64.wast b/test/core/f64.wast index 26a058a253..911f00f6e8 100644 --- a/test/core/f64.wast +++ b/test/core/f64.wast @@ -50,10 +50,10 @@ (assert_return (invoke "add" (f64.const -0x0p+0) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x0p+0) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x0p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x0p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x0p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x0p+0) (f64.const nan))) (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)) @@ -86,10 +86,10 @@ (assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) (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)) @@ -122,10 +122,10 @@ (assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x1p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x1p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1022) (f64.const nan))) (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)) @@ -158,10 +158,10 @@ (assert_return (invoke "add" (f64.const -0x1p-1) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x1p-1) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x1p-1) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x1p-1) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1p-1) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1p-1) (f64.const nan))) (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)) @@ -194,10 +194,10 @@ (assert_return (invoke "add" (f64.const -0x1p+0) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x1p+0) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x1p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x1p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1p+0) (f64.const nan))) (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)) @@ -230,10 +230,10 @@ (assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) (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)) @@ -266,10 +266,10 @@ (assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) (assert_return (invoke "add" (f64.const -infinity) (f64.const -0x0p+0)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const -infinity) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "add" (f64.const infinity) (f64.const -0x0p+0)) (f64.const infinity)) @@ -299,49 +299,49 @@ (assert_return (invoke "add" (f64.const infinity) (f64.const -0x1.fffffffffffffp+1023)) (f64.const infinity)) (assert_return (invoke "add" (f64.const infinity) (f64.const 0x1.fffffffffffffp+1023)) (f64.const infinity)) (assert_return (invoke "add" (f64.const -infinity) (f64.const -infinity)) (f64.const -infinity)) -(assert_return_nan (invoke "add" (f64.const -infinity) (f64.const infinity))) -(assert_return_nan (invoke "add" (f64.const infinity) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "add" (f64.const -infinity) (f64.const infinity))) +(assert_return_canonical_nan (invoke "add" (f64.const infinity) (f64.const -infinity))) (assert_return (invoke "add" (f64.const infinity) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "add" (f64.const -infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x0p+0)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x0p+0)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x1p-1022)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x1p-1)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x1p-1)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x1p+0)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x1p+0)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -infinity)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const infinity)) (f64.const -nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const -infinity)) (f64.const nan)) -(assert_return (invoke "add" (f64.const nan) (f64.const infinity)) (f64.const nan)) -(assert_return (invoke "add" (f64.const -nan) (f64.const -nan)) (f64.const -nan)) -(assert_return_nan (invoke "add" (f64.const -nan) (f64.const nan))) -(assert_return_nan (invoke "add" (f64.const nan) (f64.const -nan))) -(assert_return (invoke "add" (f64.const nan) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "add" (f64.const -infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const -nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "add" (f64.const nan) (f64.const nan))) (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)) @@ -374,10 +374,10 @@ (assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x0p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x0p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x0p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x0p+0) (f64.const nan))) (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)) @@ -410,10 +410,10 @@ (assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) (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)) @@ -446,10 +446,10 @@ (assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x1p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x1p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1022) (f64.const nan))) (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)) @@ -482,10 +482,10 @@ (assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x1p-1) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x1p-1) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p-1) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p-1) (f64.const nan))) (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)) @@ -518,10 +518,10 @@ (assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x1p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x1p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1p+0) (f64.const nan))) (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)) @@ -554,10 +554,10 @@ (assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) (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)) @@ -590,10 +590,10 @@ (assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const -infinity)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) (assert_return (invoke "sub" (f64.const -infinity) (f64.const -0x0p+0)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const -infinity) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const infinity) (f64.const -0x0p+0)) (f64.const infinity)) @@ -622,50 +622,50 @@ (assert_return (invoke "sub" (f64.const -infinity) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const infinity) (f64.const -0x1.fffffffffffffp+1023)) (f64.const infinity)) (assert_return (invoke "sub" (f64.const infinity) (f64.const 0x1.fffffffffffffp+1023)) (f64.const infinity)) -(assert_return_nan (invoke "sub" (f64.const -infinity) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "sub" (f64.const -infinity) (f64.const -infinity))) (assert_return (invoke "sub" (f64.const -infinity) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "sub" (f64.const infinity) (f64.const -infinity)) (f64.const infinity)) -(assert_return_nan (invoke "sub" (f64.const infinity) (f64.const infinity))) -(assert_return (invoke "sub" (f64.const -infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x0p+0)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x0p+0)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x1p-1022)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x1p-1)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x1p-1)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x1p+0)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x1p+0)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -infinity)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const infinity)) (f64.const -nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const -infinity)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const nan) (f64.const infinity)) (f64.const nan)) -(assert_return (invoke "sub" (f64.const -nan) (f64.const -nan)) (f64.const -nan)) -(assert_return_nan (invoke "sub" (f64.const -nan) (f64.const nan))) -(assert_return_nan (invoke "sub" (f64.const nan) (f64.const -nan))) -(assert_return (invoke "sub" (f64.const nan) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sub" (f64.const infinity) (f64.const infinity))) +(assert_return_canonical_nan (invoke "sub" (f64.const -infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const -nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "sub" (f64.const nan) (f64.const nan))) (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)) @@ -694,14 +694,14 @@ (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_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -infinity))) -(assert_return_nan (invoke "mul" (f64.const -0x0p+0) (f64.const infinity))) -(assert_return_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -infinity))) -(assert_return_nan (invoke "mul" (f64.const 0x0p+0) (f64.const infinity))) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x0p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x0p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x0p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x0p+0) (f64.const nan))) (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)) @@ -734,10 +734,10 @@ (assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) (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)) @@ -770,10 +770,10 @@ (assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x1p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x1p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1022) (f64.const nan))) (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)) @@ -806,10 +806,10 @@ (assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x1p-1) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x1p-1) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p-1) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p-1) (f64.const nan))) (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)) @@ -842,10 +842,10 @@ (assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x1p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x1p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1p+0) (f64.const nan))) (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)) @@ -878,10 +878,10 @@ (assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) (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)) @@ -914,14 +914,14 @@ (assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) -(assert_return_nan (invoke "mul" (f64.const -infinity) (f64.const -0x0p+0))) -(assert_return_nan (invoke "mul" (f64.const -infinity) (f64.const 0x0p+0))) -(assert_return_nan (invoke "mul" (f64.const infinity) (f64.const -0x0p+0))) -(assert_return_nan (invoke "mul" (f64.const infinity) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -infinity) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -infinity) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const infinity) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const infinity) (f64.const 0x0p+0))) (assert_return (invoke "mul" (f64.const -infinity) (f64.const -0x0.0000000000001p-1022)) (f64.const infinity)) (assert_return (invoke "mul" (f64.const -infinity) (f64.const 0x0.0000000000001p-1022)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const infinity) (f64.const -0x0.0000000000001p-1022)) (f64.const -infinity)) @@ -950,50 +950,50 @@ (assert_return (invoke "mul" (f64.const -infinity) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const infinity) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "mul" (f64.const infinity) (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "mul" (f64.const -infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x0p+0)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x0p+0)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x1p-1022)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x1p-1)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x1p-1)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x1p+0)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x1p+0)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -infinity)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const infinity)) (f64.const -nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const -infinity)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const nan) (f64.const infinity)) (f64.const nan)) -(assert_return (invoke "mul" (f64.const -nan) (f64.const -nan)) (f64.const -nan)) -(assert_return_nan (invoke "mul" (f64.const -nan) (f64.const nan))) -(assert_return_nan (invoke "mul" (f64.const nan) (f64.const -nan))) -(assert_return (invoke "mul" (f64.const nan) (f64.const nan)) (f64.const nan)) -(assert_return_nan (invoke "div" (f64.const -0x0p+0) (f64.const -0x0p+0))) -(assert_return_nan (invoke "div" (f64.const -0x0p+0) (f64.const 0x0p+0))) -(assert_return_nan (invoke "div" (f64.const 0x0p+0) (f64.const -0x0p+0))) -(assert_return_nan (invoke "div" (f64.const 0x0p+0) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const -nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "mul" (f64.const nan) (f64.const nan))) +(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)) @@ -1022,10 +1022,10 @@ (assert_return (invoke "div" (f64.const -0x0p+0) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x0p+0) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x0p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x0p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x0p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x0p+0) (f64.const nan))) (assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1058,10 +1058,10 @@ (assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) (assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1094,10 +1094,10 @@ (assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x1p-1022) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x1p-1022) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1022) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1022) (f64.const nan))) (assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -0x1p-1) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1130,10 +1130,10 @@ (assert_return (invoke "div" (f64.const -0x1p-1) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1p-1) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x1p-1) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x1p-1) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1p-1) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1p-1) (f64.const nan))) (assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -0x1p+0) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1166,10 +1166,10 @@ (assert_return (invoke "div" (f64.const -0x1p+0) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1p+0) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x1p+0) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x1p+0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1p+0) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1p+0) (f64.const nan))) (assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1202,10 +1202,10 @@ (assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) (assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1238,10 +1238,10 @@ (assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -infinity)) (f64.const -0x0p+0)) (assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) (assert_return (invoke "div" (f64.const -infinity) (f64.const -0x0p+0)) (f64.const infinity)) (assert_return (invoke "div" (f64.const -infinity) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const infinity) (f64.const -0x0p+0)) (f64.const -infinity)) @@ -1270,50 +1270,50 @@ (assert_return (invoke "div" (f64.const -infinity) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const infinity) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -infinity)) (assert_return (invoke "div" (f64.const infinity) (f64.const 0x1.fffffffffffffp+1023)) (f64.const infinity)) -(assert_return_nan (invoke "div" (f64.const -infinity) (f64.const -infinity))) -(assert_return_nan (invoke "div" (f64.const -infinity) (f64.const infinity))) -(assert_return_nan (invoke "div" (f64.const infinity) (f64.const -infinity))) -(assert_return_nan (invoke "div" (f64.const infinity) (f64.const infinity))) -(assert_return (invoke "div" (f64.const -infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const infinity) (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const infinity) (f64.const nan)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x0p+0)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x0p+0)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x0p+0)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x0p+0)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x0.0000000000001p-1022)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x0.0000000000001p-1022)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x1p-1022)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x1p-1022)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x1p-1022)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x1p-1)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x1p-1)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x1p-1)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x1p-1)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x1p+0)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x1p+0)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x1p+0)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x1p+0)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x1.921fb54442d18p+2)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -infinity)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const infinity)) (f64.const -nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const -infinity)) (f64.const nan)) -(assert_return (invoke "div" (f64.const nan) (f64.const infinity)) (f64.const nan)) -(assert_return (invoke "div" (f64.const -nan) (f64.const -nan)) (f64.const -nan)) -(assert_return_nan (invoke "div" (f64.const -nan) (f64.const nan))) -(assert_return_nan (invoke "div" (f64.const nan) (f64.const -nan))) -(assert_return (invoke "div" (f64.const nan) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "div" (f64.const -infinity) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const -infinity) (f64.const infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const infinity) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const infinity) (f64.const infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const -infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const infinity) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const -nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "div" (f64.const nan) (f64.const nan))) (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)) @@ -1346,10 +1346,12 @@ (assert_return (invoke "min" (f64.const -0x0p+0) (f64.const infinity)) (f64.const -0x0p+0)) (assert_return (invoke "min" (f64.const 0x0p+0) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x0p+0) (f64.const infinity)) (f64.const 0x0p+0)) -(assert_return_nan (invoke "min" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x0p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x0p+0) (f64.const -nan))) +(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_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)) @@ -1382,10 +1384,12 @@ (assert_return (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const infinity)) (f64.const -0x0.0000000000001p-1022)) (assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const infinity)) (f64.const 0x0.0000000000001p-1022)) -(assert_return_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) +(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_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)) @@ -1418,10 +1422,12 @@ (assert_return (invoke "min" (f64.const -0x1p-1022) (f64.const infinity)) (f64.const -0x1p-1022)) (assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x1p-1022) (f64.const infinity)) (f64.const 0x1p-1022)) -(assert_return_nan (invoke "min" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x1p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1022) (f64.const -nan))) +(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_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)) @@ -1454,10 +1460,12 @@ (assert_return (invoke "min" (f64.const -0x1p-1) (f64.const infinity)) (f64.const -0x1p-1)) (assert_return (invoke "min" (f64.const 0x1p-1) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x1p-1) (f64.const infinity)) (f64.const 0x1p-1)) -(assert_return_nan (invoke "min" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x1p-1) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x1p-1) (f64.const -nan))) +(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_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)) @@ -1490,10 +1498,12 @@ (assert_return (invoke "min" (f64.const -0x1p+0) (f64.const infinity)) (f64.const -0x1p+0)) (assert_return (invoke "min" (f64.const 0x1p+0) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x1p+0) (f64.const infinity)) (f64.const 0x1p+0)) -(assert_return_nan (invoke "min" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x1p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x1p+0) (f64.const -nan))) +(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_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)) @@ -1526,10 +1536,12 @@ (assert_return (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const -0x1.921fb54442d18p+2)) (assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const 0x1.921fb54442d18p+2)) -(assert_return_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) +(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_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)) @@ -1562,10 +1574,12 @@ (assert_return (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const -0x1.fffffffffffffp+1023)) (assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const 0x1.fffffffffffffp+1023)) -(assert_return_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) +(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_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 -infinity) (f64.const -0x0p+0)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const -infinity) (f64.const 0x0p+0)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const infinity) (f64.const -0x0p+0)) (f64.const -0x0p+0)) @@ -1598,46 +1612,66 @@ (assert_return (invoke "min" (f64.const -infinity) (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const infinity) (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "min" (f64.const infinity) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "min" (f64.const -infinity) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -infinity) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const infinity) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const infinity) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -infinity))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const infinity))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -infinity))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const infinity))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const -nan) (f64.const nan))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const -nan))) -(assert_return_nan (invoke "min" (f64.const nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -infinity) (f64.const nan))) +(assert_return_arithmetic_nan (invoke "min" (f64.const -infinity) (f64.const nan:0x4000000000000))) +(assert_return_canonical_nan (invoke "min" (f64.const infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "min" (f64.const infinity) (f64.const nan))) +(assert_return_arithmetic_nan (invoke "min" (f64.const infinity) (f64.const nan:0x4000000000000))) +(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_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_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_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_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_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_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_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_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_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_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_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_canonical_nan (invoke "min" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (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_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const infinity))) +(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const -infinity))) +(assert_return_arithmetic_nan (invoke "min" (f64.const nan:0x4000000000000) (f64.const infinity))) +(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "min" (f64.const -nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "min" (f64.const nan) (f64.const -nan))) +(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:0x4000000000000) (f64.const nan))) (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)) @@ -1670,10 +1704,12 @@ (assert_return (invoke "max" (f64.const -0x0p+0) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x0p+0) (f64.const -infinity)) (f64.const 0x0p+0)) (assert_return (invoke "max" (f64.const 0x0p+0) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x0p+0) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x0p+0) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x0p+0) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x0p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x0p+0) (f64.const -nan))) +(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_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)) @@ -1706,10 +1742,12 @@ (assert_return (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -infinity)) (f64.const 0x0.0000000000001p-1022)) (assert_return (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x0.0000000000001p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x0.0000000000001p-1022) (f64.const -nan))) +(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_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)) @@ -1742,10 +1780,12 @@ (assert_return (invoke "max" (f64.const -0x1p-1022) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const -infinity)) (f64.const 0x1p-1022)) (assert_return (invoke "max" (f64.const 0x1p-1022) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x1p-1022) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x1p-1022) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x1p-1022) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x1p-1022) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1022) (f64.const -nan))) +(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_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)) @@ -1778,10 +1818,12 @@ (assert_return (invoke "max" (f64.const -0x1p-1) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x1p-1) (f64.const -infinity)) (f64.const 0x1p-1)) (assert_return (invoke "max" (f64.const 0x1p-1) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x1p-1) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x1p-1) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x1p-1) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x1p-1) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x1p-1) (f64.const -nan))) +(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_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)) @@ -1814,10 +1856,12 @@ (assert_return (invoke "max" (f64.const -0x1p+0) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x1p+0) (f64.const -infinity)) (f64.const 0x1p+0)) (assert_return (invoke "max" (f64.const 0x1p+0) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x1p+0) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x1p+0) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x1p+0) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x1p+0) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x1p+0) (f64.const -nan))) +(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_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)) @@ -1850,10 +1894,12 @@ (assert_return (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -infinity)) (f64.const 0x1.921fb54442d18p+2)) (assert_return (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x1.921fb54442d18p+2) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x1.921fb54442d18p+2) (f64.const -nan))) +(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_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)) @@ -1886,10 +1932,12 @@ (assert_return (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -infinity)) (f64.const 0x1.fffffffffffffp+1023)) (assert_return (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const 0x1.fffffffffffffp+1023) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -0x1.fffffffffffffp+1023) (f64.const -nan))) +(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_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 -infinity) (f64.const -0x0p+0)) (f64.const -0x0p+0)) (assert_return (invoke "max" (f64.const -infinity) (f64.const 0x0p+0)) (f64.const 0x0p+0)) (assert_return (invoke "max" (f64.const infinity) (f64.const -0x0p+0)) (f64.const infinity)) @@ -1922,46 +1970,66 @@ (assert_return (invoke "max" (f64.const -infinity) (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const infinity) (f64.const -infinity)) (f64.const infinity)) (assert_return (invoke "max" (f64.const infinity) (f64.const infinity)) (f64.const infinity)) -(assert_return_nan (invoke "max" (f64.const -infinity) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -infinity) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const infinity) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const infinity) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x0p+0))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x0p+0))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x0p+0))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x0p+0))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x0.0000000000001p-1022))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x0.0000000000001p-1022))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x1p-1022))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1022))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x1p-1022))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x1p-1022))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x1p-1))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x1p-1))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x1p-1))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x1p+0))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x1p+0))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x1p+0))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x1p+0))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x1.921fb54442d18p+2))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const 0x1.fffffffffffffp+1023))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -infinity))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const infinity))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -infinity))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const infinity))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const -nan) (f64.const nan))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const -nan))) -(assert_return_nan (invoke "max" (f64.const nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -infinity) (f64.const nan))) +(assert_return_arithmetic_nan (invoke "max" (f64.const -infinity) (f64.const nan:0x4000000000000))) +(assert_return_canonical_nan (invoke "max" (f64.const infinity) (f64.const -nan))) +(assert_return_canonical_nan (invoke "max" (f64.const infinity) (f64.const nan))) +(assert_return_arithmetic_nan (invoke "max" (f64.const infinity) (f64.const nan:0x4000000000000))) +(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -0x0p+0))) +(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x0p+0))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_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_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x0.0000000000001p-1022))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_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_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1022))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_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_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p-1))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_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_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1p+0))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_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_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_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_canonical_nan (invoke "max" (f64.const -nan) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (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_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const infinity))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -infinity))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const infinity))) +(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const -infinity))) +(assert_return_arithmetic_nan (invoke "max" (f64.const nan:0x4000000000000) (f64.const infinity))) +(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const -nan))) +(assert_return_canonical_nan (invoke "max" (f64.const -nan) (f64.const nan))) +(assert_return_canonical_nan (invoke "max" (f64.const nan) (f64.const -nan))) +(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:0x4000000000000) (f64.const nan))) (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)) @@ -2288,22 +2356,22 @@ (assert_return (invoke "copysign" (f64.const nan) (f64.const nan)) (f64.const nan)) (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_nan (invoke "sqrt" (f64.const -0x0.0000000000001p-1022))) +(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_nan (invoke "sqrt" (f64.const -0x1p-1022))) +(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p-1022))) (assert_return (invoke "sqrt" (f64.const 0x1p-1022)) (f64.const 0x1p-511)) -(assert_return_nan (invoke "sqrt" (f64.const -0x1p-1))) +(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_nan (invoke "sqrt" (f64.const -0x1p+0))) +(assert_return_canonical_nan (invoke "sqrt" (f64.const -0x1p+0))) (assert_return (invoke "sqrt" (f64.const 0x1p+0)) (f64.const 0x1p+0)) -(assert_return_nan (invoke "sqrt" (f64.const -0x1.921fb54442d18p+2))) +(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_nan (invoke "sqrt" (f64.const -0x1.fffffffffffffp+1023))) +(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_nan (invoke "sqrt" (f64.const -infinity))) +(assert_return_canonical_nan (invoke "sqrt" (f64.const -infinity))) (assert_return (invoke "sqrt" (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "sqrt" (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "sqrt" (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "sqrt" (f64.const -nan))) +(assert_return_canonical_nan (invoke "sqrt" (f64.const nan))) (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)) @@ -2320,8 +2388,8 @@ (assert_return (invoke "floor" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) (assert_return (invoke "floor" (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "floor" (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "floor" (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "floor" (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "floor" (f64.const -nan))) +(assert_return_canonical_nan (invoke "floor" (f64.const nan))) (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)) @@ -2338,8 +2406,8 @@ (assert_return (invoke "ceil" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) (assert_return (invoke "ceil" (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "ceil" (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "ceil" (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "ceil" (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "ceil" (f64.const -nan))) +(assert_return_canonical_nan (invoke "ceil" (f64.const nan))) (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)) @@ -2356,8 +2424,8 @@ (assert_return (invoke "trunc" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) (assert_return (invoke "trunc" (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "trunc" (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "trunc" (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "trunc" (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "trunc" (f64.const -nan))) +(assert_return_canonical_nan (invoke "trunc" (f64.const nan))) (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)) @@ -2374,8 +2442,8 @@ (assert_return (invoke "nearest" (f64.const 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) (assert_return (invoke "nearest" (f64.const -infinity)) (f64.const -infinity)) (assert_return (invoke "nearest" (f64.const infinity)) (f64.const infinity)) -(assert_return (invoke "nearest" (f64.const -nan)) (f64.const -nan)) -(assert_return (invoke "nearest" (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "nearest" (f64.const -nan))) +(assert_return_canonical_nan (invoke "nearest" (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)) diff --git a/test/core/float_exprs.wast b/test/core/float_exprs.wast index 92b482e246..98f559a671 100644 --- a/test/core/float_exprs.wast +++ b/test/core/float_exprs.wast @@ -46,8 +46,8 @@ (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 (invoke "f32.no_fold_add_zero" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_add_zero" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -60,8 +60,8 @@ (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 (invoke "f32.no_fold_zero_sub" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_zero_sub" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -72,8 +72,8 @@ (f64.sub (get_local $x) (f64.const 0.0))) ) -(assert_return (invoke "f32.no_fold_sub_zero" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_sub_zero" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -87,11 +87,11 @@ (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 (invoke "f32.no_fold_mul_zero" (f32.const nan:0x200000)) (f32.const nan:0x600000)) +(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 (invoke "f64.no_fold_mul_zero" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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". @@ -103,8 +103,8 @@ (f64.mul (get_local $x) (f64.const 1.0))) ) -(assert_return (invoke "f32.no_fold_mul_one" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_mul_one" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -115,14 +115,14 @@ (f64.div (f64.const 0.0) (get_local $x))) ) -(assert_return_nan (invoke "f32.no_fold_zero_div" (f32.const 0.0))) -(assert_return_nan (invoke "f32.no_fold_zero_div" (f32.const -0.0))) -(assert_return (invoke "f32.no_fold_zero_div" (f32.const nan)) (f32.const nan)) -(assert_return (invoke "f32.no_fold_zero_div" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return_nan (invoke "f64.no_fold_zero_div" (f64.const 0.0))) -(assert_return_nan (invoke "f64.no_fold_zero_div" (f64.const -0.0))) -(assert_return (invoke "f64.no_fold_zero_div" (f64.const nan)) (f64.const nan)) -(assert_return (invoke "f64.no_fold_zero_div" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -133,8 +133,8 @@ (f64.div (get_local $x) (f64.const 1.0))) ) -(assert_return (invoke "f32.no_fold_div_one" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_div_one" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -145,8 +145,8 @@ (f64.div (get_local $x) (f64.const -1.0))) ) -(assert_return (invoke "f32.no_fold_div_neg1" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_div_neg1" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -157,8 +157,8 @@ (f64.sub (f64.const -0.0) (get_local $x))) ) -(assert_return (invoke "f32.no_fold_neg0_sub" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_neg0_sub" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -169,8 +169,8 @@ (f64.mul (f64.const -1.0) (get_local $x))) ) -(assert_return (invoke "f32.no_fold_neg1_mul" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.no_fold_neg1_mul" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -205,10 +205,10 @@ (f64.sub (get_local $x) (get_local $x))) ) -(assert_return_nan (invoke "f32.no_fold_sub_self" (f32.const infinity))) -(assert_return (invoke "f32.no_fold_sub_self" (f32.const nan)) (f32.const nan)) -(assert_return_nan (invoke "f64.no_fold_sub_self" (f64.const infinity))) -(assert_return (invoke "f64.no_fold_sub_self" (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_sub_self" (f32.const infinity))) +(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 infinity))) +(assert_return_canonical_nan (invoke "f64.no_fold_sub_self" (f64.const nan))) ;; Test that x/3 is not folded to x*(1/3). @@ -363,18 +363,18 @@ (assert_return (invoke "f32.no_fold_div_0" (f32.const -1.0)) (f32.const -infinity)) (assert_return (invoke "f32.no_fold_div_0" (f32.const infinity)) (f32.const infinity)) (assert_return (invoke "f32.no_fold_div_0" (f32.const -infinity)) (f32.const -infinity)) -(assert_return_nan (invoke "f32.no_fold_div_0" (f32.const 0))) -(assert_return_nan (invoke "f32.no_fold_div_0" (f32.const -0))) -(assert_return (invoke "f32.no_fold_div_0" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f32.no_fold_div_0" (f32.const nan)) (f32.const nan)) +(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 infinity)) (assert_return (invoke "f64.no_fold_div_0" (f64.const -1.0)) (f64.const -infinity)) (assert_return (invoke "f64.no_fold_div_0" (f64.const infinity)) (f64.const infinity)) (assert_return (invoke "f64.no_fold_div_0" (f64.const -infinity)) (f64.const -infinity)) -(assert_return_nan (invoke "f64.no_fold_div_0" (f64.const 0))) -(assert_return_nan (invoke "f64.no_fold_div_0" (f64.const -0))) -(assert_return (invoke "f64.no_fold_div_0" (f64.const nan)) (f64.const nan)) -(assert_return (invoke "f64.no_fold_div_0" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -389,18 +389,18 @@ (assert_return (invoke "f32.no_fold_div_neg0" (f32.const -1.0)) (f32.const infinity)) (assert_return (invoke "f32.no_fold_div_neg0" (f32.const infinity)) (f32.const -infinity)) (assert_return (invoke "f32.no_fold_div_neg0" (f32.const -infinity)) (f32.const infinity)) -(assert_return_nan (invoke "f32.no_fold_div_neg0" (f32.const 0))) -(assert_return_nan (invoke "f32.no_fold_div_neg0" (f32.const -0))) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const nan:0x200000)) (f32.const nan:0x600000)) -(assert_return (invoke "f32.no_fold_div_neg0" (f32.const nan)) (f32.const nan)) +(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 -infinity)) (assert_return (invoke "f64.no_fold_div_neg0" (f64.const -1.0)) (f64.const infinity)) (assert_return (invoke "f64.no_fold_div_neg0" (f64.const infinity)) (f64.const -infinity)) (assert_return (invoke "f64.no_fold_div_neg0" (f64.const -infinity)) (f64.const infinity)) -(assert_return_nan (invoke "f64.no_fold_div_neg0" (f64.const 0))) -(assert_return_nan (invoke "f64.no_fold_div_neg0" (f64.const -0))) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const nan)) (f64.const nan)) -(assert_return (invoke "f64.no_fold_div_neg0" (f64.const nan:0x4000000000000)) (f64.const nan:0xc000000000000)) +(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. @@ -605,7 +605,7 @@ (f32.demote/f64 (f64.promote/f32 (get_local $x)))) ) -(assert_return (invoke "no_fold_promote_demote" (f32.const nan:0x200000)) (f32.const nan:0x600000)) +(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)) @@ -795,8 +795,8 @@ (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 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)) @@ -861,35 +861,35 @@ (func (export "f64.no_fold_ge_select") (param $x f64) (param $y f64) (result f64) (select (get_local $x) (get_local $y) (f64.ge (get_local $x) (get_local $y)))) ) -(assert_return (invoke "f32.no_fold_lt_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_lt_select" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_lt_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_select" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_lt_select" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f32.no_fold_le_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_le_select" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_le_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_select" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_select" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return (invoke "f32.no_fold_gt_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_gt_select" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_gt_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_select" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_select" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f32.no_fold_ge_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_ge_select" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_ge_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return (invoke "f64.no_fold_lt_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_lt_select" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_lt_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_select" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_lt_select" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return (invoke "f64.no_fold_le_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_le_select" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_le_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_select" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_select" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) -(assert_return (invoke "f64.no_fold_gt_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_gt_select" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_gt_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_select" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_select" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return (invoke "f64.no_fold_ge_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_ge_select" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_ge_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) @@ -908,35 +908,35 @@ (func (export "f64.no_fold_ge_if") (param $x f64) (param $y f64) (result f64) (if f64 (f64.ge (get_local $x) (get_local $y)) (get_local $x) (get_local $y))) ) -(assert_return (invoke "f32.no_fold_lt_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_lt_if" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_lt_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_if" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_lt_if" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f32.no_fold_le_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_le_if" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_le_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_if" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_if" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return (invoke "f32.no_fold_gt_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_gt_if" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_gt_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_if" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_if" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return (invoke "f32.no_fold_ge_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_ge_if" (f32.const 0.0) (f32.const nan))) (assert_return (invoke "f32.no_fold_ge_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return (invoke "f64.no_fold_lt_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_lt_if" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_lt_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_if" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_lt_if" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return (invoke "f64.no_fold_le_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_le_if" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_le_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_if" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_if" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) -(assert_return (invoke "f64.no_fold_gt_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_gt_if" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_gt_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_if" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_if" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return (invoke "f64.no_fold_ge_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_ge_if" (f64.const 0.0) (f64.const nan))) (assert_return (invoke "f64.no_fold_ge_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) @@ -956,35 +956,35 @@ ) (assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const -nan)) (f32.const -nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_lt_select_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const -nan)) (f32.const -nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_le_select_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const -nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_gt_select_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const -nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_ge_select_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const -nan)) (f64.const -nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_lt_select_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const -nan)) (f64.const -nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_le_select_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const -nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_gt_select_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const -nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_ge_select_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const -0.0)) (f64.const -0.0)) @@ -1003,35 +1003,35 @@ ) (assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const -nan)) (f32.const -nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_lt_if_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const -nan)) (f32.const -nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_le_if_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const -nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_gt_if_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const -nan)) (f32.const nan)) +(assert_return_canonical_nan (invoke "f32.no_fold_ge_if_to_abs" (f32.const -nan))) (assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const -nan)) (f64.const -nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_lt_if_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const -nan)) (f64.const -nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_le_if_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const -nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_gt_if_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const -nan)) (f64.const nan)) +(assert_return_canonical_nan (invoke "f64.no_fold_ge_if_to_abs" (f64.const -nan))) (assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const -0.0)) (f64.const -0.0)) @@ -1442,13 +1442,13 @@ (assert_return (invoke "f32.no_fold_add_neg" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_add_neg" (f32.const -0.0)) (f32.const 0.0)) -(assert_return_nan (invoke "f32.no_fold_add_neg" (f32.const infinity))) -(assert_return_nan (invoke "f32.no_fold_add_neg" (f32.const -infinity))) +(assert_return_canonical_nan (invoke "f32.no_fold_add_neg" (f32.const infinity))) +(assert_return_canonical_nan (invoke "f32.no_fold_add_neg" (f32.const -infinity))) (assert_return (invoke "f64.no_fold_add_neg" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_add_neg" (f64.const -0.0)) (f64.const 0.0)) -(assert_return_nan (invoke "f64.no_fold_add_neg" (f64.const infinity))) -(assert_return_nan (invoke "f64.no_fold_add_neg" (f64.const -infinity))) +(assert_return_canonical_nan (invoke "f64.no_fold_add_neg" (f64.const infinity))) +(assert_return_canonical_nan (invoke "f64.no_fold_add_neg" (f64.const -infinity))) ;; Test that x+x+x+x+x+x is not folded to x * 6. @@ -1579,13 +1579,13 @@ (f64.mul (f64.sqrt (get_local $x)) (f64.sqrt (get_local $y)))) ) -(assert_return_nan (invoke "f32.no_fold_mul_sqrts" (f32.const 0x1.dddda8p-125) (f32.const -0x1.25d22ap-83))) +(assert_return_canonical_nan (invoke "f32.no_fold_mul_sqrts" (f32.const 0x1.dddda8p-125) (f32.const -0x1.25d22ap-83))) (assert_return (invoke "f32.no_fold_mul_sqrts" (f32.const 0x1.418d14p-92) (f32.const 0x1.c6535cp-32)) (f32.const 0x1.7e373ap-62)) (assert_return (invoke "f32.no_fold_mul_sqrts" (f32.const 0x1.4de7ep-88) (f32.const 0x1.84ff18p+6)) (f32.const 0x1.686668p-41)) (assert_return (invoke "f32.no_fold_mul_sqrts" (f32.const 0x1.78091ep+101) (f32.const 0x1.81feb8p-9)) (f32.const 0x1.7cfb98p+46)) (assert_return (invoke "f32.no_fold_mul_sqrts" (f32.const 0x1.583ap-56) (f32.const 0x1.14ba2ap-9)) (f32.const 0x1.b47a8ep-33)) -(assert_return_nan (invoke "f64.no_fold_mul_sqrts" (f64.const -0x1.d1144cc28cdbep-635) (f64.const -0x1.bf9bc373d3b6ap-8))) +(assert_return_canonical_nan (invoke "f64.no_fold_mul_sqrts" (f64.const -0x1.d1144cc28cdbep-635) (f64.const -0x1.bf9bc373d3b6ap-8))) (assert_return (invoke "f64.no_fold_mul_sqrts" (f64.const 0x1.5a7eb976bebc9p-643) (f64.const 0x1.f30cb8865a4cap-404)) (f64.const 0x1.260a1032d6e76p-523)) (assert_return (invoke "f64.no_fold_mul_sqrts" (f64.const 0x1.711a0c1707935p-89) (f64.const 0x1.6fb5de51a20d3p-913)) (f64.const 0x1.7067ca28e31ecp-501)) (assert_return (invoke "f64.no_fold_mul_sqrts" (f64.const 0x1.fb0bbea33b076p-363) (f64.const 0x1.d963b34894158p-573)) (f64.const 0x1.e9edc1fa624afp-468)) @@ -1601,13 +1601,13 @@ (f64.div (f64.sqrt (get_local $x)) (f64.sqrt (get_local $y)))) ) -(assert_return_nan (invoke "f32.no_fold_div_sqrts" (f32.const -0x1.bea9bap+25) (f32.const -0x1.db776ep-58))) +(assert_return_canonical_nan (invoke "f32.no_fold_div_sqrts" (f32.const -0x1.bea9bap+25) (f32.const -0x1.db776ep-58))) (assert_return (invoke "f32.no_fold_div_sqrts" (f32.const 0x1.b983b6p+32) (f32.const 0x1.901f1ep+27)) (f32.const 0x1.7c4df6p+2)) (assert_return (invoke "f32.no_fold_div_sqrts" (f32.const 0x1.d45e72p-120) (f32.const 0x1.ab49ccp+15)) (f32.const 0x1.7b0b04p-68)) (assert_return (invoke "f32.no_fold_div_sqrts" (f32.const 0x1.b2e444p+59) (f32.const 0x1.5b8b16p-30)) (f32.const 0x1.94fca8p+44)) (assert_return (invoke "f32.no_fold_div_sqrts" (f32.const 0x1.835aa6p-112) (f32.const 0x1.d17128p-103)) (f32.const 0x1.4a468p-5)) -(assert_return_nan (invoke "f64.no_fold_div_sqrts" (f64.const -0x1.509fc16411167p-711) (f64.const -0x1.9c4255f5d6517p-187))) +(assert_return_canonical_nan (invoke "f64.no_fold_div_sqrts" (f64.const -0x1.509fc16411167p-711) (f64.const -0x1.9c4255f5d6517p-187))) (assert_return (invoke "f64.no_fold_div_sqrts" (f64.const 0x1.b6897bddac76p-587) (f64.const 0x1.104578b4c91f3p+541)) (f64.const 0x1.44e4f21f26cc9p-564)) (assert_return (invoke "f64.no_fold_div_sqrts" (f64.const 0x1.ac83451b08989p+523) (f64.const 0x1.8da575c6d12b8p-109)) (f64.const 0x1.09c003991ce17p+316)) (assert_return (invoke "f64.no_fold_div_sqrts" (f64.const 0x1.bab7836456417p-810) (f64.const 0x1.1ff60d03ba607p+291)) (f64.const 0x1.c0e6c833bf657p-551)) diff --git a/test/core/float_misc.wast b/test/core/float_misc.wast index 7f714323ba..a577288ce9 100644 --- a/test/core/float_misc.wast +++ b/test/core/float_misc.wast @@ -58,8 +58,8 @@ (assert_return (invoke "f64.add" (f64.const 1.0) (f64.const 0x1.0000000000001p-53)) (f64.const 0x1.0000000000001p+0)) ;; Test that what some systems call signaling NaN behaves as a quiet NaN. -(assert_return (invoke "f32.add" (f32.const nan:0x200000) (f32.const 1.0)) (f32.const nan:0x600000)) -(assert_return (invoke "f64.add" (f64.const nan:0x4000000000000) (f64.const 1.0)) (f64.const nan:0xc000000000000)) +(assert_return_arithmetic_nan (invoke "f32.add" (f32.const nan:0x200000) (f32.const 1.0))) +(assert_return_arithmetic_nan (invoke "f64.add" (f64.const nan:0x4000000000000) (f64.const 1.0))) ;; Max subnornmal + min subnormal = min normal. (assert_return (invoke "f32.add" (f32.const 0x1p-149) (f32.const 0x1.fffffcp-127)) (f32.const 0x1p-126)) @@ -526,7 +526,7 @@ (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_nan (invoke "f64.sqrt" (f64.const -0x1.360e8d0032adp-963))) +(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)) From c087d6c4791375db2a696e10eaedbdd07b96cc1c Mon Sep 17 00:00:00 2001 From: Ryan Kelly Date: Tue, 21 Mar 2017 17:45:40 +1100 Subject: [PATCH 2/2] Test that `select` and `if` return specific NaN bitpatterns. --- test/core/float_exprs.wast | 64 +++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/test/core/float_exprs.wast b/test/core/float_exprs.wast index 98f559a671..caa30175f7 100644 --- a/test/core/float_exprs.wast +++ b/test/core/float_exprs.wast @@ -861,35 +861,35 @@ (func (export "f64.no_fold_ge_select") (param $x f64) (param $y f64) (result f64) (select (get_local $x) (get_local $y) (f64.ge (get_local $x) (get_local $y)))) ) -(assert_return_canonical_nan (invoke "f32.no_fold_lt_select" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_lt_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_lt_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_select" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_lt_select" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return_canonical_nan (invoke "f32.no_fold_le_select" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_le_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_le_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_select" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_select" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return_canonical_nan (invoke "f32.no_fold_gt_select" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_gt_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_gt_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_select" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_select" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return_canonical_nan (invoke "f32.no_fold_ge_select" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_ge_select" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_ge_select" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_lt_select" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_lt_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_lt_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_select" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_lt_select" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_le_select" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_le_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_le_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_select" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_select" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_gt_select" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_gt_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_gt_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_select" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_select" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_ge_select" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_ge_select" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_ge_select" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) @@ -908,35 +908,35 @@ (func (export "f64.no_fold_ge_if") (param $x f64) (param $y f64) (result f64) (if f64 (f64.ge (get_local $x) (get_local $y)) (get_local $x) (get_local $y))) ) -(assert_return_canonical_nan (invoke "f32.no_fold_lt_if" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_lt_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_lt_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_if" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_lt_if" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return_canonical_nan (invoke "f32.no_fold_le_if" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_le_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_le_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_if" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_le_if" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return_canonical_nan (invoke "f32.no_fold_gt_if" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_gt_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_gt_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_if" (f32.const 0.0) (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_if" (f32.const -0.0) (f32.const 0.0)) (f32.const 0.0)) -(assert_return_canonical_nan (invoke "f32.no_fold_ge_if" (f32.const 0.0) (f32.const nan))) +(assert_return (invoke "f32.no_fold_ge_if" (f32.const 0.0) (f32.const nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_ge_if" (f32.const nan) (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if" (f32.const 0.0) (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if" (f32.const -0.0) (f32.const 0.0)) (f32.const -0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_lt_if" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_lt_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_lt_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_if" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_lt_if" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_le_if" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_le_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_le_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_if" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_le_if" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_gt_if" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_gt_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_gt_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_if" (f64.const 0.0) (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_if" (f64.const -0.0) (f64.const 0.0)) (f64.const 0.0)) -(assert_return_canonical_nan (invoke "f64.no_fold_ge_if" (f64.const 0.0) (f64.const nan))) +(assert_return (invoke "f64.no_fold_ge_if" (f64.const 0.0) (f64.const nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_ge_if" (f64.const nan) (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if" (f64.const 0.0) (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if" (f64.const -0.0) (f64.const 0.0)) (f64.const -0.0)) @@ -956,35 +956,35 @@ ) (assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_lt_select_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const -nan)) (f32.const -nan)) (assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_select_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_le_select_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const -nan))(f32.const -nan)) (assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_select_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_gt_select_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const -nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_select_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_ge_select_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const -nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_select_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_lt_select_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const -nan)) (f64.const -nan)) (assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_select_to_abs" (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_le_select_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const -nan)) (f64.const -nan)) (assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_select_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_gt_select_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const -nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_select_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_ge_select_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const -nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_select_to_abs" (f64.const -0.0)) (f64.const -0.0)) @@ -1003,35 +1003,35 @@ ) (assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_lt_if_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const -nan)) (f32.const -nan)) (assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_lt_if_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const nan:0x200000)) (f32.const nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_le_if_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const -nan)) (f32.const -nan)) (assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_le_if_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_gt_if_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const -nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const 0.0)) (f32.const -0.0)) (assert_return (invoke "f32.no_fold_gt_if_to_abs" (f32.const -0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const nan:0x200000)) (f32.const -nan:0x200000)) -(assert_return_canonical_nan (invoke "f32.no_fold_ge_if_to_abs" (f32.const -nan))) +(assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const -nan)) (f32.const nan)) (assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const 0.0)) (f32.const 0.0)) (assert_return (invoke "f32.no_fold_ge_if_to_abs" (f32.const -0.0)) (f32.const -0.0)) (assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_lt_if_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const -nan)) (f64.const -nan)) (assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_lt_if_to_abs" (f64.const -0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_le_if_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const -nan)) (f64.const -nan)) (assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_le_if_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_gt_if_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const -nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const 0.0)) (f64.const -0.0)) (assert_return (invoke "f64.no_fold_gt_if_to_abs" (f64.const -0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const nan:0x4000000000000)) (f64.const -nan:0x4000000000000)) -(assert_return_canonical_nan (invoke "f64.no_fold_ge_if_to_abs" (f64.const -nan))) +(assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const -nan)) (f64.const nan)) (assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const 0.0)) (f64.const 0.0)) (assert_return (invoke "f64.no_fold_ge_if_to_abs" (f64.const -0.0)) (f64.const -0.0))