diff --git a/test/core/simd/meta/README.md b/test/core/simd/meta/README.md index d4c202994..f97295622 100644 --- a/test/core/simd/meta/README.md +++ b/test/core/simd/meta/README.md @@ -12,6 +12,8 @@ Currently it only support following simd test files generation. - 'simd_i16x8_arith.wast' - 'simd_i32x4_arith.wast' - 'simd_f32x4_arith.wast' +- 'simd_i64x2_arith.wast' +- 'simd_f64x2_arith.wast' - 'simd_bitwise.wast' - 'simd_i8x16_sat_arith.wast' - 'simd_i16x8_sat_arith.wast' diff --git a/test/core/simd/meta/gen_tests.py b/test/core/simd/meta/gen_tests.py index b9f17a740..48a67c4b3 100644 --- a/test/core/simd/meta/gen_tests.py +++ b/test/core/simd/meta/gen_tests.py @@ -18,6 +18,8 @@ 'simd_i16x8_arith', 'simd_i32x4_arith', 'simd_f32x4_arith', + 'simd_i64x2_arith', + 'simd_f64x2_arith', 'simd_sat_arith', 'simd_bitwise', 'simd_f32x4', diff --git a/test/core/simd/meta/simd_f32x4.py b/test/core/simd/meta/simd_f32x4.py index 653df97b4..cd8f64b75 100644 --- a/test/core/simd/meta/simd_f32x4.py +++ b/test/core/simd/meta/simd_f32x4.py @@ -5,63 +5,15 @@ """ from simd_f32x4_arith import Simdf32x4ArithmeticCase +from simd_float_op import FloatingPointSimpleOp from simd import SIMD from test_assert import AssertReturn -def binary_op(op: str, p1: str, p2: str) -> str: - """Binary operation on p1 and p2 with the operation specified by op - - :param op: min, max, - :param p1: float number in hex - :param p2: float number in hex - :return: - """ - f1 = float.fromhex(p1) - f2 = float.fromhex(p2) - - if '-nan' in [p1, p2] and 'nan' in [p1, p2]: - return p1 - - if 'nan' in [p1, p2]: - return 'nan' - - if '-nan' in [p1, p2]: - return '-nan' - - if op == 'min': - if '-0x0p+0' in [p1, p2] and '0x0p+0' in [p1, p2]: - return '-0x0p+0' - result = min(f1, f2) - - elif op == 'max': - if '-0x0p+0' in [p1, p2] and '0x0p+0' in [p1, p2]: - return '0x0p+0' - result = max(f1, f2) - - else: - raise Exception('Unknown binary operation: {}'.format(op)) - - return result.hex() - - -def unary_op(op: str, p1: str) -> str: - """Unnary operation on p1 with the operation specified by op - - :param op: abs, - :param p1: float number in hex - :return: - """ - f1 = float.fromhex(p1) - if op == 'abs': - return abs(f1).hex() - - raise Exception('Unknown unary operation: {}'.format(op)) - - class Simdf32x4Case(Simdf32x4ArithmeticCase): UNARY_OPS = ('abs',) BINARY_OPS = ('min', 'max',) + floatOp = FloatingPointSimpleOp() FLOAT_NUMBERS = ( '0x0p+0', '-0x0p+0', '0x1p-149', '-0x1p-149', '0x1p-126', '-0x1p-126', '0x1p-1', '-0x1p-1', '0x1p+0', '-0x1p+0', @@ -367,7 +319,7 @@ def get_normal_case(self): op_name = self.full_op_name(op) for p1 in self.FLOAT_NUMBERS: for p2 in self.FLOAT_NUMBERS: - result = binary_op(op, p1, p2) + result = self.floatOp.binary_op(op, p1, p2) if 'nan' not in result: # Normal floating point numbers as the results binary_test_data.append(['assert_return', op_name, p1, p2, result]) @@ -443,7 +395,7 @@ def get_normal_case(self): for p in self.FLOAT_NUMBERS: op_name = self.full_op_name('abs') - result = unary_op('abs', p) + result = self.floatOp.unary_op('abs', p) # Abs operation is valid for all the floating point numbers unary_test_data.append(['assert_return', op_name, p, result]) @@ -486,4 +438,4 @@ def gen_test_cases(): if __name__ == '__main__': - gen_test_cases() + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_f32x4_arith.py b/test/core/simd/meta/simd_f32x4_arith.py index cd98cf289..720f57877 100644 --- a/test/core/simd/meta/simd_f32x4_arith.py +++ b/test/core/simd/meta/simd_f32x4_arith.py @@ -4,100 +4,21 @@ Generate f32x4 floating-point arithmetic operation cases. """ -import math from simd_arithmetic import SimdArithmeticCase +from simd_float_op import FloatingPointArithOp -def binary_op(op: str, p1: str, p2: str) -> str: - """Binary operation on p1 and p2 with the operation specified by op - - :param op: add, sub, mul, - :param p1: float number in hex - :param p2: float number in hex - :return: - """ - f1 = float.fromhex(p1) - f2 = float.fromhex(p2) - if op == 'add': - if 'inf' in p1 and 'inf' in p2 and p1 != p2: - return '-nan' - result = f1 + f2 - - elif op == 'sub': - if 'inf' in p1 and 'inf' in p2 and p1 == p2: - return '-nan' - result = f1 - f2 - - elif op == 'mul': - if '0x0p+0' in p1 and 'inf' in p2 or 'inf' in p1 and '0x0p+0' in p2: - return '-nan' - result = f1 * f2 - - elif op == 'div': - if '0x0p+0' in p1 and '0x0p+0' in p2: - return '-nan' - if 'inf' in p1 and 'inf' in p2: - return '-nan' - - try: - result = f1 / f2 - return get_valid_float(result) - except ZeroDivisionError: - if p1[0] == p2[0]: - return 'inf' - elif p1 == 'inf' and p2 == '0x0p+0': - return 'inf' - else: - return '-inf' - - else: - raise Exception('Unknown binary operation') - - return get_valid_float(result) - - -def get_valid_float(value): - if value > float.fromhex('0x1.fffffep+127'): - return 'inf' - if value < float.fromhex('-0x1.fffffep+127'): - return '-inf' - return value.hex() - - -def float_sqrt(p): - if p == '-0x0p+0': - return '-0x0p+0' - - try: - p = float.fromhex(p) - result = float.hex(math.sqrt(p)) - except ValueError: - result = '-nan' - - return result - - -def float_neg(p): - if p == 'nan': - return '-nan' - try: - p = float.fromhex(p) - result = float.hex(-p) - except ValueError: - if p.startswith('nan:'): - return '-' + p - if p.startswith('-nan:'): - return p[1:] - - return result +class F32ArithOp(FloatingPointArithOp): + maximum = '0x1.fffffep+127' class Simdf32x4ArithmeticCase(SimdArithmeticCase): LANE_LEN = 4 LANE_TYPE = 'f32x4' + floatOp = F32ArithOp() UNARY_OPS = ('neg', 'sqrt') - BINARY_OPS = ('add', 'sub', 'mul', 'div',) + BINARY_OPS = ('add', 'sub', 'mul', 'div') FLOAT_NUMBERS = ( '0x0p+0', '-0x0p+0', '0x1p-149', '-0x1p-149', '0x1p-126', '-0x1p-126', '0x1p-1', '-0x1p-1', '0x1p+0', '-0x1p+0', @@ -250,7 +171,7 @@ def get_normal_case(self): op_name = self.full_op_name(op) for p1 in self.FLOAT_NUMBERS: for p2 in self.FLOAT_NUMBERS: - result = binary_op(op, p1, p2) + result = self.floatOp.binary_op(op, p1, p2) if 'nan' not in result: # Normal floating point numbers as the results binary_test_data.append(['assert_return', op_name, p1, p2, result]) @@ -290,7 +211,7 @@ def get_normal_case(self): else: # Normal floating point numbers for sqrt operation op_name = self.full_op_name('sqrt') - result = float_sqrt(p) + result = self.floatOp.float_sqrt(p) if 'nan' not in result: # Get the sqrt value correctly unary_test_data.append(['assert_return', op_name, p, result]) @@ -300,7 +221,7 @@ def get_normal_case(self): for p in self.FLOAT_NUMBERS + self.NAN_NUMBERS: op_name = self.full_op_name('neg') - result = float_neg(p) + result = self.floatOp.float_neg(p) # Neg operation is valid for all the floating point numbers unary_test_data.append(['assert_return', op_name, p, result]) @@ -363,9 +284,10 @@ def mixed_nan_test(self, cases): cases.append(template.format( 'assert_return_arithmetic_nan', test_type, i)) else: - cases.append('({} (invoke "f32x4_extract_lane_{}_{}") '.format( - 'assert_return', test_type, i) + - '(f32.const {}))'.format(result)) + cases.append(''.join([ + '({} (invoke "f32x4_extract_lane_{}_{}") '.format( + 'assert_return', test_type, i), + '(f32.const {}))'.format(result)])) def gen_test_cases(): diff --git a/test/core/simd/meta/simd_f64x2_arith.py b/test/core/simd/meta/simd_f64x2_arith.py new file mode 100644 index 000000000..b565d7e3b --- /dev/null +++ b/test/core/simd/meta/simd_f64x2_arith.py @@ -0,0 +1,204 @@ +#!/usr/bin/env python3 + +""" +Generate f32x4 floating-point arithmetic operation cases. +""" + +from simd_f32x4_arith import Simdf32x4ArithmeticCase +from simd_float_op import FloatingPointArithOp + + +class F64ArithOp(FloatingPointArithOp): + maximum = '0x1.fffffffffffffp+1023' + + +class Simdf64x2ArithmeticCase(Simdf32x4ArithmeticCase): + + LANE_LEN = 2 + LANE_TYPE = 'f64x2' + + floatOp = F64ArithOp() + + FLOAT_NUMBERS = ( + '0x0p+0', '-0x0p+0', '0x1p-1022', '-0x1p-1022', '0x1p-1', '-0x1p-1', '0x1p+0', '-0x1p+0', + '0x1.921fb54442d18p+2', '-0x1.921fb54442d18p+2', '0x1.fffffffffffffp+1023', '-0x1.fffffffffffffp+1023', + '0x0.0000000000001p-1022', '0x0.0000000000001p-1022', 'inf', '-inf' + ) + + NAN_NUMBERS = ('nan', '-nan', 'nan:0x4000000000000', '-nan:0x4000000000000') + + @staticmethod + def v128_const(lane, val): + return '(v128.const {} {})'.format(lane, ' '.join([str(val)] * 2)) + + @property + def combine_ternary_arith_test_data(self): + return { + 'add-sub': [ + ['1.125'] * 2, ['0.25'] * 2, ['0.125'] * 2, ['1.0'] * 2 + ], + 'sub-add': [ + ['1.125'] * 2, ['0.25'] * 2, ['0.125'] * 2, ['1.25'] * 2 + ], + 'mul-add': [ + ['1.25'] * 2, ['0.25'] * 2, ['0.25'] * 2, ['0.375'] * 2 + ], + 'mul-sub': [ + ['1.125'] * 2, ['0.125'] * 2, ['0.25'] * 2, ['0.25'] * 2 + ], + 'div-add': [ + ['1.125'] * 2, ['0.125'] * 2, ['0.25'] * 2, ['5.0'] * 2 + ], + 'div-sub': [ + ['1.125'] * 2, ['0.125'] * 2, ['0.25'] * 2, ['4.0'] * 2 + ], + 'mul-div': [ + ['1.125'] * 2, ['0.125'] * 2, ['0.25'] * 2, ['2.25'] * 2 + ], + 'div-mul': [ + ['1.125'] * 2, ['4'] * 2, ['0.25'] * 2, ['18.0'] * 2 + ] + } + + @property + def combine_binary_arith_test_data(self): + return { + 'add-neg': [ + ['1.125'] * 2, ['0.125'] * 2, ['-1.0'] * 2 + ], + 'sub-neg': [ + ['1.125'] * 2, ['0.125'] * 2, ['-1.25'] * 2 + ], + 'mul-neg': [ + ['1.5'] * 2, ['0.25'] * 2, ['-0.375'] * 2 + ], + 'div-neg': [ + ['1.5'] * 2, ['0.25'] * 2, ['-6'] * 2 + ], + 'add-sqrt': [ + ['2.25'] * 2, ['0.25'] * 2, ['1.75'] * 2 + ], + 'sub-sqrt': [ + ['2.25'] * 2, ['0.25'] * 2, ['1.25'] * 2 + ], + 'mul-sqrt': [ + ['2.25'] * 2, ['0.25'] * 2, ['0.375'] * 2 + ], + 'div-sqrt': [ + ['2.25'] * 2, ['0.25'] * 2, ['6'] * 2 + ] + } + + def get_normal_case(self): + return super().get_normal_case().replace('nan_f32x4', 'nan_f64x2') + + def get_invalid_cases(self): + return super().get_invalid_cases().replace('32', '64') + + @property + def mixed_sqrt_nan_test_data(self): + return { + 'neg': [ + ['nan', '1.0', 'nan', '-1.0'], + ], + 'sqrt': [ + ['4.0', '-nan', '2.0', 'nan'], + ], + 'add': [ + ['nan 1.0', '-1.0 1.0', 'nan', '2.0'], + ], + 'sub': [ + ['1.0 -1.0', '-nan 1.0', 'nan', '-2.0'], + ], + 'mul': [ + ['1.0 2.0', 'nan 2.0', 'nan', '4.0'], + ], + 'div': [ + ['6.0 nan', '3.0 -nan', '2.0', 'nan'] + ] + } + + def mixed_nan_test(self, cases): + """Mask the mixed nan tests of simd_f32x4_arith as we'll use + call_indirect.""" + test_data_lines = [ + '\n;; Mixed f64x2 tests when some lanes are NaNs', + '(module', + ' (type $v_v (func (param v128) (result v128)))', + ' (type $vv_v (func (param v128 v128) (result v128)))', + ' (table funcref (elem {}))\n'.format( + ' '.join(['$64x2_' + op for op in self.UNARY_OPS + self.BINARY_OPS])) + + ] + for op in self.UNARY_OPS: + test_data_lines.append( + ' (func $64x2_{op} (type $v_v) (f64x2.{op} (local.get 0)))'.format(op=op) + ) + for op in self.BINARY_OPS: + test_data_lines.append( + ' (func $64x2_{op} (type $vv_v) (f64x2.{op} (local.get 0) (local.get 1)))'.format(op=op) + ) + test_data_lines.append('') + for index in range(2): + test_data_lines.extend([ + ' (func (export "call_indirect_v_v_f64x2_extract_lane_{i}")'.format(i=index), + ' (param v128 i32) (result f64)', + ' (f64x2.extract_lane {i}'.format(i=index), + ' (call_indirect (type $v_v) (local.get 0) (local.get 1))))']) + test_data_lines.extend([ + ' (func (export "call_indirect_vv_v_f64x2_extract_lane_{i}")'.format(i=index), + ' (param v128 v128 i32) (result f64)', + ' (f64x2.extract_lane {i}'.format(i=index), + ' (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2))))']) + + test_data_lines.append(')') + + for index, op in enumerate(self.UNARY_OPS): + data_set = self.mixed_sqrt_nan_test_data.get(op) + for data in data_set: + for i in range(2): + if 'nan' in data[i + 2]: + test_data_lines.append(''.join([ + '(assert_return_canonical_nan ', + '(invoke "call_indirect_v_v_f64x2_extract_lane_{i}" '.format(i=i), + '(v128.const f64x2 {p}) (i32.const {index})))'.format( + p=' '.join(data[:2]), index=index) + ])) + else: + test_data_lines.append(''.join([ + '(assert_return ', + '(invoke "call_indirect_v_v_f64x2_extract_lane_{i}" '.format(i=i), + '(v128.const f64x2 {p}) (i32.const {index})) (f64.const {r}))'.format( + p=' '.join(data[:2]), index=index, r=data[i + 2]) + ])) + + for index, op in enumerate(self.BINARY_OPS, start=2): + data_set = self.mixed_sqrt_nan_test_data.get(op) + for data in data_set: + for i in range(2): + if 'nan' in data[i + 2]: + test_data_lines.append(''.join([ + '(assert_return_canonical_nan ', + '(invoke "call_indirect_vv_v_f64x2_extract_lane_{i}" '.format(i=i), + '(v128.const f64x2 {p1}) (v128.const f64x2 {p2}) (i32.const {index})))'.format( + p1=data[0], p2=data[1], index=index) + ])) + else: + test_data_lines.append(''.join([ + '(assert_return ', + '(invoke "call_indirect_vv_v_f64x2_extract_lane_{i}" '.format(i=i), + '(v128.const f64x2 {p1}) (v128.const f64x2 {p2}) (i32.const {index})) '.format( + p1=data[0], p2=data[1], index=index), + ' (f64.const {r}))'.format(r=data[i + 2]) + ])) + + cases.extend(test_data_lines) + + +def gen_test_cases(): + simd_f64x2_arith = Simdf64x2ArithmeticCase() + simd_f64x2_arith.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_f64x2_cmp.py b/test/core/simd/meta/simd_f64x2_cmp.py index a286f3fe2..63f5c2f59 100644 --- a/test/core/simd/meta/simd_f64x2_cmp.py +++ b/test/core/simd/meta/simd_f64x2_cmp.py @@ -10,49 +10,7 @@ """ from simd_arithmetic import SimdArithmeticCase - - -def binary_op(op: str, p1: str, p2: str) -> str: - """Binary operation on p1 and p2 with the operation specified by op - - :param op: eq, ne, lt, le, gt, ge - :param p1: float number in hex - :param p2: float number in hex - :return: - """ - - # ne - # if either p1 or p2 is a NaN, then return True - if op == 'ne' and ('nan' in p1.lower() or 'nan' in p2.lower()): - return '-1' - - # other instructions - # if either p1 or p2 is a NaN, then return False - if 'nan' in p1.lower() or 'nan' in p2.lower(): - return '0' - - f1 = float.fromhex(p1) - f2 = float.fromhex(p2) - - if op == 'eq': - return '-1' if f1 == f2 else '0' - - elif op == 'ne': - return '-1' if f1 != f2 else '0' - - elif op == 'lt': - return '-1' if f1 < f2 else '0' - - elif op == 'le': - return '-1' if f1 <= f2 else '0' - - elif op == 'gt': - return '-1' if f1 > f2 else '0' - - elif op == 'ge': - return '-1' if f1 >= f2 else '0' - else: - raise Exception('Unknown binary operation') +from simd_float_op import FloatingPointCmpOp class Simdf64x2CmpCase(SimdArithmeticCase): @@ -61,6 +19,7 @@ class Simdf64x2CmpCase(SimdArithmeticCase): UNARY_OPS = () BINARY_OPS = ('eq', 'ne', 'lt', 'le', 'gt', 'ge',) + floatOp = FloatingPointCmpOp() FLOAT_NUMBERS_SPECIAL = ('0x1p-1074', '-inf', '0x1.921fb54442d18p+2', '0x1p+0', '-0x1.fffffffffffffp+1023', '-0x0p+0', '-0x1p-1', '0x1.fffffffffffffp+1023', @@ -256,19 +215,19 @@ def get_normal_case(self): op_name = self.full_op_name(op) for p1 in self.FLOAT_NUMBERS_SPECIAL: for p2 in self.FLOAT_NUMBERS_SPECIAL + self.NAN_NUMBERS: - result = binary_op(op, p1, p2) + result = self.floatOp.binary_op(op, p1, p2) binary_test_data.append(['assert_return', op_name, p1, p2, result]) for p1 in self.NAN_NUMBERS: for p2 in self.FLOAT_NUMBERS_SPECIAL + self.NAN_NUMBERS: - result = binary_op(op, p1, p2) + result = self.floatOp.binary_op(op, p1, p2) binary_test_data.append(['assert_return', op_name, p1, p2, result]) for op in self.BINARY_OPS: op_name = self.full_op_name(op) for p1 in self.FLOAT_NUMBERS_NORMAL: for p2 in self.FLOAT_NUMBERS_NORMAL: - result = binary_op(op, p1, p2) + result = self.floatOp.binary_op(op, p1, p2) binary_test_data.append(['assert_return', op_name, p1, p2, result]) for case in binary_test_data: diff --git a/test/core/simd/meta/simd_float_op.py b/test/core/simd/meta/simd_float_op.py new file mode 100644 index 000000000..0b595ba8d --- /dev/null +++ b/test/core/simd/meta/simd_float_op.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python3 + +"""Common floating-point number operations for f32x4 and f64x2""" + +from abc import abstractmethod +import math + + +class FloatingPointOp: + + maximum = None + + @abstractmethod + def binary_op(self, op: str, p1: str, p2: str) -> str: + pass + + +class FloatingPointArithOp(FloatingPointOp): + """Common arithmetic ops for both f32x4 and f64x2: + neg, sqrt, add, sub, mul, div + """ + + def binary_op(self, op: str, p1: str, p2: str) -> str: + """Binary operation on p1 and p2 with the operation specified by op + + :param op: add, sub, mul, div + :param p1: float number in hex + :param p2: float number in hex + :return: + """ + f1 = float.fromhex(p1) + f2 = float.fromhex(p2) + if op == 'add': + if 'inf' in p1 and 'inf' in p2 and p1 != p2: + return '-nan' + result = f1 + f2 + + elif op == 'sub': + if 'inf' in p1 and 'inf' in p2 and p1 == p2: + return '-nan' + result = f1 - f2 + + elif op == 'mul': + if '0x0p+0' in p1 and 'inf' in p2 or 'inf' in p1 and '0x0p+0' in p2: + return '-nan' + result = f1 * f2 + + elif op == 'div': + if '0x0p+0' in p1 and '0x0p+0' in p2: + return '-nan' + if 'inf' in p1 and 'inf' in p2: + return '-nan' + + try: + result = f1 / f2 + return self.get_valid_float(result, self.maximum) + except ZeroDivisionError: + if p1[0] == p2[0]: + return 'inf' + elif p1 == 'inf' and p2 == '0x0p+0': + return 'inf' + else: + return '-inf' + + else: + raise Exception('Unknown binary operation') + + return self.get_valid_float(result, self.maximum) + + def get_valid_float(self, value, maximum_literals): + if value > float.fromhex(maximum_literals): + return 'inf' + if value < float.fromhex('-' + maximum_literals): + return '-inf' + return value.hex() + + def float_sqrt(self, p): + if p == '-0x0p+0': + return '-0x0p+0' + + try: + p = float.fromhex(p) + result = float.hex(math.sqrt(p)) + except ValueError: + result = '-nan' + + return result + + def float_neg(self, p): + if p == 'nan': + return '-nan' + try: + p = float.fromhex(p) + result = float.hex(-p) + except ValueError: + if p.startswith('nan:'): + return '-' + p + if p.startswith('-nan:'): + return p[1:] + + return result + + +class FloatingPointSimpleOp(FloatingPointOp): + """Common simple ops for both f32x4 and f64x2: abs, min, max""" + + def binary_op(self, op: str, p1: str, p2: str) -> str: + """Binary operation on p1 and p2 with the operation specified by op + + :param op: min, max, + :param p1: float number in hex + :param p2: float number in hex + :return: + """ + f1 = float.fromhex(p1) + f2 = float.fromhex(p2) + + if '-nan' in [p1, p2] and 'nan' in [p1, p2]: + return p1 + + if 'nan' in [p1, p2]: + return 'nan' + + if '-nan' in [p1, p2]: + return '-nan' + + if op == 'min': + if '-0x0p+0' in [p1, p2] and '0x0p+0' in [p1, p2]: + return '-0x0p+0' + result = min(f1, f2) + + elif op == 'max': + if '-0x0p+0' in [p1, p2] and '0x0p+0' in [p1, p2]: + return '0x0p+0' + result = max(f1, f2) + + else: + raise Exception('Unknown binary operation: {}'.format(op)) + + return result.hex() + + def unary_op(self, op: str, p1: str) -> str: + """Unnary operation on p1 with the operation specified by op + + :param op: abs, + :param p1: float number in hex + :return: + """ + f1 = float.fromhex(p1) + if op == 'abs': + return abs(f1).hex() + + raise Exception('Unknown unary operation: {}'.format(op)) + + +class FloatingPointCmpOp(FloatingPointOp): + + def binary_op(self, op: str, p1: str, p2: str) -> str: + """Binary operation on p1 and p2 with the operation specified by op + + :param op: eq, ne, lt, le, gt, ge + :param p1: float number in hex + :param p2: float number in hex + :return: + """ + + # ne + # if either p1 or p2 is a NaN, then return True + if op == 'ne' and ('nan' in p1.lower() or 'nan' in p2.lower()): + return '-1' + + # other instructions + # if either p1 or p2 is a NaN, then return False + if 'nan' in p1.lower() or 'nan' in p2.lower(): + return '0' + + f1 = float.fromhex(p1) + f2 = float.fromhex(p2) + + if op == 'eq': + return '-1' if f1 == f2 else '0' + + elif op == 'ne': + return '-1' if f1 != f2 else '0' + + elif op == 'lt': + return '-1' if f1 < f2 else '0' + + elif op == 'le': + return '-1' if f1 <= f2 else '0' + + elif op == 'gt': + return '-1' if f1 > f2 else '0' + + elif op == 'ge': + return '-1' if f1 >= f2 else '0' + else: + raise Exception('Unknown binary operation') \ No newline at end of file diff --git a/test/core/simd/meta/simd_i64x2_arith.py b/test/core/simd/meta/simd_i64x2_arith.py new file mode 100644 index 000000000..898ea8b90 --- /dev/null +++ b/test/core/simd/meta/simd_i64x2_arith.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 + +""" +Generate i64x2 integer arithmetic operation cases. +""" + +from simd_arithmetic import SimdArithmeticCase + + +class SimdI64x2ArithmeticCase(SimdArithmeticCase): + + LANE_LEN = 2 + LANE_TYPE = 'i64x2' + + @property + def hex_binary_op_test_data(self): + return [ + ('0x3fffffffffffffff', '0x4000000000000000'), + ('0x4000000000000000', '0x4000000000000000'), + ('-0x3fffffffffffffff', '-0x40000000fffffff'), + ('-0x4000000000000000', '-0x400000000000000'), + ('-0x4000000000000000', '-0x400000000000001'), + ('0x7fffffffffffffff', '0x7ffffffffffffff'), + ('0x7fffffffffffffff', '0x01'), + ('0x8000000000000000', '-0x01'), + ('0x7fffffffffffffff', '0x8000000000000000'), + ('0x8000000000000000', '0x8000000000000000'), + ('0xffffffffffffffff', '0x01'), + ('0xffffffffffffffff', '0xffffffffffffffff') + ] + + @property + def hex_unary_op_test_data(self): + return ['0x01', '-0x01', '-0x8000000000000000', '-0x7fffffffffffffff', + '0x7fffffffffffffff', '0x8000000000000000', '0xffffffffffffffff'] + + @property + def i64x2_i8x16_test_data(self): + """This test data will be intepreted by the SIMD.v128_const() method in simd.py.""" + return { + 'i64x2.add': [ + [['0x7fffffffffffffff', ['0', '0', '0', '0', '0', '0', '0', '0x80'] * 2], '-1', + ['i64x2', 'i8x16', 'i64x2']], + [['1', '255'], '0', ['i64x2', 'i8x16', 'i64x2']] + ], + 'i64x2.sub': [ + [['0x7fffffffffffffff', ['0', '0', '0', '0', '0', '0', '0', '0x80'] * 2], '-1', + ['i64x2', 'i8x16', 'i64x2']], + [['1', '255'], '2', ['i64x2', 'i8x16', 'i64x2']] + ], + 'i64x2.mul': [ + [['0x8000000000000000', '0x2'], '0', ['i64x2', 'i8x16', 'i64x2']], + [['0xffffffffffffffff', '255'], '1', ['i64x2', 'i8x16', 'i64x2']] + ] + } + + @property + def i64x2_i16x8_test_data(self): + """This test data will be intepreted by the SIMD.v128_const() method in simd.py.""" + return { + 'i64x2.add': [ + [['0x7fffffffffffffff', ['0', '0', '0', '0x8000'] * 2], '-1', ['i64x2', 'i16x8', 'i64x2']], + [['1', '0xffff'], '0', ['i64x2', 'i16x8', 'i64x2']] + ], + 'i64x2.sub': [ + [['0x7fffffffffffffff', ['0', '0', '0', '0x8000'] * 2], '-1', ['i64x2', 'i16x8', 'i64x2']], + [['1', '0xffff'], '2', ['i64x2', 'i16x8', 'i64x2']] + ], + 'i64x2.mul': [ + [['0x8000000000000000', ['0', '0', '0', '0x02'] * 4], '0', ['i64x2', 'i16x8', 'i64x2']], + [['0xffffffffffffffff', '0xffff'], '1', ['i64x2', 'i16x8', 'i64x2']] + ] + } + + @property + def i64x2_i32x4_test_data(self): + """This test data will be intepreted by the SIMD.v128_const() method in simd.py.""" + return { + 'i64x2.add': [ + [['0x7fffffffffffffff', ['0', '0x80000000'] * 2], '-1', ['i64x2', 'i32x4', 'i64x2']], + [['1', '0xffffffff'], '0', ['i64x2', 'i32x4', 'i64x2']] + ], + 'i64x2.sub': [ + [['0x7fffffffffffffff', ['0', '0x80000000'] * 2], '-1', ['i64x2', 'i32x4', 'i64x2']], + [['1', '0xffffffff'], '2', ['i64x2', 'i32x4', 'i64x2']] + ], + 'i64x2.mul': [ + [['0x8000000000000000', ['0', '0x02'] * 2], '0', ['i64x2', 'i32x4', 'i64x2']], + [['0xffffffffffffffff', '0xffffffff'], '1', ['i64x2', 'i32x4', 'i64x2']] + ] + } + + @property + def i64x2_f64x2_test_data(self): + """This test data will be intepreted by the SIMD.v128_const() method in simd.py.""" + return { + 'i64x2.add': [ + [['0x8000000000000000', '+0.0'], '0x8000000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x8000000000000000', '-0.0'], '0', ['i64x2', 'f64x2', 'i64x2']], + [['0x8000000000000000', '1.0'], '0xbff0000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x8000000000000000', '-1.0'], '0x3ff0000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['1', '+inf'], '0x7ff0000000000001', ['i64x2', 'f64x2', 'i64x2']], + [['1', '-inf'], '0xfff0000000000001', ['i64x2', 'f64x2', 'i64x2']], + [['1', 'nan'], '0x7ff8000000000001', ['i64x2', 'f64x2', 'i64x2']] + ], + 'i64x2.sub': [ + [['0x8000000000000000', '+0.0'], '0x8000000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x8000000000000000', '-0.0'], '0', ['i64x2', 'f64x2', 'i64x2']], + [['0x8000000000000000', '1.0'], '0x4010000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x8000000000000000', '-1.0'], '0xc010000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x1', '+inf'], '0x8010000000000001', ['i64x2', 'f64x2', 'i64x2']], + [['0x1', '-inf'], '0x0010000000000001', ['i64x2', 'f64x2', 'i64x2']], + [['0x1', 'nan'], '0x8008000000000001', ['i64x2', 'f64x2', 'i64x2']] + ], + 'i64x2.mul': [ + [['0x80000000', '+0.0'], '0', ['i64x2', 'f64x2', 'i64x2']], + [['0x80000000', '-0.0'], '0', ['i64x2', 'f64x2', 'i64x2']], + [['0x80000000', '1.0'], '0', ['i64x2', 'f64x2', 'i64x2']], + [['0x80000000', '-1.0'], '0', ['i64x2', 'f64x2', 'i64x2']], + [['0x1', '+inf'], '0x7ff0000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x1', '-inf'], '0xfff0000000000000', ['i64x2', 'f64x2', 'i64x2']], + [['0x1', 'nan'], '0x7ff8000000000000', ['i64x2', 'f64x2', 'i64x2']] + ] + } + + @property + def combine_dec_hex_test_data(self): + """This test data will be intepreted by the SIMD.v128_const() method in simd.py.""" + return { + 'i64x2.add': [ + [[['0', '1'], ['0', '0xffffffffffffffff']], ['0'] * 2, ['i64x2'] * 3] + ], + 'i64x2.sub': [ + [[['0', '1'], ['0', '0xffffffffffffffff']], ['0', '0x02'], ['i64x2'] * 3] + ], + 'i64x2.mul': [ + [[['0', '1'], ['0', '0xffffffffffffffff']], ['0', '0xffffffffffffffff'], ['i64x2'] * 3] + ] + } + + @property + def range_test_data(self): + """This test data will be intepreted by the SIMD.v128_const() method in simd.py.""" + return { + 'i64x2.add': [ + [[[str(i) for i in range(2)], [str(i * 2) for i in range(2)]], + [str(i * 3) for i in range(2)], ['i64x2'] * 3] + ], + 'i64x2.sub': [ + [[[str(i) for i in range(2)], [str(i * 2) for i in range(2)]], + [str(-i) for i in range(2)], ['i64x2'] * 3] + ], + 'i64x2.mul': [ + [[[str(i) for i in range(2)], [str(i * 2) for i in range(4)]], + ['0', '0x02'], ['i64x2'] * 3] + ] + } + + @property + def full_bin_test_data(self): + return [ + self.i64x2_i8x16_test_data, + self.i64x2_i16x8_test_data, + self.i64x2_i32x4_test_data, + self.i64x2_f64x2_test_data, + self.combine_dec_hex_test_data, + self.range_test_data + ] + + +def gen_test_cases(): + simd_i64x2_arith = SimdI64x2ArithmeticCase() + simd_i64x2_arith.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/simd_f64x2_arith.wast b/test/core/simd/simd_f64x2_arith.wast new file mode 100644 index 000000000..560340670 --- /dev/null +++ b/test/core/simd/simd_f64x2_arith.wast @@ -0,0 +1,4430 @@ +;; Tests for f64x2 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "f64x2.add") (param v128 v128) (result v128) (f64x2.add (local.get 0) (local.get 1))) + (func (export "f64x2.sub") (param v128 v128) (result v128) (f64x2.sub (local.get 0) (local.get 1))) + (func (export "f64x2.mul") (param v128 v128) (result v128) (f64x2.mul (local.get 0) (local.get 1))) + (func (export "f64x2.div") (param v128 v128) (result v128) (f64x2.div (local.get 0) (local.get 1))) + (func (export "f64x2.neg") (param v128) (result v128) (f64x2.neg (local.get 0))) + (func (export "f64x2.sqrt") (param v128) (result v128) (f64x2.sqrt (local.get 0))) +) + +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf))) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf))) +(assert_return (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.add" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.fffffffffffffp-1022 0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.fffffffffffffp-1022 0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000001p-1022 -0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000001p-1022 -0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.721fb54442d18p+2 0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.b21fb54442d18p+2 0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.521fb54442d18p+2 0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.d21fb54442d18p+2 0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.b21fb54442d18p+2 -0x1.b21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.721fb54442d18p+2 -0x1.721fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.d21fb54442d18p+2 -0x1.d21fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.521fb54442d18p+2 -0x1.521fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x0.fffffffffffffp-1022 -0x0.fffffffffffffp-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000001p-1022 0x1.0000000000001p-1022)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf))) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sub" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf))) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf))) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-2 0x1.0000000000000p-2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-2 -0x1.0000000000000p-2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x0.8000000000000p-1022 -0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x0.8000000000000p-1022 0x0.8000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-2 -0x1.0000000000000p-2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-2 0x1.0000000000000p-2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.3bd3cc9be45dep+5 0x1.3bd3cc9be45dep+5)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.3bd3cc9be45dep+5 -0x1.3bd3cc9be45dep+5)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.921fb54442d18p-1020 -0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.921fb54442d18p-1020 0x1.921fb54442d18p-1020)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.921fb54442d18p+1 -0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.921fb54442d18p+1 0x1.921fb54442d18p+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.3bd3cc9be45dep+5 -0x1.3bd3cc9be45dep+5)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.3bd3cc9be45dep+5 0x1.3bd3cc9be45dep+5)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp+1 -0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.fffffffffffffp+1 0x1.fffffffffffffp+1)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.fffffffffffffp+1022 -0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.fffffffffffffp+1022 0x1.fffffffffffffp+1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0000000000006p-1022 0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0000000000006p-1022 -0x0.0000000000006p-1022)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp-51 0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp-51 -0x1.fffffffffffffp-51)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -inf -inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.mul" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.28be60db93910p-1022 0x0.28be60db93910p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.28be60db93910p-1022 -0x0.28be60db93910p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+52 0x1.0000000000000p+52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+52 0x1.0000000000000p+52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1021 -0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1021 0x1.0000000000000p-1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.28be60db93910p-1022 -0x0.28be60db93910p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.28be60db93910p-1022 0x0.28be60db93910p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p+52 -0x1.0000000000000p+52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x1.0000000000000p+52 -0x1.0000000000000p+52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+1021 0x1.0000000000000p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+1021 -0x1.0000000000000p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.45f306dc9c883p-4 0x1.45f306dc9c883p-4)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.45f306dc9c883p-4 -0x1.45f306dc9c883p-4)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.2000000000000p-1022 0x0.2000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.2000000000000p-1022 -0x0.2000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+1021 -0x1.0000000000000p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+1021 0x1.0000000000000p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.45f306dc9c883p-4 -0x1.45f306dc9c883p-4)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.45f306dc9c883p-4 0x1.45f306dc9c883p-4)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.2000000000000p-1022 -0x0.2000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.2000000000000p-1022 0x0.2000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+1022 0x1.0000000000000p+1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+1022 -0x1.0000000000000p+1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.45f306dc9c883p-3 0x1.45f306dc9c883p-3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.45f306dc9c883p-3 -0x1.45f306dc9c883p-3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.4000000000000p-1022 0x0.4000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.4000000000000p-1022 -0x0.4000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p+1022 -0x1.0000000000000p+1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p+1022 0x1.0000000000000p+1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.45f306dc9c883p-3 -0x1.45f306dc9c883p-3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.45f306dc9c883p-3 0x1.45f306dc9c883p-3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.4000000000000p-1022 -0x0.4000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.4000000000000p-1022 0x0.4000000000000p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.921fb54442d19p-1022 0x1.921fb54442d19p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.921fb54442d19p-1022 -0x1.921fb54442d19p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.921fb54442d18p+3 -0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.921fb54442d18p+3 0x1.921fb54442d18p+3)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.921fb54442d19p-1022 -0x1.921fb54442d19p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.921fb54442d19p-1022 0x1.921fb54442d19p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.45f306dc9c882p+1021 0x1.45f306dc9c882p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.45f306dc9c882p+1021 -0x1.45f306dc9c882p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.45f306dc9c882p+1021 -0x1.45f306dc9c882p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.45f306dc9c882p+1021 0x1.45f306dc9c882p+1021)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-52 0x1.0000000000000p-52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-52 -0x1.0000000000000p-52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.0000000000002p-1022 -0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-52 0x1.0000000000000p-52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-52 -0x1.0000000000000p-52)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x0.0000000000002p-1022 0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -0x0.0000000000002p-1022 -0x0.0000000000002p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 inf inf)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 inf inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf))) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -inf -inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.div" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 -0x0p+0 -0x0p+0)) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-511 0x1.0000000000000p-511)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -0x1p-1022 -0x1p-1022))) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 0x1.6a09e667f3bcdp-1 0x1.6a09e667f3bcdp-1)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -0x1p-1 -0x1p-1))) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -0x1p+0 -0x1p+0))) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.40d931ff62705p+1 0x1.40d931ff62705p+1)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2))) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+511 0x1.fffffffffffffp+511)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023))) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p-537 0x1.0000000000000p-537)) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 0x1.0000000000000p-537 0x1.0000000000000p-537)) +(assert_return (invoke "f64x2.sqrt" (v128.const f64x2 inf inf)) + (v128.const f64x2 inf inf)) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -inf -inf))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 nan nan))) +(assert_return_canonical_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -nan -nan))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000))) +(assert_return_arithmetic_nan_f64x2 (invoke "f64x2.sqrt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000))) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const f64x2 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const f64x2 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const f64x2 -0x1.0000000000000p-1022 -0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const f64x2 0x1.0000000000000p-1022 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const f64x2 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const f64x2 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const f64x2 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const f64x2 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) + (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 inf inf)) + (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -inf -inf)) + (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 nan nan)) + (v128.const f64x2 -nan -nan)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -nan -nan)) + (v128.const f64x2 nan nan)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) +(assert_return (invoke "f64x2.neg" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + +;; Mixed f64x2 tests when some lanes are NaNs +(module + (type $v_v (func (param v128) (result v128))) + (type $vv_v (func (param v128 v128) (result v128))) + (table funcref (elem $64x2_neg $64x2_sqrt $64x2_add $64x2_sub $64x2_mul $64x2_div)) + + (func $64x2_neg (type $v_v) (f64x2.neg (local.get 0))) + (func $64x2_sqrt (type $v_v) (f64x2.sqrt (local.get 0))) + (func $64x2_add (type $vv_v) (f64x2.add (local.get 0) (local.get 1))) + (func $64x2_sub (type $vv_v) (f64x2.sub (local.get 0) (local.get 1))) + (func $64x2_mul (type $vv_v) (f64x2.mul (local.get 0) (local.get 1))) + (func $64x2_div (type $vv_v) (f64x2.div (local.get 0) (local.get 1))) + + (func (export "call_indirect_v_v_f64x2_extract_lane_0") + (param v128 i32) (result f64) + (f64x2.extract_lane 0 + (call_indirect (type $v_v) (local.get 0) (local.get 1)))) + (func (export "call_indirect_vv_v_f64x2_extract_lane_0") + (param v128 v128 i32) (result f64) + (f64x2.extract_lane 0 + (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2)))) + (func (export "call_indirect_v_v_f64x2_extract_lane_1") + (param v128 i32) (result f64) + (f64x2.extract_lane 1 + (call_indirect (type $v_v) (local.get 0) (local.get 1)))) + (func (export "call_indirect_vv_v_f64x2_extract_lane_1") + (param v128 v128 i32) (result f64) + (f64x2.extract_lane 1 + (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2)))) +) +(assert_return_canonical_nan (invoke "call_indirect_v_v_f64x2_extract_lane_0" (v128.const f64x2 nan 1.0) (i32.const 0))) +(assert_return (invoke "call_indirect_v_v_f64x2_extract_lane_1" (v128.const f64x2 nan 1.0) (i32.const 0)) (f64.const -1.0)) +(assert_return (invoke "call_indirect_v_v_f64x2_extract_lane_0" (v128.const f64x2 4.0 -nan) (i32.const 1)) (f64.const 2.0)) +(assert_return_canonical_nan (invoke "call_indirect_v_v_f64x2_extract_lane_1" (v128.const f64x2 4.0 -nan) (i32.const 1))) +(assert_return_canonical_nan (invoke "call_indirect_vv_v_f64x2_extract_lane_0" (v128.const f64x2 nan 1.0) (v128.const f64x2 -1.0 1.0) (i32.const 2))) +(assert_return (invoke "call_indirect_vv_v_f64x2_extract_lane_1" (v128.const f64x2 nan 1.0) (v128.const f64x2 -1.0 1.0) (i32.const 2)) (f64.const 2.0)) +(assert_return_canonical_nan (invoke "call_indirect_vv_v_f64x2_extract_lane_0" (v128.const f64x2 1.0 -1.0) (v128.const f64x2 -nan 1.0) (i32.const 3))) +(assert_return (invoke "call_indirect_vv_v_f64x2_extract_lane_1" (v128.const f64x2 1.0 -1.0) (v128.const f64x2 -nan 1.0) (i32.const 3)) (f64.const -2.0)) +(assert_return_canonical_nan (invoke "call_indirect_vv_v_f64x2_extract_lane_0" (v128.const f64x2 1.0 2.0) (v128.const f64x2 nan 2.0) (i32.const 4))) +(assert_return (invoke "call_indirect_vv_v_f64x2_extract_lane_1" (v128.const f64x2 1.0 2.0) (v128.const f64x2 nan 2.0) (i32.const 4)) (f64.const 4.0)) +(assert_return (invoke "call_indirect_vv_v_f64x2_extract_lane_0" (v128.const f64x2 6.0 nan) (v128.const f64x2 3.0 -nan) (i32.const 5)) (f64.const 2.0)) +(assert_return_canonical_nan (invoke "call_indirect_vv_v_f64x2_extract_lane_1" (v128.const f64x2 6.0 nan) (v128.const f64x2 3.0 -nan) (i32.const 5))) + +;; type check +(assert_invalid (module (func (result v128) (f64x2.neg (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.sqrt (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.add (i64.const 0) (f64.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.sub (i64.const 0) (f64.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.mul (i64.const 0) (f64.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.div (i64.const 0) (f64.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "add-sub") (param v128 v128 v128) (result v128) + (f64x2.add (f64x2.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "div-add") (param v128 v128 v128) (result v128) + (f64x2.div (f64x2.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "div-mul") (param v128 v128 v128) (result v128) + (f64x2.div (f64x2.mul (local.get 0) (local.get 1))(local.get 2))) + (func (export "div-sub") (param v128 v128 v128) (result v128) + (f64x2.div (f64x2.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-add") (param v128 v128 v128) (result v128) + (f64x2.mul (f64x2.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-div") (param v128 v128 v128) (result v128) + (f64x2.mul (f64x2.div (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-sub") (param v128 v128 v128) (result v128) + (f64x2.mul (f64x2.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "sub-add") (param v128 v128 v128) (result v128) + (f64x2.sub (f64x2.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "add-neg") (param v128 v128) (result v128) + (f64x2.add (f64x2.neg (local.get 0)) (local.get 1))) + (func (export "add-sqrt") (param v128 v128) (result v128) + (f64x2.add (f64x2.sqrt (local.get 0)) (local.get 1))) + (func (export "div-neg") (param v128 v128) (result v128) + (f64x2.div (f64x2.neg (local.get 0)) (local.get 1))) + (func (export "div-sqrt") (param v128 v128) (result v128) + (f64x2.div (f64x2.sqrt (local.get 0)) (local.get 1))) + (func (export "mul-neg") (param v128 v128) (result v128) + (f64x2.mul (f64x2.neg (local.get 0)) (local.get 1))) + (func (export "mul-sqrt") (param v128 v128) (result v128) + (f64x2.mul (f64x2.sqrt (local.get 0)) (local.get 1))) + (func (export "sub-neg") (param v128 v128) (result v128) + (f64x2.sub (f64x2.neg (local.get 0)) (local.get 1))) + (func (export "sub-sqrt") (param v128 v128) (result v128) + (f64x2.sub (f64x2.sqrt (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "add-sub" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.25 0.25) + (v128.const f64x2 0.125 0.125)) + (v128.const f64x2 1.0 1.0)) +(assert_return (invoke "div-add" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.125 0.125) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 5.0 5.0)) +(assert_return (invoke "div-mul" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 4 4) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 18.0 18.0)) +(assert_return (invoke "div-sub" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.125 0.125) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 4.0 4.0)) +(assert_return (invoke "mul-add" (v128.const f64x2 1.25 1.25) + (v128.const f64x2 0.25 0.25) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 0.375 0.375)) +(assert_return (invoke "mul-div" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.125 0.125) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 2.25 2.25)) +(assert_return (invoke "mul-sub" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.125 0.125) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 0.25 0.25)) +(assert_return (invoke "sub-add" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.25 0.25) + (v128.const f64x2 0.125 0.125)) + (v128.const f64x2 1.25 1.25)) +(assert_return (invoke "add-neg" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.125 0.125)) + (v128.const f64x2 -1.0 -1.0)) +(assert_return (invoke "add-sqrt" (v128.const f64x2 2.25 2.25) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 1.75 1.75)) +(assert_return (invoke "div-neg" (v128.const f64x2 1.5 1.5) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 -6 -6)) +(assert_return (invoke "div-sqrt" (v128.const f64x2 2.25 2.25) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 6 6)) +(assert_return (invoke "mul-neg" (v128.const f64x2 1.5 1.5) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 -0.375 -0.375)) +(assert_return (invoke "mul-sqrt" (v128.const f64x2 2.25 2.25) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 0.375 0.375)) +(assert_return (invoke "sub-neg" (v128.const f64x2 1.125 1.125) + (v128.const f64x2 0.125 0.125)) + (v128.const f64x2 -1.25 -1.25)) +(assert_return (invoke "sub-sqrt" (v128.const f64x2 2.25 2.25) + (v128.const f64x2 0.25 0.25)) + (v128.const f64x2 1.25 1.25)) \ No newline at end of file diff --git a/test/core/simd/simd_i64x2_arith.wast b/test/core/simd/simd_i64x2_arith.wast new file mode 100644 index 000000000..41e4c187f --- /dev/null +++ b/test/core/simd/simd_i64x2_arith.wast @@ -0,0 +1,575 @@ +;; Tests for i64x2 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "i64x2.add") (param v128 v128) (result v128) (i64x2.add (local.get 0) (local.get 1))) + (func (export "i64x2.sub") (param v128 v128) (result v128) (i64x2.sub (local.get 0) (local.get 1))) + (func (export "i64x2.mul") (param v128 v128) (result v128) (i64x2.mul (local.get 0) (local.get 1))) + (func (export "i64x2.neg") (param v128) (result v128) (i64x2.neg (local.get 0))) +) + + +;; i64x2.add +(assert_return (invoke "i64x2.add" (v128.const i64x2 0 0) + (v128.const i64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0 0) + (v128.const i64x2 1 1)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const i64x2 1 1)) + (v128.const i64x2 2 2)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0 0) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -1 -1) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 4611686018427387903 4611686018427387903) + (v128.const i64x2 4611686018427387904 4611686018427387904)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 4611686018427387904 4611686018427387904) + (v128.const i64x2 4611686018427387904 4611686018427387904)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -4611686018427387903 -4611686018427387903) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -4611686018427387904 -4611686018427387904) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -4611686018427387905 -4611686018427387905) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 9223372036854775805 9223372036854775805) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775806 9223372036854775806)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 9223372036854775806 9223372036854775806) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 9223372036854775808 9223372036854775808) + (v128.const i64x2 1 1)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -9223372036854775806 -9223372036854775806) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -9223372036854775807 -9223372036854775807) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 9223372036854775807 9223372036854775807) + (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 9223372036854775806 9223372036854775806)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 18446744073709551615 18446744073709551615)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x3fffffffffffffff 0x3fffffffffffffff) + (v128.const i64x2 0x4000000000000000 0x4000000000000000)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x4000000000000000 0x4000000000000000) + (v128.const i64x2 0x4000000000000000 0x4000000000000000)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -0x3fffffffffffffff -0x3fffffffffffffff) + (v128.const i64x2 -0x40000000fffffff -0x40000000fffffff)) + (v128.const i64x2 -4899916394847535102 -4899916394847535102)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -0x4000000000000000 -0x4000000000000000) + (v128.const i64x2 -0x400000000000000 -0x400000000000000)) + (v128.const i64x2 -4899916394579099648 -4899916394579099648)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 -0x4000000000000000 -0x4000000000000000) + (v128.const i64x2 -0x400000000000001 -0x400000000000001)) + (v128.const i64x2 -4899916394579099649 -4899916394579099649)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x7ffffffffffffff 0x7ffffffffffffff)) + (v128.const i64x2 -8646911284551352322 -8646911284551352322)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i64x2 -0x01 -0x01)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i8x16 0 0 0 0 0 0 0 0x80 0 0 0 0 0 0 0 0x80)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i16x8 0 0 0 0x8000 0 0 0 0x8000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i32x4 0 0x80000000 0 0x80000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 +0.0 +0.0)) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 -0.0 -0.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 1.0 1.0)) + (v128.const i64x2 0xbff0000000000000 0xbff0000000000000)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 -1.0 -1.0)) + (v128.const i64x2 0x3ff0000000000000 0x3ff0000000000000)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const f64x2 +inf +inf)) + (v128.const i64x2 0x7ff0000000000001 0x7ff0000000000001)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0xfff0000000000001 0xfff0000000000001)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 1 1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0x7ff8000000000001 0x7ff8000000000001)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0 1) + (v128.const i64x2 0 0xffffffffffffffff)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.add" (v128.const i64x2 0 1) + (v128.const i64x2 0 2)) + (v128.const i64x2 0 3)) + +;; i64x2.sub +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0 0) + (v128.const i64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0 0) + (v128.const i64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 1 1) + (v128.const i64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0 0) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 1 1) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 2 2)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -1 -1) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 4611686018427387903 4611686018427387903) + (v128.const i64x2 4611686018427387904 4611686018427387904)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 4611686018427387904 4611686018427387904) + (v128.const i64x2 4611686018427387904 4611686018427387904)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -4611686018427387903 -4611686018427387903) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -4611686018427387904 -4611686018427387904) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -4611686018427387905 -4611686018427387905) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 9223372036854775805 9223372036854775805) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775804 9223372036854775804)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 9223372036854775806 9223372036854775806) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775805 9223372036854775805)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 9223372036854775808 9223372036854775808) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -9223372036854775806 -9223372036854775806) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -9223372036854775805 -9223372036854775805)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -9223372036854775807 -9223372036854775807) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -9223372036854775806 -9223372036854775806)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 9223372036854775807 9223372036854775807) + (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 1 1)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 18446744073709551615 18446744073709551615)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x3fffffffffffffff 0x3fffffffffffffff) + (v128.const i64x2 0x4000000000000000 0x4000000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x4000000000000000 0x4000000000000000) + (v128.const i64x2 0x4000000000000000 0x4000000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -0x3fffffffffffffff -0x3fffffffffffffff) + (v128.const i64x2 -0x40000000fffffff -0x40000000fffffff)) + (v128.const i64x2 -4323455642007240704 -4323455642007240704)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -0x4000000000000000 -0x4000000000000000) + (v128.const i64x2 -0x400000000000000 -0x400000000000000)) + (v128.const i64x2 -4323455642275676160 -4323455642275676160)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 -0x4000000000000000 -0x4000000000000000) + (v128.const i64x2 -0x400000000000001 -0x400000000000001)) + (v128.const i64x2 -4323455642275676159 -4323455642275676159)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x7ffffffffffffff 0x7ffffffffffffff)) + (v128.const i64x2 8646911284551352320 8646911284551352320)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 9223372036854775806 9223372036854775806)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i64x2 -0x01 -0x01)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 -2 -2)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i8x16 0 0 0 0 0 0 0 0x80 0 0 0 0 0 0 0 0x80)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 1 1) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i64x2 2 2)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i16x8 0 0 0 0x8000 0 0 0 0x8000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 1 1) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i64x2 2 2)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i32x4 0 0x80000000 0 0x80000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 1 1) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i64x2 2 2)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 +0.0 +0.0)) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 -0.0 -0.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 1.0 1.0)) + (v128.const i64x2 0x4010000000000000 0x4010000000000000)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const f64x2 -1.0 -1.0)) + (v128.const i64x2 0xc010000000000000 0xc010000000000000)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x1 0x1) + (v128.const f64x2 +inf +inf)) + (v128.const i64x2 0x8010000000000001 0x8010000000000001)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x1 0x1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0x0010000000000001 0x0010000000000001)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0x1 0x1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0x8008000000000001 0x8008000000000001)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0 1) + (v128.const i64x2 0 0xffffffffffffffff)) + (v128.const i64x2 0 0x02)) +(assert_return (invoke "i64x2.sub" (v128.const i64x2 0 1) + (v128.const i64x2 0 2)) + (v128.const i64x2 0 -1)) + +;; i64x2.mul +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0 0) + (v128.const i64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0 0) + (v128.const i64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 1 1) + (v128.const i64x2 1 1)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0 0) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 1 1) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -1 -1) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 4611686018427387903 4611686018427387903) + (v128.const i64x2 4611686018427387904 4611686018427387904)) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 4611686018427387904 4611686018427387904) + (v128.const i64x2 4611686018427387904 4611686018427387904)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -4611686018427387903 -4611686018427387903) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -4611686018427387904 -4611686018427387904) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -4611686018427387905 -4611686018427387905) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) + (v128.const i64x2 4611686018427387904 4611686018427387904)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 9223372036854775805 9223372036854775805) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775805 9223372036854775805)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 9223372036854775806 9223372036854775806) + (v128.const i64x2 1 1)) + (v128.const i64x2 9223372036854775806 9223372036854775806)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 9223372036854775808 9223372036854775808) + (v128.const i64x2 1 1)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -9223372036854775806 -9223372036854775806) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 9223372036854775806 9223372036854775806)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -9223372036854775807 -9223372036854775807) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 9223372036854775807 9223372036854775807) + (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -9223372036854775808 -9223372036854775808) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 -1 -1)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 18446744073709551615 18446744073709551615) + (v128.const i64x2 18446744073709551615 18446744073709551615)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x3fffffffffffffff 0x3fffffffffffffff) + (v128.const i64x2 0x4000000000000000 0x4000000000000000)) + (v128.const i64x2 -4611686018427387904 -4611686018427387904)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x4000000000000000 0x4000000000000000) + (v128.const i64x2 0x4000000000000000 0x4000000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -0x3fffffffffffffff -0x3fffffffffffffff) + (v128.const i64x2 -0x40000000fffffff -0x40000000fffffff)) + (v128.const i64x2 -4899916394847535103 -4899916394847535103)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -0x4000000000000000 -0x4000000000000000) + (v128.const i64x2 -0x400000000000000 -0x400000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 -0x4000000000000000 -0x4000000000000000) + (v128.const i64x2 -0x400000000000001 -0x400000000000001)) + (v128.const i64x2 4611686018427387904 4611686018427387904)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x7ffffffffffffff 0x7ffffffffffffff)) + (v128.const i64x2 8646911284551352321 8646911284551352321)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i64x2 -0x01 -0x01)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i8x16 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2 0x2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i16x8 0 0 0 0x02 0 0 0 0x02)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x8000000000000000 0x8000000000000000) + (v128.const i32x4 0 0x02 0 0x02)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x80000000 0x80000000) + (v128.const f64x2 +0.0 +0.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x80000000 0x80000000) + (v128.const f64x2 -0.0 -0.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x80000000 0x80000000) + (v128.const f64x2 1.0 1.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x80000000 0x80000000) + (v128.const f64x2 -1.0 -1.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x1 0x1) + (v128.const f64x2 +inf +inf)) + (v128.const i64x2 0x7ff0000000000000 0x7ff0000000000000)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x1 0x1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0xfff0000000000000 0xfff0000000000000)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0x1 0x1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0x7ff8000000000000 0x7ff8000000000000)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0 1) + (v128.const i64x2 0 0xffffffffffffffff)) + (v128.const i64x2 0 0xffffffffffffffff)) +(assert_return (invoke "i64x2.mul" (v128.const i64x2 0 1) + (v128.const i64x2 0 2)) + (v128.const i64x2 0 0x02)) + +;; i64x2.neg +(assert_return (invoke "i64x2.neg" (v128.const i64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 -1 -1)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 9223372036854775806 9223372036854775806)) + (v128.const i64x2 -9223372036854775806 -9223372036854775806)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 -9223372036854775807 -9223372036854775807)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 -9223372036854775808 -9223372036854775808)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 9223372036854775807 9223372036854775807)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 18446744073709551615 18446744073709551615)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 0x01 0x01)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 -0x01 -0x01)) + (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 -0x8000000000000000 -0x8000000000000000)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 -0x7fffffffffffffff -0x7fffffffffffffff)) + (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff)) + (v128.const i64x2 -9223372036854775807 -9223372036854775807)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.neg" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) + (v128.const i64x2 1 1)) + +;; type check +(assert_invalid (module (func (result v128) (i64x2.neg (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i64x2.add (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i64x2.sub (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i64x2.mul (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "add-sub") (param v128 v128 v128) (result v128) + (i64x2.add (i64x2.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-add") (param v128 v128 v128) (result v128) + (i64x2.mul (i64x2.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-sub") (param v128 v128 v128) (result v128) + (i64x2.mul (i64x2.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "sub-add") (param v128 v128 v128) (result v128) + (i64x2.sub (i64x2.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "add-neg") (param v128 v128) (result v128) + (i64x2.add (i64x2.neg (local.get 0)) (local.get 1))) + (func (export "mul-neg") (param v128 v128) (result v128) + (i64x2.mul (i64x2.neg (local.get 0)) (local.get 1))) + (func (export "sub-neg") (param v128 v128) (result v128) + (i64x2.sub (i64x2.neg (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "add-sub" (v128.const i64x2 0 1) + (v128.const i64x2 0 2) + (v128.const i64x2 0 2)) + (v128.const i64x2 0 1)) +(assert_return (invoke "mul-add" (v128.const i64x2 0 1) + (v128.const i64x2 0 1) + (v128.const i64x2 2 2)) + (v128.const i64x2 0 4)) +(assert_return (invoke "mul-sub" (v128.const i64x2 0 2) + (v128.const i64x2 0 1) + (v128.const i64x2 0 1)) + (v128.const i64x2 0 1)) +(assert_return (invoke "sub-add" (v128.const i64x2 0 1) + (v128.const i64x2 0 2) + (v128.const i64x2 0 2)) + (v128.const i64x2 0 1)) +(assert_return (invoke "add-neg" (v128.const i64x2 0 1) + (v128.const i64x2 0 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "mul-neg" (v128.const i64x2 0 1) + (v128.const i64x2 2 2)) + (v128.const i64x2 0 -2)) +(assert_return (invoke "sub-neg" (v128.const i64x2 0 1) + (v128.const i64x2 0 1)) + (v128.const i64x2 0 -2)) \ No newline at end of file