summaryrefslogtreecommitdiff
path: root/test/spec/f32.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/spec/f32.wast')
-rw-r--r--test/spec/f32.wast2579
1 files changed, 1349 insertions, 1230 deletions
diff --git a/test/spec/f32.wast b/test/spec/f32.wast
index aba05d0ac..4f0881c25 100644
--- a/test/spec/f32.wast
+++ b/test/spec/f32.wast
@@ -1,5 +1,6 @@
;; Test all the f32 operators on major boundary values and all special
-;; values (except comparison operators, which are tested in f32_cmp.wast).
+;; values (except comparison and bitwise operators, which are tested in
+;; f32_bitwise.wast and f32_cmp.wast).
(module
(func (export "add") (param $x f32) (param $y f32) (result f32) (f32.add (local.get $x) (local.get $y)))
@@ -13,9 +14,6 @@
(func (export "floor") (param $x f32) (result f32) (f32.floor (local.get $x)))
(func (export "trunc") (param $x f32) (result f32) (f32.trunc (local.get $x)))
(func (export "nearest") (param $x f32) (result f32) (f32.nearest (local.get $x)))
- (func (export "abs") (param $x f32) (result f32) (f32.abs (local.get $x)))
- (func (export "neg") (param $x f32) (result f32) (f32.neg (local.get $x)))
- (func (export "copysign") (param $x f32) (param $y f32) (result f32) (f32.copysign (local.get $x) (local.get $y)))
)
(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -46,14 +44,18 @@
(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const -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 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 (invoke "add" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x0p+0) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x0p+0) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x0p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x0p+0) (f32.const nan:0x200000)))
(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149))
(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149))
(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149))
@@ -82,14 +84,18 @@
(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const -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 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 (invoke "add" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x1p-149) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-149) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-149) (f32.const nan:0x200000)))
(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126))
(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126))
(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126))
@@ -118,14 +124,18 @@
(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const -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 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 (invoke "add" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x1p-126) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-126) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-126) (f32.const nan:0x200000)))
(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1))
(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1))
(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1))
@@ -154,14 +164,18 @@
(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const -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 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 (invoke "add" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x1p-1) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p-1) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p-1) (f32.const nan:0x200000)))
(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0))
(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0))
(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0))
@@ -190,14 +204,18 @@
(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const -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 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 (invoke "add" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x1p+0) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1p+0) (f32.const nan:0x200000)))
(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2))
@@ -226,14 +244,18 @@
(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -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 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 (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)))
(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127))
@@ -258,90 +280,142 @@
(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
+(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -inf))
(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 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 -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 (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))
-(assert_return (invoke "add" (f32.const infinity) (f32.const 0x0p+0)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const -0x1p-1)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const -0x1p+0)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "add" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (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 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 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 (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 (invoke "add" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "add" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "add" (f32.const -inf) (f32.const -inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const inf)))
+(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const -inf)))
+(assert_return (invoke "add" (f32.const inf) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const -nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const -nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "add" (f32.const nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "add" (f32.const nan:0x200000) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0))
@@ -370,14 +444,18 @@
(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const -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 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 (invoke "sub" (f32.const -0x0p+0) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x0p+0) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x0p+0) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x0p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x0p+0) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149))
(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149))
(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149))
@@ -406,14 +484,18 @@
(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const -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 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 (invoke "sub" (f32.const -0x1p-149) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x1p-149) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x1p-149) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-149) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-149) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126))
(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126))
(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126))
@@ -442,14 +524,18 @@
(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const -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 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 (invoke "sub" (f32.const -0x1p-126) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x1p-126) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x1p-126) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-126) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-126) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1))
(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1))
(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1))
@@ -478,14 +564,18 @@
(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const -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 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 (invoke "sub" (f32.const -0x1p-1) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x1p-1) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x1p-1) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p-1) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p-1) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0))
(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0))
(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0))
@@ -514,14 +604,18 @@
(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const -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 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 (invoke "sub" (f32.const -0x1p+0) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x1p+0) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x1p+0) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1p+0) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2))
@@ -550,14 +644,18 @@
(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -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 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 (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)))
(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127))
@@ -583,89 +681,141 @@
(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const infinity))
+(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const inf))
(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -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 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 (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))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const 0x0p+0)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const -0x1p-1)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const -0x1p+0)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "sub" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (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 (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 (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 (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const -inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const -inf)))
+(assert_return (invoke "sub" (f32.const -inf) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "sub" (f32.const inf) (f32.const -inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const inf)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const -nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const -nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sub" (f32.const nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "sub" (f32.const nan:0x200000) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -694,14 +844,18 @@
(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 -inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x0p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x0p+0) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -730,14 +884,18 @@
(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep-22))
(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep-22))
(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep-22))
-(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const -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 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 (invoke "mul" (f32.const -0x1p-149) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1p-149) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-149) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-149) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -766,14 +924,18 @@
(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+1))
(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+1))
(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+1))
-(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const -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 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 (invoke "mul" (f32.const -0x1p-126) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1p-126) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-126) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-126) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -802,14 +964,18 @@
(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+126))
(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+126))
(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+126))
-(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const -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 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 (invoke "mul" (f32.const -0x1p-1) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1p-1) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p-1) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p-1) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -838,14 +1004,18 @@
(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const -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 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 (invoke "mul" (f32.const -0x1p+0) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1p+0) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1p+0) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -870,18 +1040,22 @@
(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const -0x1.3bd3cep+5))
(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.3bd3cep+5))
(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.3bd3cep+5))
-(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (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 -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 (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)))
(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -902,98 +1076,150 @@
(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (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 -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 (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))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const -0x1.fffffep+127)) (f32.const infinity))
-(assert_return (invoke "mul" (f32.const -infinity) (f32.const 0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "mul" (f32.const infinity) (f32.const 0x1.fffffep+127)) (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 -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 (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const 0x0p+0)))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p-1)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1p+0)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "mul" (f32.const -inf) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "mul" (f32.const inf) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const -nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const -nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "mul" (f32.const nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "mul" (f32.const nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const 0x0p+0)))
(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const 0x0p+0))
(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0))
@@ -1018,18 +1244,22 @@
(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -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 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 (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))
-(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const infinity))
+(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x0p+0) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x0p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x0p+0) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const inf))
(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const 0x1p+0))
(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const -0x1p+0))
(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p+0))
@@ -1054,18 +1284,22 @@
(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -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 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 (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))
-(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const infinity))
+(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x1p-149) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-149) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-149) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const inf))
(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const 0x1p+23))
(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const -0x1p+23))
(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p+23))
@@ -1090,22 +1324,26 @@
(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -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 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 (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))
-(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 -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const infinity))
+(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x1p-126) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-126) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-126) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const inf))
(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const 0x1p+125))
(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const -0x1p+125))
(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p+125))
@@ -1126,22 +1364,26 @@
(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-129))
(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-129))
(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-129))
-(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -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 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 (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))
-(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 -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const infinity))
+(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x1p-1) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p-1) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p-1) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const inf))
(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const 0x1p+126))
(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const -0x1p+126))
(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+126))
@@ -1162,26 +1404,30 @@
(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-128))
(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-128))
(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-128))
-(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -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 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 (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))
-(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 -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const infinity))
+(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x1p+0) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1p+0) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const inf))
(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const 0x1.921fb6p+3))
(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const -0x1.921fb6p+3))
(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+3))
@@ -1198,30 +1444,34 @@
(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.921fb8p-126))
(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb8p-126))
(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb8p-126))
-(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -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 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 (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))
-(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 -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const infinity))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const inf))
(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127))
@@ -1234,86 +1484,138 @@
(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -0x1p+0))
(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0))
(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0))
-(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -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 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 (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))
-(assert_return (invoke "div" (f32.const infinity) (f32.const 0x0p+0)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "div" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "div" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (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 (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 (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "div" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "div" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p-1)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p-1)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x1p+0)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "div" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "div" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const -nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const -nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "div" (f32.const nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "div" (f32.const nan:0x200000) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1342,14 +1644,18 @@
(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x0p+0))
(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const -infinity)) (f32.const -infinity))
-(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 (invoke "min" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x0p+0) (f32.const inf)) (f32.const -0x0p+0))
+(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x0p+0) (f32.const inf)) (f32.const 0x0p+0))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x0p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x0p+0) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149))
(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const -0x1p-149))
(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1378,14 +1684,18 @@
(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-149))
(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149))
-(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const -infinity)) (f32.const -infinity))
-(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 (invoke "min" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x1p-149) (f32.const inf)) (f32.const -0x1p-149))
+(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x1p-149) (f32.const inf)) (f32.const 0x1p-149))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-149) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-149) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126))
(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const -0x1p-126))
(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1414,14 +1724,18 @@
(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-126))
(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126))
-(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const -infinity)) (f32.const -infinity))
-(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 (invoke "min" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x1p-126) (f32.const inf)) (f32.const -0x1p-126))
+(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x1p-126) (f32.const inf)) (f32.const 0x1p-126))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-126) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-126) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1))
(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const -0x1p-1))
(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1450,14 +1764,18 @@
(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const -0x1p-1))
(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1))
-(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const -infinity)) (f32.const -infinity))
-(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 (invoke "min" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x1p-1) (f32.const inf)) (f32.const -0x1p-1))
+(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x1p-1) (f32.const inf)) (f32.const 0x1p-1))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p-1) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p-1) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0))
(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const -0x1p+0))
(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1486,14 +1804,18 @@
(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const -0x1p+0))
(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0))
-(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const -infinity)) (f32.const -infinity))
-(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 (invoke "min" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x1p+0) (f32.const inf)) (f32.const -0x1p+0))
+(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x1p+0) (f32.const inf)) (f32.const 0x1p+0))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1p+0) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1522,14 +1844,18 @@
(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const -0x1.921fb6p+2))
(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -infinity)) (f32.const -infinity))
-(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 (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const -0x1.921fb6p+2))
+(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const 0x1.921fb6p+2))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)))
(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0))
@@ -1558,86 +1884,138 @@
(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -infinity)) (f32.const -infinity))
-(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 (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))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x0p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const infinity) (f32.const -0x1p-149)) (f32.const -0x1p-149))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const infinity) (f32.const -0x1p-126)) (f32.const -0x1p-126))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const infinity) (f32.const -0x1p-1)) (f32.const -0x1p-1))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const infinity) (f32.const -0x1p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const -infinity) (f32.const 0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "min" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "min" (f32.const infinity) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(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 (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 (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const -0x1.fffffep+127))
+(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const 0x1.fffffep+127))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x0p+0)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x0p+0)) (f32.const -0x0p+0))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x0p+0)) (f32.const 0x0p+0))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-149)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-149)) (f32.const -0x1p-149))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-149)) (f32.const 0x1p-149))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-126)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-126)) (f32.const -0x1p-126))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-126)) (f32.const 0x1p-126))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p-1)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p-1)) (f32.const -0x1p-1))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p-1)) (f32.const 0x1p-1))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1p+0)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x1p+0)) (f32.const -0x1p+0))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x1p+0)) (f32.const 0x1p+0))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
+(assert_return (invoke "min" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
+(assert_return (invoke "min" (f32.const -inf) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const -inf) (f32.const inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "min" (f32.const inf) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "min" (f32.const -inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const -nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const -nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "min" (f32.const nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "min" (f32.const nan:0x200000) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const 0x0p+0))
@@ -1666,14 +2044,18 @@
(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const -infinity)) (f32.const -0x0p+0))
-(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 (invoke "max" (f32.const -0x0p+0) (f32.const -inf)) (f32.const -0x0p+0))
+(assert_return (invoke "max" (f32.const -0x0p+0) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const -inf)) (f32.const 0x0p+0))
+(assert_return (invoke "max" (f32.const 0x0p+0) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x0p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x0p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x0p+0) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const 0x1p-149))
@@ -1702,14 +2084,18 @@
(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-149))
(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const -infinity)) (f32.const -0x1p-149))
-(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 (invoke "max" (f32.const -0x1p-149) (f32.const -inf)) (f32.const -0x1p-149))
+(assert_return (invoke "max" (f32.const -0x1p-149) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const -inf)) (f32.const 0x1p-149))
+(assert_return (invoke "max" (f32.const 0x1p-149) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-149) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-149) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-149) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const 0x1p-126))
@@ -1738,14 +2124,18 @@
(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-126))
(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const -infinity)) (f32.const -0x1p-126))
-(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 (invoke "max" (f32.const -0x1p-126) (f32.const -inf)) (f32.const -0x1p-126))
+(assert_return (invoke "max" (f32.const -0x1p-126) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const -inf)) (f32.const 0x1p-126))
+(assert_return (invoke "max" (f32.const 0x1p-126) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-126) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-126) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-126) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const 0x1p-1))
@@ -1774,14 +2164,18 @@
(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const 0x1p-1))
(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const -infinity)) (f32.const -0x1p-1))
-(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 (invoke "max" (f32.const -0x1p-1) (f32.const -inf)) (f32.const -0x1p-1))
+(assert_return (invoke "max" (f32.const -0x1p-1) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const -inf)) (f32.const 0x1p-1))
+(assert_return (invoke "max" (f32.const 0x1p-1) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p-1) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-1) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p-1) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const 0x1p+0))
@@ -1810,14 +2204,18 @@
(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const 0x1p+0))
(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const -infinity)) (f32.const -0x1p+0))
-(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 (invoke "max" (f32.const -0x1p+0) (f32.const -inf)) (f32.const -0x1p+0))
+(assert_return (invoke "max" (f32.const -0x1p+0) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const -inf)) (f32.const 0x1p+0))
+(assert_return (invoke "max" (f32.const 0x1p+0) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1p+0) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p+0) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1p+0) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const 0x1.921fb6p+2))
@@ -1846,14 +2244,18 @@
(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const 0x1.921fb6p+2))
(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -infinity)) (f32.const -0x1.921fb6p+2))
-(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 (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -inf)) (f32.const -0x1.921fb6p+2))
+(assert_return (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -inf)) (f32.const 0x1.921fb6p+2))
+(assert_return (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.921fb6p+2) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.921fb6p+2) (f32.const nan:0x200000)))
(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const 0x1.fffffep+127))
@@ -1882,428 +2284,158 @@
(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -infinity)) (f32.const -0x1.fffffep+127))
-(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 (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))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x0p+0)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const -0x1p-149))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "max" (f32.const infinity) (f32.const -0x1p-149)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const -0x1p-126))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "max" (f32.const infinity) (f32.const -0x1p-126)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const -0x1p-1))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "max" (f32.const infinity) (f32.const -0x1p-1)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "max" (f32.const infinity) (f32.const -0x1p+0)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "max" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const -infinity) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "max" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const infinity))
-(assert_return (invoke "max" (f32.const infinity) (f32.const 0x1.fffffep+127)) (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 (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 (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x0p+0)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x0p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-149)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-149)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-126)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-126)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p-1)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p-1)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1p+0)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -infinity)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const infinity)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -infinity)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const infinity)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const -nan)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x0p+0) (f32.const nan)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const -nan)) (f32.const -0x0p+0))
-(assert_return (invoke "copysign" (f32.const 0x0p+0) (f32.const nan)) (f32.const 0x0p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x0p+0)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x0p+0)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-149)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-126)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-126)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p-1)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p-1)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1p+0)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1p+0)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -infinity)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const infinity)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -infinity)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const infinity)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const -nan)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-149) (f32.const nan)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const -nan)) (f32.const -0x1p-149))
-(assert_return (invoke "copysign" (f32.const 0x1p-149) (f32.const nan)) (f32.const 0x1p-149))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x0p+0)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x0p+0)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-149)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-149)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-126)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p-1)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p-1)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1p+0)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1p+0)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -infinity)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const infinity)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -infinity)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const infinity)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const -nan)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-126) (f32.const nan)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const -nan)) (f32.const -0x1p-126))
-(assert_return (invoke "copysign" (f32.const 0x1p-126) (f32.const nan)) (f32.const 0x1p-126))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x0p+0)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x0p+0)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-149)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-149)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-126)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-126)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p-1)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1p+0)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1p+0)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -0x1.fffffep+127)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const 0x1.fffffep+127)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -infinity)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const infinity)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -infinity)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const infinity)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const -nan)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p-1) (f32.const nan)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const -nan)) (f32.const -0x1p-1))
-(assert_return (invoke "copysign" (f32.const 0x1p-1) (f32.const nan)) (f32.const 0x1p-1))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x0p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x0p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-149)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-149)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-126)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-126)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p-1)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p-1)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1.921fb6p+2)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1.921fb6p+2)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -0x1.fffffep+127)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const 0x1.fffffep+127)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -infinity)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const infinity)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -infinity)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const infinity)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const -nan)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1p+0) (f32.const nan)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const -nan)) (f32.const -0x1p+0))
-(assert_return (invoke "copysign" (f32.const 0x1p+0) (f32.const nan)) (f32.const 0x1p+0))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x0p+0)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x0p+0)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-149)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-149)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-126)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-126)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p-1)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p-1)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1p+0)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1p+0)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -0x1.fffffep+127)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const 0x1.fffffep+127)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -infinity)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const infinity)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -infinity)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const infinity)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const -nan)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.921fb6p+2) (f32.const nan)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const -nan)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const 0x1.921fb6p+2) (f32.const nan)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x0p+0)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x0p+0)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-149)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-149)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-126)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-126)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p-1)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p-1)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1p+0)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1p+0)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -infinity)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const infinity)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -infinity)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const infinity)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const -nan)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -0x1.fffffep+127) (f32.const nan)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const -nan)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const 0x1.fffffep+127) (f32.const nan)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x0p+0)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x0p+0)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x0p+0)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x0p+0)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x1p-149)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x1p-149)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x1p-126)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x1p-126)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x1p-1)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x1p-1)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x1p+0)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x1p+0)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x1.921fb6p+2)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x1.921fb6p+2)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const 0x1.fffffep+127)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -0x1.fffffep+127)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const 0x1.fffffep+127)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -infinity)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const infinity)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -infinity)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const infinity)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const -nan)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const -infinity) (f32.const nan)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const -nan)) (f32.const -infinity))
-(assert_return (invoke "copysign" (f32.const infinity) (f32.const nan)) (f32.const infinity))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x0p+0)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x0p+0)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x0p+0)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x0p+0)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-149)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-149)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-149)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-149)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-126)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-126)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-126)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-126)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p-1)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p-1)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p-1)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p-1)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1p+0)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1p+0)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1p+0)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1p+0)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1.921fb6p+2)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1.921fb6p+2)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1.921fb6p+2)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -0x1.fffffep+127)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const 0x1.fffffep+127)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -0x1.fffffep+127)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const 0x1.fffffep+127)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -infinity)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const infinity)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -infinity)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const infinity)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const -nan)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const -nan) (f32.const nan)) (f32.const nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const -nan)) (f32.const -nan))
-(assert_return (invoke "copysign" (f32.const nan) (f32.const nan)) (f32.const nan))
+(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -inf)) (f32.const -0x1.fffffep+127))
+(assert_return (invoke "max" (f32.const -0x1.fffffep+127) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -inf)) (f32.const 0x1.fffffep+127))
+(assert_return (invoke "max" (f32.const 0x1.fffffep+127) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const 0x1.fffffep+127) (f32.const nan:0x200000)))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x0p+0)) (f32.const -0x0p+0))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x0p+0)) (f32.const 0x0p+0))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x0p+0)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x0p+0)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-149)) (f32.const -0x1p-149))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-149)) (f32.const 0x1p-149))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-149)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-149)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-126)) (f32.const -0x1p-126))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-126)) (f32.const 0x1p-126))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-126)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-126)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p-1)) (f32.const -0x1p-1))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p-1)) (f32.const 0x1p-1))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p-1)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p-1)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1p+0)) (f32.const -0x1p+0))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1p+0)) (f32.const 0x1p+0))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x1p+0)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x1p+0)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x1.921fb6p+2)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
+(assert_return (invoke "max" (f32.const -inf) (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
+(assert_return (invoke "max" (f32.const inf) (f32.const -0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const 0x1.fffffep+127)) (f32.const inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "max" (f32.const -inf) (f32.const inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const -inf)) (f32.const inf))
+(assert_return (invoke "max" (f32.const inf) (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "max" (f32.const -inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const inf) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const inf) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const inf) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const inf) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x0p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x0p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x0p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x0p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-149)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-149)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-149)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-149)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-126)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-126)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-126)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-126)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p-1)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p-1)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p-1)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p-1)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1p+0)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1p+0)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.921fb6p+2)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1.921fb6p+2)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const 0x1.fffffep+127)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const 0x1.fffffep+127)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -inf)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -inf)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const inf)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const inf)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const -nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const -nan:0x200000) (f32.const nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const -nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "max" (f32.const nan) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan) (f32.const nan:0x200000)))
+(assert_return_arithmetic_nan (invoke "max" (f32.const nan:0x200000) (f32.const nan:0x200000)))
(assert_return (invoke "sqrt" (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "sqrt" (f32.const 0x0p+0)) (f32.const 0x0p+0))
-(assert_return_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 (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 -inf)))
+(assert_return (invoke "sqrt" (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "sqrt" (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "sqrt" (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "sqrt" (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "sqrt" (f32.const nan:0x200000)))
(assert_return (invoke "floor" (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "floor" (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "floor" (f32.const -0x1p-149)) (f32.const -0x1p+0))
@@ -2318,10 +2450,12 @@
(assert_return (invoke "floor" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2))
(assert_return (invoke "floor" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "floor" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "floor" (f32.const -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 (invoke "floor" (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "floor" (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "floor" (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "floor" (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "floor" (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "floor" (f32.const nan:0x200000)))
(assert_return (invoke "ceil" (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "ceil" (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "ceil" (f32.const -0x1p-149)) (f32.const -0x0p+0))
@@ -2336,10 +2470,12 @@
(assert_return (invoke "ceil" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.cp+2))
(assert_return (invoke "ceil" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "ceil" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "ceil" (f32.const -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 (invoke "ceil" (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "ceil" (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "ceil" (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "ceil" (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "ceil" (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "ceil" (f32.const nan:0x200000)))
(assert_return (invoke "trunc" (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "trunc" (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "trunc" (f32.const -0x1p-149)) (f32.const -0x0p+0))
@@ -2354,10 +2490,12 @@
(assert_return (invoke "trunc" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2))
(assert_return (invoke "trunc" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "trunc" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "trunc" (f32.const -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 (invoke "trunc" (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "trunc" (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "trunc" (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "trunc" (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "trunc" (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "trunc" (f32.const nan:0x200000)))
(assert_return (invoke "nearest" (f32.const -0x0p+0)) (f32.const -0x0p+0))
(assert_return (invoke "nearest" (f32.const 0x0p+0)) (f32.const 0x0p+0))
(assert_return (invoke "nearest" (f32.const -0x1p-149)) (f32.const -0x0p+0))
@@ -2372,43 +2510,24 @@
(assert_return (invoke "nearest" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.8p+2))
(assert_return (invoke "nearest" (f32.const -0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
(assert_return (invoke "nearest" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "nearest" (f32.const -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 (invoke "abs" (f32.const -0x0p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "abs" (f32.const 0x0p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "abs" (f32.const -0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "abs" (f32.const 0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "abs" (f32.const -0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "abs" (f32.const 0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "abs" (f32.const -0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "abs" (f32.const 0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "abs" (f32.const -0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "abs" (f32.const 0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "abs" (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "abs" (f32.const 0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "abs" (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "abs" (f32.const 0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "abs" (f32.const -infinity)) (f32.const infinity))
-(assert_return (invoke "abs" (f32.const infinity)) (f32.const infinity))
-(assert_return (invoke "abs" (f32.const -nan)) (f32.const nan))
-(assert_return (invoke "abs" (f32.const nan)) (f32.const nan))
-(assert_return (invoke "neg" (f32.const -0x0p+0)) (f32.const 0x0p+0))
-(assert_return (invoke "neg" (f32.const 0x0p+0)) (f32.const -0x0p+0))
-(assert_return (invoke "neg" (f32.const -0x1p-149)) (f32.const 0x1p-149))
-(assert_return (invoke "neg" (f32.const 0x1p-149)) (f32.const -0x1p-149))
-(assert_return (invoke "neg" (f32.const -0x1p-126)) (f32.const 0x1p-126))
-(assert_return (invoke "neg" (f32.const 0x1p-126)) (f32.const -0x1p-126))
-(assert_return (invoke "neg" (f32.const -0x1p-1)) (f32.const 0x1p-1))
-(assert_return (invoke "neg" (f32.const 0x1p-1)) (f32.const -0x1p-1))
-(assert_return (invoke "neg" (f32.const -0x1p+0)) (f32.const 0x1p+0))
-(assert_return (invoke "neg" (f32.const 0x1p+0)) (f32.const -0x1p+0))
-(assert_return (invoke "neg" (f32.const -0x1.921fb6p+2)) (f32.const 0x1.921fb6p+2))
-(assert_return (invoke "neg" (f32.const 0x1.921fb6p+2)) (f32.const -0x1.921fb6p+2))
-(assert_return (invoke "neg" (f32.const -0x1.fffffep+127)) (f32.const 0x1.fffffep+127))
-(assert_return (invoke "neg" (f32.const 0x1.fffffep+127)) (f32.const -0x1.fffffep+127))
-(assert_return (invoke "neg" (f32.const -infinity)) (f32.const infinity))
-(assert_return (invoke "neg" (f32.const infinity)) (f32.const -infinity))
-(assert_return (invoke "neg" (f32.const -nan)) (f32.const nan))
-(assert_return (invoke "neg" (f32.const nan)) (f32.const -nan))
+(assert_return (invoke "nearest" (f32.const -inf)) (f32.const -inf))
+(assert_return (invoke "nearest" (f32.const inf)) (f32.const inf))
+(assert_return_canonical_nan (invoke "nearest" (f32.const -nan)))
+(assert_return_arithmetic_nan (invoke "nearest" (f32.const -nan:0x200000)))
+(assert_return_canonical_nan (invoke "nearest" (f32.const nan)))
+(assert_return_arithmetic_nan (invoke "nearest" (f32.const nan:0x200000)))
+
+
+;; Type check
+
+(assert_invalid (module (func (result f32) (f32.add (i64.const 0) (f64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.div (i64.const 0) (f64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.max (i64.const 0) (f64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.min (i64.const 0) (f64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.mul (i64.const 0) (f64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.sub (i64.const 0) (f64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.ceil (i64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.floor (i64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.nearest (i64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.sqrt (i64.const 0)))) "type mismatch")
+(assert_invalid (module (func (result f32) (f32.trunc (i64.const 0)))) "type mismatch")