From e99a8504f2acfb132fa5038f357d60df97a14a55 Mon Sep 17 00:00:00 2001 From: Wanming Lin Date: Sat, 19 Oct 2019 09:28:31 +0800 Subject: [PATCH] Integrate latest spec tests from WAVM Tests have been verified through WAVM CI. --- test/core/simd/meta/README.md | 9 + test/core/simd/meta/gen_tests.py | 14 +- test/core/simd/meta/simd.py | 27 +- test/core/simd/meta/simd_arithmetic.py | 416 ++ test/core/simd/meta/simd_bitwise.py | 402 ++ test/core/simd/meta/simd_f32x4.py | 489 ++ test/core/simd/meta/simd_f32x4_arith.py | 377 ++ test/core/simd/meta/simd_f64x2_cmp.py | 314 + test/core/simd/meta/simd_i16x8_arith.py | 158 + test/core/simd/meta/simd_i32x4_arith.py | 158 + test/core/simd/meta/simd_i8x16_arith.py | 148 + test/core/simd/meta/simd_sat_arith.py | 421 ++ test/core/simd/meta/test_assert.py | 10 +- test/core/simd/simd_bit_shift.wast | 943 +++ test/core/simd/simd_bitwise.wast | 566 ++ test/core/simd/simd_boolean.wast | 950 +++ test/core/simd/simd_conversions.wast | 1156 ++++ test/core/simd/simd_f32x4.wast | 2430 +++++++ test/core/simd/simd_f32x4_arith.wast | 4441 ++++++++++++ test/core/simd/simd_f64x2_cmp.wast | 7788 ++++++++++++++++++++++ test/core/simd/simd_i16x8_arith.wast | 557 ++ test/core/simd/simd_i16x8_sat_arith.wast | 627 ++ test/core/simd/simd_i32x4_arith.wast | 557 ++ test/core/simd/simd_i8x16_arith.wast | 383 ++ test/core/simd/simd_i8x16_sat_arith.wast | 651 ++ test/core/simd/simd_lane.wast | 210 +- test/core/simd/simd_load.wast | 16 +- test/core/simd/simd_load_splat.wast | 220 + test/core/simd/simd_splat.wast | 145 +- 29 files changed, 24519 insertions(+), 64 deletions(-) create mode 100644 test/core/simd/meta/simd_arithmetic.py create mode 100644 test/core/simd/meta/simd_bitwise.py create mode 100644 test/core/simd/meta/simd_f32x4.py create mode 100644 test/core/simd/meta/simd_f32x4_arith.py create mode 100644 test/core/simd/meta/simd_f64x2_cmp.py create mode 100644 test/core/simd/meta/simd_i16x8_arith.py create mode 100644 test/core/simd/meta/simd_i32x4_arith.py create mode 100644 test/core/simd/meta/simd_i8x16_arith.py create mode 100644 test/core/simd/meta/simd_sat_arith.py create mode 100644 test/core/simd/simd_bit_shift.wast create mode 100644 test/core/simd/simd_bitwise.wast create mode 100644 test/core/simd/simd_boolean.wast create mode 100644 test/core/simd/simd_conversions.wast create mode 100644 test/core/simd/simd_f32x4.wast create mode 100644 test/core/simd/simd_f32x4_arith.wast create mode 100644 test/core/simd/simd_f64x2_cmp.wast create mode 100644 test/core/simd/simd_i16x8_arith.wast create mode 100644 test/core/simd/simd_i16x8_sat_arith.wast create mode 100644 test/core/simd/simd_i32x4_arith.wast create mode 100644 test/core/simd/simd_i8x16_arith.wast create mode 100644 test/core/simd/simd_i8x16_sat_arith.wast create mode 100644 test/core/simd/simd_load_splat.wast diff --git a/test/core/simd/meta/README.md b/test/core/simd/meta/README.md index 74caa18a4..d4c202994 100644 --- a/test/core/simd/meta/README.md +++ b/test/core/simd/meta/README.md @@ -7,6 +7,15 @@ Currently it only support following simd test files generation. - 'simd_i16x8_cmp.wast' - 'simd_i32x4_cmp.wast' - 'simd_f32x4_cmp.wast' +- 'simd_f64x2_cmp.wast' +- 'simd_i8x16_arith.wast' +- 'simd_i16x8_arith.wast' +- 'simd_i32x4_arith.wast' +- 'simd_f32x4_arith.wast' +- 'simd_bitwise.wast' +- 'simd_i8x16_sat_arith.wast' +- 'simd_i16x8_sat_arith.wast' +- 'simd_f32x4.wast' Usage: diff --git a/test/core/simd/meta/gen_tests.py b/test/core/simd/meta/gen_tests.py index 1df5b11eb..b9f17a740 100644 --- a/test/core/simd/meta/gen_tests.py +++ b/test/core/simd/meta/gen_tests.py @@ -13,6 +13,14 @@ 'simd_i16x8_cmp', 'simd_i32x4_cmp', 'simd_f32x4_cmp', + 'simd_f64x2_cmp', + 'simd_i8x16_arith', + 'simd_i16x8_arith', + 'simd_i32x4_arith', + 'simd_f32x4_arith', + 'simd_sat_arith', + 'simd_bitwise', + 'simd_f32x4', ) @@ -24,6 +32,10 @@ def gen_group_tests(mod_name): def main(): + """ + Default program entry + """ + parser = argparse.ArgumentParser( description='Front-end script to call other modules to generate SIMD tests') parser.add_argument('-a', '--all', dest='gen_all', action='store_true', @@ -44,4 +56,4 @@ def main(): if __name__ == '__main__': main() - print('Done.') + print('Done.') \ No newline at end of file diff --git a/test/core/simd/meta/simd.py b/test/core/simd/meta/simd.py index 43e805b9d..3c2784d71 100644 --- a/test/core/simd/meta/simd.py +++ b/test/core/simd/meta/simd.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """ This python file is a tool class for SIMD and @@ -9,13 +8,31 @@ class SIMD(object): + # Constant template + CONST = '({}.const {})' + # v128 Constant template V128_CONST = '(v128.const {} {})' - # Params: - # val: constant data, string or list, - # lane_type: lane type, [i8x16, i16x8, i32x4, f32x4] + def const(self, val, lane_type): + """ + generation constant data, [e.g. i32, i64, f32, f64] + Params: + val: constant data, string or list, + lane_type: lane type, [i32, i64, f32, f64] + """ + return self.CONST.format(lane_type, ''.join(val)) + def v128_const(self, val, lane_type): + """ + generation v128 constant data, [e.g. i8x16, i16x8, i32x4, f32x4] + Params: + val: constant data, string or list, + lane_type: lane type, [e.g. i8x16, i16x8, i32x4, f32x4] + """ + + if lane_type.lower().find('x') == -1: + return self.const(val, lane_type) lane_cnt = int(lane_type[1:].split('x')[1]) @@ -63,4 +80,4 @@ def v128_const(self, val, lane_type): data_elem = ' '.join(data_elem) # Returns v128 constant text - return self.V128_CONST.format(lane_type, data_elem) + return self.V128_CONST.format(lane_type, data_elem) \ No newline at end of file diff --git a/test/core/simd/meta/simd_arithmetic.py b/test/core/simd/meta/simd_arithmetic.py new file mode 100644 index 000000000..ea349238e --- /dev/null +++ b/test/core/simd/meta/simd_arithmetic.py @@ -0,0 +1,416 @@ +#!/usr/bin/env python3 + +"""Base class for generating cases integer and floating-point numbers +arithmetic and saturate arithmetic operations. + +Class SimdArithmeticCase is the base class of all kinds of arithmetic +operation cases. It provides a skeleton to generate the normal, invalid and +combined cases. Subclasses only provide the test data sets. In some special +cases, you may need to override the methods in base class to fulfill your +case generation. + +Class LaneNumber and ArithmeticOp are used for calculating the results of +these arithmetic and saturate arithmetic operations. +""" + +from simd import SIMD +from test_assert import AssertReturn + + +class LaneNumber: + """This class stands for the number represented by a line in v128. + Suppose a bit length of the lane is n, then: + For signed integer: + minimum = -pow(2, n - 1), maximum = pow(2, n - 1) - 1 + For unsigned integer: + minimum = 0, maximum = pow(2, n) - 1 + The bit length of the lane can be 8, 16, 32, 64""" + def __init__(self, length): + """length: bit number of each lane in SIMD v128""" + self.lane_len = length + + @property + def min(self): + return -pow(2, self.lane_len - 1) + + @property + def max(self): + return pow(2, self.lane_len - 1) - 1 + + @property + def mask(self): + return pow(2, self.lane_len) - 1 + + @property + def mod(self): + return pow(2, self.lane_len) + + @property + def quarter(self): + return pow(2, self.lane_len - 2) + + +i8 = LaneNumber(8) +i16 = LaneNumber(16) +i32 = LaneNumber(32) +i64 = LaneNumber(64) + + +class ArithmeticOp: + """This class stands for an SIMD integer operator, with one or + more operands. The methods are some kind of arithmetic with the + operands. + """ + def __init__(self, op): + self.op = op + + @staticmethod + def get_valid_lane(value, lane): + """Get the valid integer number of value in the specified lane size. + """ + value &= lane.mask + if value > lane.max: + return value - lane.mod + if value < lane.min: + return value + lane.mod + return value + + def saturate(self, p1, p2, lane): + """Get the result of saturate arithmetic operation of 2 operands. + Supports both signed and unsigned number. + """ + if self.op.endswith('saturate_s'): + if p1 > lane.max: + p1 -= lane.mod + if p2 > lane.max: + p2 -= lane.mod + + if self.op.startswith('add'): + value = p1 + p2 + if self.op.startswith('sub'): + value = p1 - p2 + + if value > lane.max: + return lane.max + if value < lane.min: + return lane.min + + if self.op.endswith('saturate_u'): + if p1 < 0: + p1 += lane.mod + if p2 < 0: + p2 += lane.mod + if self.op.startswith('add'): + value = p1 + p2 + if self.op.startswith('sub'): + value = p1 - p2 + + if value > lane.mask: + return lane.mask + if value < 0: + return 0 + + return value + + def unary_op(self, p, lane): + """General unary arithmetic operation.""" + if isinstance(p, str) and '0x' in p: + p = int(p, base=16) + if self.op == 'neg': + value = -p + return self.get_valid_lane(value, lane) + + def binary_op(self, p1, p2, lane, float_repr=False): + """General binary arithmetic operation for 2 numbers.""" + if isinstance(p1, str) and '0x' in p1: + p1 = int(p1, base=16) + if isinstance(p2, str) and '0x' in p2: + p2 = int(p2, base=16) + + if float_repr: + p2 &= lane.mask + + if self.op == 'add': + value = (p1 + p2) + elif self.op == 'sub': + value = (p1 - p2) + elif self.op == 'mul': + value = (p1 * p2) + elif 'saturate' in self.op: + return self.saturate(p1, p2, lane) + else: + raise Exception('Unsupported operator: %s' % self.op) + + return self.get_valid_lane(value, lane) + + +class SimdArithmeticCase: + + UNARY_OPS = ('neg',) + BINARY_OPS = ('add', 'sub', 'mul') + LANE_NUMBER = {'i8x16': i8, 'i16x8': i16, 'i32x4': i32, 'i64x2': i64} + + def __str__(self): + return self.get_all_cases() + + @property + def lane(self): + return self.LANE_NUMBER.get(self.LANE_TYPE) + + @property + def normal_unary_op_test_data(self): + lane = self.lane + return [0, 1, -1, lane.max - 1, lane.min + 1, lane.min, lane.max, lane.mask] + + @property + def normal_binary_op_test_data(self): + lane = self.lane + return [ + (0, 0), + (0, 1), + (1, 1), + (0, -1), + (1, -1), + (-1, -1), + (lane.quarter - 1, lane.quarter), + (lane.quarter, lane.quarter), + (-lane.quarter + 1, -lane.quarter), + (-lane.quarter, -lane.quarter), + (-lane.quarter - 1, -lane.quarter), + (lane.max - 2, 1), + (lane.max - 1, 1), + (-lane.min, 1), + (lane.min + 2, -1), + (lane.min + 1, -1), + (lane.min, -1), + (lane.max, lane.max), + (lane.min, lane.min), + (lane.min, lane.min + 1), + (lane.mask, 0), + (lane.mask, 1), + (lane.mask, -1), + (lane.mask, lane.max), + (lane.mask, lane.min), + (lane.mask, lane.mask) + ] + + @property + def bin_test_data(self): + return [ + (self.normal_binary_op_test_data, [self.LANE_TYPE] * 3), + (self.hex_binary_op_test_data, [self.LANE_TYPE] * 3) + ] + + @property + def unary_test_data(self): + return [ + (self.normal_unary_op_test_data, [self.LANE_TYPE] * 2), + (self.hex_unary_op_test_data, [self.LANE_TYPE] * 2) + ] + + @property + def combine_ternary_arith_test_data(self): + return { + 'add-sub': [ + [str(i) for i in range(self.LANE_LEN)], + [str(i * 2) for i in range(self.LANE_LEN)], + [str(i * 2) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)] + ], + 'sub-add': [ + [str(i) for i in range(self.LANE_LEN)], + [str(i * 2) for i in range(self.LANE_LEN)], + [str(i * 2) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)] + ], + 'mul-add': [ + [str(i) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)], + ['2'] * self.LANE_LEN, + [str(i * 4) for i in range(self.LANE_LEN)] + ], + 'mul-sub': [ + [str(i * 2) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)], + [str(pow(i, 2)) for i in range(self.LANE_LEN)] + ] + } + + @property + def combine_binary_arith_test_data(self): + return { + 'add-neg': [ + [str(i) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)], + ['0'] * self.LANE_LEN + ], + 'sub-neg': [ + [str(i) for i in range(self.LANE_LEN)], + [str(i) for i in range(self.LANE_LEN)], + [str(-i * 2) for i in range(self.LANE_LEN)] + ], + 'mul-neg': [ + [str(i) for i in range(self.LANE_LEN)], + ['2'] * self.LANE_LEN, + [str(-i * 2) for i in range(self.LANE_LEN)] + ] + } + + def gen_test_fn_template(self): + template = [ + ';; Tests for {} arithmetic operations on major boundary values and all special values.\n\n'.format( + self.LANE_TYPE), '(module'] + + for op in self.BINARY_OPS: + template.append(' (func (export "{lane_type}.%s") (param v128 v128) (result v128) ' + '({lane_type}.%s (local.get 0) (local.get 1)))' % (op, op)) + for op in self.UNARY_OPS: + template.append(' (func (export "{lane_type}.%s") (param v128) (result v128) ' + '({lane_type}.%s (local.get 0)))' % (op, op)) + + template.append(')\n') + return template + + def gen_test_template(self): + template = self.gen_test_fn_template() + + template.append('{normal_cases}') + template.append('\n{invalid_cases}') + template.append('\n{combine_cases}') + + return '\n'.join(template) + + def get_case_data(self): + case_data = [] + + # i8x16.op (i8x16) (i8x16) + for op in self.BINARY_OPS: + o = ArithmeticOp(op) + op_name = self.LANE_TYPE + '.' + op + case_data.append(['#', op_name]) + for data_group, v128_forms in self.bin_test_data: + for data in data_group: + case_data.append([op_name, [str(data[0]), str(data[1])], + str(o.binary_op(data[0], data[1], self.lane)), + v128_forms]) + for data_group in self.full_bin_test_data: + for data in data_group.get(op_name): + case_data.append([op_name, *data]) + + for op in self.UNARY_OPS: + o = ArithmeticOp(op) + op_name = self.LANE_TYPE + '.' + op + case_data.append(['#', op_name]) + for data_group, v128_forms in self.unary_test_data: + for data in data_group: + case_data.append([op_name, [str(data)], + str(o.unary_op(data, self.lane)), + v128_forms]) + + return case_data + + def get_invalid_cases(self): + invalid_cases = [';; type check'] + unary_template = '(assert_invalid (module (func (result v128) '\ + '({}.{} ({})))) "type mismatch")' + binary_template = '(assert_invalid (module (func (result v128) '\ + '({}.{} ({}) ({})))) "type mismatch")' + + for op in self.UNARY_OPS: + invalid_cases.append(unary_template.format(self.LANE_TYPE, op, + 'i32.const 0')) + for op in self.BINARY_OPS: + invalid_cases.append(binary_template.format(self.LANE_TYPE, op, + 'i32.const 0', + 'f32.const 0.0')) + + return '\n'.join(invalid_cases) + + def get_combine_cases(self): + combine_cases = [';; combination\n(module'] + ternary_fn_template = ' (func (export "{fn}") (param v128 v128 v128) (result v128)\n' \ + ' ({lane}.{op1} ({lane}.{op2} (local.get 0) (local.get 1))'\ + '(local.get 2)))' + for fn_name in sorted(self.combine_ternary_arith_test_data): + fn_parts = fn_name.split('-') + combine_cases.append(ternary_fn_template.format(fn=fn_name, + lane=self.LANE_TYPE, + op1=fn_parts[0], + op2=fn_parts[1])) + binary_fn_template = ' (func (export "{fn}") (param v128 v128) (result v128)\n'\ + ' ({lane}.{op1} ({lane}.{op2} (local.get 0)) (local.get 1)))' + for fn_name in sorted(self.combine_binary_arith_test_data): + fn_parts = fn_name.split('-') + combine_cases.append(binary_fn_template.format(fn=fn_name, + lane=self.LANE_TYPE, + op1=fn_parts[0], + op2=fn_parts[1])) + combine_cases.append(')\n') + ternary_case_template = ('(assert_return (invoke "{}" ', + '(v128.const {} {})', + '(v128.const {} {})', + '(v128.const {} {}))', + '(v128.const {} {}))') + for fn_name, test in sorted(self.combine_ternary_arith_test_data.items()): + line_head = ternary_case_template[0].format(fn_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + combine_cases.append('\n'.join([ + line_head + ternary_case_template[1].format( + self.LANE_TYPE, ' '.join(test[0])), + blank_head + ternary_case_template[2].format( + self.LANE_TYPE, ' '.join(test[1])), + blank_head + ternary_case_template[3].format( + self.LANE_TYPE, ' '.join(test[2])), + blank_head + ternary_case_template[4].format( + self.LANE_TYPE, ' '.join(test[3]))])) + binary_case_template = ('(assert_return (invoke "{}" ', + '(v128.const {} {})', + '(v128.const {} {}))', + '(v128.const {} {}))') + for fn_name, test in sorted(self.combine_binary_arith_test_data.items()): + line_head = binary_case_template[0].format(fn_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + combine_cases.append('\n'.join([ + line_head + binary_case_template[1].format( + self.LANE_TYPE, ' '.join(test[0])), + blank_head + binary_case_template[2].format( + self.LANE_TYPE, ' '.join(test[1])), + blank_head + binary_case_template[3].format( + self.LANE_TYPE, ' '.join(test[2]))])) + return '\n'.join(combine_cases) + + def get_normal_case(self): + s = SIMD() + case_data = self.get_case_data() + cases = [] + + for item in case_data: + # Recognize '#' as a commentary + if item[0] == '#': + cases.append('\n;; {}'.format(item[1])) + continue + + instruction, param, ret, lane_type = item + v128_result = s.v128_const(ret, lane_type[-1]) + v128_params = [] + for i, p in enumerate(param): + v128_params.append(s.v128_const(p, lane_type[i])) + cases.append(str(AssertReturn(instruction, v128_params, v128_result))) + + return '\n'.join(cases) + + def get_all_cases(self): + case_data = {'lane_type': self.LANE_TYPE, + 'normal_cases': self.get_normal_case(), + 'invalid_cases': self.get_invalid_cases(), + 'combine_cases': self.get_combine_cases() + } + return self.gen_test_template().format(**case_data) + + def gen_test_cases(self): + wast_filename = '../simd_{lane_type}_arith.wast'.format(lane_type=self.LANE_TYPE) + with open(wast_filename, 'w') as fp: + fp.write(self.get_all_cases()) \ No newline at end of file diff --git a/test/core/simd/meta/simd_bitwise.py b/test/core/simd/meta/simd_bitwise.py new file mode 100644 index 000000000..f4563453c --- /dev/null +++ b/test/core/simd/meta/simd_bitwise.py @@ -0,0 +1,402 @@ +#!/usr/bin/env python3 + +""" +This file is used for generating bitwise test cases +""" + +from simd import SIMD +from test_assert import AssertReturn + + +class SimdBitWise(SIMD): + """ + Generate common tests + """ + + # Test case template + CASE_TXT = """;; Test all the bitwise operators on major boundary values and all special values. + +(module + (func (export "not") (param $0 v128) (result v128) (v128.not (local.get $0))) + (func (export "and") (param $0 v128) (param $1 v128) (result v128) (v128.and (local.get $0) (local.get $1))) + (func (export "or") (param $0 v128) (param $1 v128) (result v128) (v128.or (local.get $0) (local.get $1))) + (func (export "xor") (param $0 v128) (param $1 v128) (result v128) (v128.xor (local.get $0) (local.get $1))) + (func (export "bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (v128.bitselect (local.get $0) (local.get $1) (local.get $2)) + ) +) +{normal_case}""" + + @staticmethod + def init_case_data(case_data): + """ + Rearrange const data into standard format + e.g. [0][i32x4] => (v128.const i32x4 0 0 0 0) + [0][i32] => (i32.const 0) + """ + + s_i = SIMD() + + lst_i_p_r = [] + + for item in case_data: + # Recognize '#' as a commentary + if item[0] == '#': + comment = '\n' if len(item[1]) == 0 else '\n;; {}'.format(item[1]) + lst_i_p_r.append(['#', comment]) + continue + + # Params: instruction: instruction name; + # params: param for instruction; + # rets: excepted result; + # lane_type: lane type for param and ret + instruction, params, rets, lane_type = item + + p_const_list = [] + for idx, param in enumerate(params): + p_const_list.append(s_i.v128_const(param, lane_type[idx])) + + r_const_list = [] + for idx, ret in enumerate(rets): + r_const_list.append(s_i.v128_const(ret, lane_type[idx + len(params)])) + + lst_i_p_r.append([instruction, p_const_list, r_const_list]) + + return lst_i_p_r + + # Generate normal case with test datas + def get_normal_case(self): + """ + Generate normal case with test data + """ + + lst_i_p_r = self.init_case_data(self.get_case_data()) + + cases = [] + for ipr in lst_i_p_r: + + if ipr[0] == '#': + cases.append(ipr[1]) + continue + + cases.append(str(AssertReturn(ipr[0], + ipr[1], + ipr[2]))) + + return '\n'.join(cases) + + def get_invalid_case(self): + """ + Generate invalid case with test data + """ + + case_data = [ + # i8x16 + ['#', 'Type check'], + ['#', ''], + + ['#', 'not'], + ["v128.not", ['0'], [], ['i32']], + + ['#', 'and'], + ["v128.and", ['0', '0'], [], ['i32', 'i32x4']], + ["v128.and", ['0', '0'], [], ['i32x4', 'i32']], + ["v128.and", ['0', '0'], [], ['i32', 'i32']], + + ['#', 'or'], + ["v128.or", ['0', '0'], [], ['i32', 'i32x4']], + ["v128.or", ['0', '0'], [], ['i32x4', 'i32']], + ["v128.or", ['0', '0'], [], ['i32', 'i32']], + + ['#', 'xor'], + ["v128.xor", ['0', '0'], [], ['i32', 'i32x4']], + ["v128.xor", ['0', '0'], [], ['i32x4', 'i32']], + ["v128.xor", ['0', '0'], [], ['i32', 'i32']], + + ['#', 'bitselect'], + ["v128.bitselect", ['0', '0', '0'], [], ['i32', 'i32x4', 'i32x4']], + ["v128.bitselect", ['0', '0', '0'], [], ['i32x4', 'i32x4', 'i32']], + ["v128.bitselect", ['0', '0', '0'], [], ['i32', 'i32', 'i32']] + ] + + lst_ipr = self.init_case_data(case_data) + + str_invalid_case_func_tpl = '\n(assert_invalid (module (func (result v128)' \ + ' ({} {}))) "type mismatch")' + + lst_invalid_case_func = [] + + for ipr in lst_ipr: + + if ipr[0] == '#': + lst_invalid_case_func.append(ipr[1]) + continue + else: + lst_invalid_case_func.append( + str_invalid_case_func_tpl.format(ipr[0], ' '.join(ipr[1])) + ) + + return '\n{}\n'.format(''.join(lst_invalid_case_func)) + + def get_combination_case(self): + """ + Generate combination case with test data + """ + + str_in_block_case_func_tpl = '\n (func (export "{}-in-block")' \ + '\n (block' \ + '\n (drop' \ + '\n (block (result v128)' \ + '\n ({}' \ + '{}' \ + '\n )' \ + '\n )' \ + '\n )' \ + '\n )' \ + '\n )' + str_nested_case_func_tpl = '\n (func (export "nested-{}")' \ + '\n (drop' \ + '\n ({}' \ + '{}' \ + '\n )' \ + '\n )' \ + '\n )' + + case_data = [ + ["v128.not", ['0'], [], ['i32']], + ["v128.and", ['0', '1'], [], ['i32', 'i32']], + ["v128.or", ['0', '1'], [], ['i32', 'i32']], + ["v128.xor", ['0', '1'], [], ['i32', 'i32']], + ["v128.bitselect", ['0', '1', '2'], [], ['i32', 'i32', 'i32']], + ] + lst_ipr = self.init_case_data(case_data) + + lst_in_block_case_func = [] + lst_nested_case_func = [] + lst_in_block_case_assert = [] + lst_nested_case_assert = [] + + for ipr in lst_ipr: + + lst_block = ['\n (block (result v128) (v128.load {}))'.format(x) for x in ipr[1]] + lst_in_block_case_func.append( + str_in_block_case_func_tpl.format(ipr[0], ipr[0], ''.join(lst_block)) + ) + + tpl_1 = '\n ({}' \ + '{}' \ + '\n )' + tpl_2 = '\n ({}' \ + '{}' \ + '\n )' + tpl_3 = '\n (v128.load {})' + + lst_tpl_3 = [tpl_3.format(x) for x in ipr[1]] + lst_tpl_2 = [tpl_2.format(ipr[0], ''.join(lst_tpl_3))] * len(ipr[1]) + lst_tpl_1 = [tpl_1.format(ipr[0], ''.join(lst_tpl_2))] * len(ipr[1]) + + lst_nested_case_func.append( + str_nested_case_func_tpl.format(ipr[0], ipr[0], ''.join(lst_tpl_1)) + ) + + lst_in_block_case_assert.append('\n(assert_return (invoke "{}-in-block"))'.format(ipr[0])) + lst_nested_case_assert.append('\n(assert_return (invoke "nested-{}"))'.format(ipr[0])) + + return '\n;; Combination\n' \ + '\n(module (memory 1)' \ + '{}' \ + '{}' \ + '\n (func (export "as-param")' \ + '\n (drop' \ + '\n (v128.or' \ + '\n (v128.and' \ + '\n (v128.not' \ + '\n (v128.load (i32.const 0))' \ + '\n )' \ + '\n (v128.not' \ + '\n (v128.load (i32.const 1))' \ + '\n )' \ + '\n )' \ + '\n (v128.xor' \ + '\n (v128.bitselect' \ + '\n (v128.load (i32.const 0))' \ + '\n (v128.load (i32.const 1))' \ + '\n (v128.load (i32.const 2))' \ + '\n )' \ + '\n (v128.bitselect' \ + '\n (v128.load (i32.const 0))' \ + '\n (v128.load (i32.const 1))' \ + '\n (v128.load (i32.const 2))' \ + '\n )' \ + '\n )' \ + '\n )' \ + '\n )' \ + '\n )' \ + '\n)' \ + '{}' \ + '{}' \ + '\n(assert_return (invoke "as-param"))\n'.format(''.join(lst_in_block_case_func), + ''.join(lst_nested_case_func), + ''.join(lst_in_block_case_assert), + ''.join(lst_nested_case_assert)) + + def get_all_cases(self): + """ + generate all test cases + """ + + case_data = {'normal_case': self.get_normal_case()} + + # Add tests for unkonow operators for i32x4 + return self.CASE_TXT.format(**case_data) + self.get_invalid_case() + self.get_combination_case() + + def get_case_data(self): + """ + Overload base class method and set test data for bitwise. + """ + return [ + # i32x4 + ['#', 'i32x4'], + ["not", ['0'], ['-1'], ['i32x4', 'i32x4']], + ["not", ['-1'], ['0'], ['i32x4', 'i32x4']], + ["not", [['-1', '0', '-1', '0']], [['0', '-1', '0', '-1']], ['i32x4', 'i32x4']], + ["not", [['0', '-1', '0', '-1']], [['-1', '0', '-1', '0']], ['i32x4', 'i32x4']], + ["not", ['0x55555555'], ['0xAAAAAAAA'], ['i32x4', 'i32x4']], + ["not", ['3435973836'], ['858993459'], ['i32x4', 'i32x4']], + ["and", [['0', '-1'], ['0', '-1', '0', '-1']], [['0', '0', '0', '-1']], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0', '0'], ['0'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0', '-1'], ['0'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0', '0xFFFFFFFF'], ['0'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['1', '1'], ['1'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['255', '85'], ['85'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['255', '128'], ['128'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['2863311530', ['10', '128', '5', '165']], [['10', '128', '0', '160']], + ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0xFFFFFFFF', '0x55555555'], ['0x55555555'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0xFFFFFFFF', '0xAAAAAAAA'], ['0xAAAAAAAA'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0xFFFFFFFF', '0x0'], ['0x0'], ['i32x4', 'i32x4', 'i32x4']], + ["and", ['0x55555555', ['0x5555', '0xFFFF', '0x55FF', '0x5FFF']], ['0x5555'], + ['i32x4', 'i32x4', 'i32x4']], + ["or", [['0', '0', '-1', '-1'], ['0', '-1', '0', '-1']], [['0', '-1', '-1', '-1']], + ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0', '0'], ['0'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0', '-1'], ['-1'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0', '0xFFFFFFFF'], ['0xFFFFFFFF'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['1', '1'], ['1'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['255', '85'], ['255'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['255', '128'], ['255'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['2863311530', ['10', '128', '5', '165']], [['2863311530', '2863311535']], + ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0xFFFFFFFF', '0x55555555'], ['0xFFFFFFFF'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0xFFFFFFFF', '0xAAAAAAAA'], ['0xFFFFFFFF'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0xFFFFFFFF', '0x0'], ['0xFFFFFFFF'], ['i32x4', 'i32x4', 'i32x4']], + ["or", ['0x55555555', ['0x5555', '0xFFFF', '0x55FF', '0x5FFF']], + [['0x55555555', '0x5555ffff', '0x555555ff', '0x55555fff']], + ['i32x4', 'i32x4', 'i32x4']], + ["xor", [['0', '0', '-1', '-1'], ['0', '-1', '0', '-1']], [['0', '-1', '-1', '0']], + ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0', '0'], ['0'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0', '-1'], ['-1'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0', '0xFFFFFFFF'], ['0xFFFFFFFF'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['1', '1'], ['0'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['255', '85'], ['170'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['255', '128'], ['127'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['2863311530', ['10', '128', '5', '165']], + [['2863311520', '2863311402', '2863311535', '2863311375']], + ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0xFFFFFFFF', '0x55555555'], ['0xAAAAAAAA'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0xFFFFFFFF', '0xAAAAAAAA'], ['0x55555555'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0xFFFFFFFF', '0x0'], ['0xFFFFFFFF'], ['i32x4', 'i32x4', 'i32x4']], + ["xor", ['0x55555555', ['0x5555', '0xFFFF', '0x55FF', '0x5FFF']], + [['0x55550000', '0x5555AAAA', '0x555500AA', '0x55550AAA']], + ['i32x4', 'i32x4', 'i32x4']], + ["bitselect", ['0xAAAAAAAA', '0xBBBBBBBB', + ['0x00112345', '0xF00FFFFF', '0x10112021', '0xBBAABBAA']], + [['0xBBAABABA', '0xABBAAAAA', '0xABAABBBA', '0xAABBAABB']], + ['i32x4', 'i32x4', 'i32x4', 'i32x4']], + ["bitselect", ['0xAAAAAAAA', '0xBBBBBBBB', '0x00000000'], ['0xBBBBBBBB'], + ['i32x4', 'i32x4', 'i32x4', 'i32x4']], + ["bitselect", ['0xAAAAAAAA', '0xBBBBBBBB', '0x11111111'], ['0xAAAAAAAA'], + ['i32x4', 'i32x4', 'i32x4', 'i32x4']], + ["bitselect", ['0xAAAAAAAA', '0xBBBBBBBB', + ['0x01234567', '0x89ABCDEF', '0xFEDCBA98', '0x76543210']], + [['0xBABABABA', '0xABABABAB']], + ['i32x4', 'i32x4', 'i32x4', 'i32x4']], + ["bitselect", ['0xAAAAAAAA', '0x55555555', + ['0x01234567', '0x89ABCDEF', '0xFEDCBA98', '0x76543210']], + [['0x54761032', '0xDCFE98BA', '0xAB89EFCD', '0x23016745']], + ['i32x4', 'i32x4', 'i32x4', 'i32x4']], + ["bitselect", ['0xAAAAAAAA', '0x55555555', + ['0x55555555', '0xAAAAAAAA', '0x00000000', '0xFFFFFFFF']], + [['0x00000000', '0xFFFFFFFF', '0x55555555', '0xAAAAAAAA']], + ['i32x4', 'i32x4', 'i32x4', 'i32x4']], + + ['#', 'for float special data [e.g. -nan nan -inf inf]'], + ["not", ['-nan'], ['5.87747e-39'], ['f32x4', 'f32x4']], + ["not", ['nan'], ['-5.87747e-39'], ['f32x4', 'f32x4']], + ["not", ['-inf'], ['0x007fffff'], ['f32x4', 'i32x4']], + ["not", ['inf'], ['0x807fffff'], ['f32x4', 'i32x4']], + + ["and", ['-nan', '-nan'], ['0xffc00000'], ['f32x4', 'f32x4', 'i32x4']], + ["and", ['-nan', 'nan'], ['nan'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['-nan', '-inf'], ['-inf'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['-nan', 'inf'], ['inf'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['nan', 'nan'], ['nan'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['nan', '-inf'], ['inf'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['nan', 'inf'], ['inf'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['-inf', '-inf'], ['-inf'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['-inf', 'inf'], ['inf'], ['f32x4', 'f32x4', 'f32x4']], + ["and", ['inf', 'inf'], ['inf'], ['f32x4', 'f32x4', 'f32x4']], + + ["or", ['-nan', '-nan'], ['0xffc00000'], ['f32x4', 'f32x4', 'i32x4']], + ["or", ['-nan', 'nan'], ['0xffc00000'], ['f32x4', 'f32x4', 'i32x4']], + ["or", ['-nan', '-inf'], ['0xffc00000'], ['f32x4', 'f32x4', 'i32x4']], + ["or", ['-nan', 'inf'], ['0xffc00000'], ['f32x4', 'f32x4', 'i32x4']], + ["or", ['nan', 'nan'], ['nan'], ['f32x4', 'f32x4', 'f32x4']], + ["or", ['nan', '-inf'], ['0xffc00000'], ['f32x4', 'f32x4', 'i32x4']], + ["or", ['nan', 'inf'], ['nan'], ['f32x4', 'f32x4', 'f32x4']], + ["or", ['-inf', '-inf'], ['-inf'], ['f32x4', 'f32x4', 'f32x4']], + ["or", ['-inf', 'inf'], ['-inf'], ['f32x4', 'f32x4', 'f32x4']], + ["or", ['inf', 'inf'], ['inf'], ['f32x4', 'f32x4', 'f32x4']], + + ["xor", ['-nan', '-nan'], ['0'], ['f32x4', 'f32x4', 'f32x4']], + ["xor", ['-nan', 'nan'], ['-0'], ['f32x4', 'f32x4', 'f32x4']], + ["xor", ['-nan', '-inf'], ['0x00400000'], ['f32x4', 'f32x4', 'i32x4']], + ["xor", ['-nan', 'inf'], ['0x80400000'], ['f32x4', 'f32x4', 'i32x4']], + ["xor", ['nan', 'nan'], ['0'], ['f32x4', 'f32x4', 'f32x4']], + ["xor", ['nan', '-inf'], ['0x80400000'], ['f32x4', 'f32x4', 'i32x4']], + ["xor", ['nan', 'inf'], ['0x00400000'], ['f32x4', 'f32x4', 'i32x4']], + ["xor", ['-inf', '-inf'], ['0'], ['f32x4', 'f32x4', 'f32x4']], + ["xor", ['-inf', 'inf'], ['0x80000000'], ['f32x4', 'f32x4', 'i32x4']], + ["xor", ['inf', 'inf'], ['0'], ['f32x4', 'f32x4', 'f32x4']], + + ["bitselect", ['-nan', '-nan','0xA5A5A5A5'], ['0xffc00000'], ['f32x4', 'f32x4', 'f32x4', 'i32x4']], + ["bitselect", ['-nan', 'nan','0xA5A5A5A5'], ['nan'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['-nan', '-inf','0xA5A5A5A5'], ['-inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['-nan', 'inf','0xA5A5A5A5'], ['inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['nan', 'nan','0xA5A5A5A5'], ['nan'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['nan', '-inf','0xA5A5A5A5'], ['-inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['nan', 'inf','0xA5A5A5A5'], ['inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['-inf', '-inf','0xA5A5A5A5'], ['-inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['-inf', 'inf','0xA5A5A5A5'], ['inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']], + ["bitselect", ['inf', 'inf','0xA5A5A5A5'], ['inf'], ['f32x4', 'f32x4', 'f32x4', 'f32x4']] + ] + + def gen_test_cases(self): + """ + Generate test case file + """ + with open('../simd_bitwise.wast', 'w+') as f_out: + f_out.write(self.get_all_cases()) + + +def gen_test_cases(): + """ + Generate test case file + """ + bit_wise = SimdBitWise() + bit_wise.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_f32x4.py b/test/core/simd/meta/simd_f32x4.py new file mode 100644 index 000000000..653df97b4 --- /dev/null +++ b/test/core/simd/meta/simd_f32x4.py @@ -0,0 +1,489 @@ +#!/usr/bin/env python3 + +""" +Generate f32x4 [abs, min, max] cases. +""" + +from simd_f32x4_arith import Simdf32x4ArithmeticCase +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',) + + FLOAT_NUMBERS = ( + '0x0p+0', '-0x0p+0', '0x1p-149', '-0x1p-149', '0x1p-126', '-0x1p-126', '0x1p-1', '-0x1p-1', '0x1p+0', '-0x1p+0', + '0x1.921fb6p+2', '-0x1.921fb6p+2', '0x1.fffffep+127', '-0x1.fffffep+127', 'inf', '-inf' + ) + + NAN_NUMBERS = ('nan', '-nan', 'nan:0x200000', '-nan:0x200000') + binary_params_template = ('({} (invoke "{}" ', '{}', '{})', '{})') + unary_param_template = ('({} (invoke "{}" ', '{})', '{})') + binary_nan_template = ('({} (invoke "{}" ', '{}', '{}))') + unary_nan_template = ('({} (invoke "{}" ', '{}))') + + def full_op_name(self, op_name): + return self.LANE_TYPE + '.' + op_name + + @staticmethod + def v128_const(lane, val): + + return SIMD().v128_const(val, lane) + + def gen_test_fn_template(self): + + # Get function code + template = Simdf32x4ArithmeticCase.gen_test_fn_template(self) + + # Function template + tpl_func = ' (func (export "{}"){} (result v128) ({} {}{}))' + + # Const data for min and max + lst_instr_with_const = [ + [ + [['0', '1', '2', '-3'], ['0', '2', '1', '3']], + [['0', '1', '1', '-3'], ['0', '2', '2', '3']] + ], + [ + [['0', '1', '2', '3'], ['0', '1', '2', '3']], + [['0', '1', '2', '3'], ['0', '1', '2', '3']] + ], + [ + [['0x00', '0x01', '0x02', '0x80000000'], ['0x00', '0x02', '0x01', '2147483648']], + [['0x00', '0x01', '0x01', '0x80000000'], ['0x00', '0x02', '0x02', '2147483648']] + ], + [ + [['0x00', '0x01', '0x02', '0x80000000'], ['0x00', '0x01', '0x02', '0x80000000']], + [['0x00', '0x01', '0x02', '0x80000000'], ['0x00', '0x01', '0x02', '0x80000000']] + ] + ] + + # Assert data + lst_oprt_with_const_assert = {} + + # Generate func and assert + for op in self.BINARY_OPS: + + op_name = self.full_op_name(op) + + # Add comment for the case script " ;; [f32x4.min, f32x4.max] const vs const" + template.insert(len(template)-1, ' ;; {} const vs const'.format(op_name)) + + # Add const vs const cases + for case_data in lst_instr_with_const: + + func_name = "{}_with_const_{}".format(op_name, len(template)-7) + template.insert(len(template)-1, + tpl_func.format(func_name, '', op_name, + self.v128_const('f32x4', case_data[0][0]), + ' ' + self.v128_const('f32x4', case_data[0][1]))) + + ret_idx = 0 if op == 'min' else 1 + + if op not in lst_oprt_with_const_assert: + lst_oprt_with_const_assert[op] = [] + + lst_oprt_with_const_assert[op].append([func_name, case_data[1][ret_idx]]) + + # Add comment for the case script " ;; [f32x4.min, f32x4.max] param vs const" + template.insert(len(template)-1, ' ;; {} param vs const'.format(op_name)) + + case_cnt = 0 + + # Add param vs const cases + for case_data in lst_instr_with_const: + + func_name = "{}_with_const_{}".format(op_name, len(template)-7) + + # Cross parameters and constants + if case_cnt in (0, 3): + func_param_0 = '(local.get 0)' + func_param_1 = self.v128_const('f32x4', case_data[0][0]) + else: + func_param_0 = self.v128_const('f32x4', case_data[0][0]) + func_param_1 = '(local.get 0)' + + template.insert(len(template)-1, + tpl_func.format(func_name, '(param v128)', op_name, func_param_0, ' ' + func_param_1)) + + ret_idx = 0 if op == 'min' else 1 + + if op not in lst_oprt_with_const_assert: + lst_oprt_with_const_assert[op] = [] + + lst_oprt_with_const_assert[op].append([func_name, case_data[0][1], case_data[1][ret_idx]]) + + case_cnt += 1 + + # Generate func for abs + op_name = self.full_op_name('abs') + func_name = "{}_with_const".format(op_name) + template.insert(len(template)-1, '') + template.insert(len(template)-1, + tpl_func.format(func_name, '', op_name, + self.v128_const('f32x4', ['-0', '-1', '-2', '-3']), '')) + + # Test different lanes go through different if-then clauses + lst_diff_lane_vs_clause = [ + [ + 'f32x4.min', + [['nan', '0', '0', '1'], ['0', '-nan', '1', '0']], + [['nan', '-nan', '0', '0']], + ['f32x4', 'f32x4', 'f32x4'] + ], + [ + 'f32x4.min', + [['nan', '0', '0', '0'], ['0', '-nan', '1', '0']], + [['nan', '-nan', '0', '0']], + ['f32x4', 'f32x4', 'f32x4'] + ], + [ + 'f32x4.max', + [['nan', '0', '0', '1'], ['0', '-nan', '1', '0']], + [['nan', '-nan', '1', '1']], + ['f32x4', 'f32x4', 'f32x4'] + ], + [ + 'f32x4.max', + [['nan', '0', '0', '0'], ['0', '-nan', '1', '0']], + [['nan', '-nan', '1', '0']], + ['f32x4', 'f32x4', 'f32x4'] + ] + ] + + # Case number + case_cnt = 0 + + # Template for func name to extract a lane + tpl_func_name_by_lane = 'call_indirect_vv_v_f32x4_extract_lane_{}' + + # Template for assert + tpl_assert = '({}\n' \ + ' (invoke "{}"\n' \ + ' {}\n' \ + ' {}\n' \ + ' {}\n' \ + ' )\n' \ + '{}' \ + ')' + + lst_diff_lane_vs_clause_assert = [] + + # Add comment in wast script + lst_diff_lane_vs_clause_assert.append('') + lst_diff_lane_vs_clause_assert.append(';; Test different lanes go through different if-then clauses') + + template.insert(len(template)-1, '') + template.insert(len(template)-1, ' ;; Test different lanes go through different if-then clauses') + + # Add test case for test different lanes go through different if-then clauses + template.insert(len(template)-1, ' (type $vv_v (func (param v128 v128) (result v128)))\n' + ' (table funcref (elem $f32x4_min $f32x4_max))\n' + '\n' + ' (func $f32x4_min (type $vv_v)\n' + ' (f32x4.min (local.get 0) (local.get 1))\n' + ' )\n' + '\n' + ' (func $f32x4_max (type $vv_v)\n' + ' (f32x4.max (local.get 0) (local.get 1))\n' + ' )\n' + '\n' + ' (func (export "call_indirect_vv_v_f32x4_extract_lane_0")\n' + ' (param v128 v128 i32) (result f32)\n' + ' (f32x4.extract_lane 0\n' + ' (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2))\n' + ' )\n' + ' )\n' + ' (func (export "call_indirect_vv_v_f32x4_extract_lane_1")\n' + ' (param v128 v128 i32) (result f32)\n' + ' (f32x4.extract_lane 1\n' + ' (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2))\n' + ' )\n' + ' )\n' + ' (func (export "call_indirect_vv_v_f32x4_extract_lane_2")\n' + ' (param v128 v128 i32) (result f32)\n' + ' (f32x4.extract_lane 2\n' + ' (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2))\n' + ' )\n' + ' )\n' + ' (func (export "call_indirect_vv_v_f32x4_extract_lane_3")\n' + ' (param v128 v128 i32) (result f32)\n' + ' (f32x4.extract_lane 3\n' + ' (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2))\n' + ' )\n' + ' )') + + for case_data in lst_diff_lane_vs_clause: + + lst_diff_lane_vs_clause_assert.append(';; {} {}'.format(case_data[0], case_cnt)) + + # generate assert for every data lane + for lane_idx in range(0, len(case_data[2][0])): + + # get the result by lane + ret = case_data[2][0][lane_idx] + + idx_func = '0' if 'min' in case_data[0] else '1' + + # append assert + if 'nan' in ret: + + lst_diff_lane_vs_clause_assert.append(tpl_assert.format('assert_return_canonical_nan', + tpl_func_name_by_lane.format(lane_idx), + self.v128_const('f32x4', case_data[1][0]), + self.v128_const('f32x4', case_data[1][1]), + self.v128_const('i32', idx_func), + '')) + else: + + lst_diff_lane_vs_clause_assert.append(tpl_assert.format('assert_return', + tpl_func_name_by_lane.format(lane_idx), + self.v128_const('f32x4', case_data[1][0]), + self.v128_const('f32x4', case_data[1][1]), + self.v128_const('i32', idx_func), + ' '+self.v128_const('f32', ret)+'\n')) + + case_cnt += 1 + if case_cnt == 2: + case_cnt = 0 + + lst_diff_lane_vs_clause_assert.append('') + + # Add test for operations with constant operands + for key in lst_oprt_with_const_assert: + + case_cnt = 0 + for case_data in lst_oprt_with_const_assert[key]: + + # Add comment for the param combination + if case_cnt == 0: + template.append(';; {} const vs const'.format(op_name)) + if case_cnt == 4: + template.append(';; {} param vs const'.format(op_name)) + + # Cross parameters and constants + if case_cnt < 4: + template.append(str(AssertReturn(case_data[0], [], self.v128_const('f32x4', case_data[1])))) + else: + template.append(str(AssertReturn(case_data[0], [self.v128_const('f32x4', case_data[1])], self.v128_const('f32x4', case_data[2])))) + case_cnt += 1 + + # Generate and append f32x4.abs assert + op_name = self.full_op_name('abs') + func_name = "{}_with_const".format(op_name) + template.append('') + template.append(str(AssertReturn(func_name, [], self.v128_const('f32x4', ['0', '1', '2', '3'])))) + + template.extend(lst_diff_lane_vs_clause_assert) + + return template + + @property + def combine_ternary_arith_test_data(self): + return { + 'min-max': [ + ['1.125'] * 4, ['0.25'] * 4, ['0.125'] * 4, ['0.125'] * 4 + ], + 'max-min': [ + ['1.125'] * 4, ['0.25'] * 4, ['0.125'] * 4, ['0.25'] * 4 + ] + } + + @property + def combine_binary_arith_test_data(self): + return { + 'min-abs': [ + ['-1.125'] * 4, ['0.125'] * 4, ['0.125'] * 4 + ], + 'max-abs': [ + ['-1.125'] * 4, ['0.125'] * 4, ['1.125'] * 4 + ] + } + + def get_normal_case(self): + """Normal test cases from WebAssembly core tests, 4 assert statements: + assert_return + assert_return_canonical_nan + assert_return_arithmetic_nan + assert_malformed + """ + cases = [] + binary_test_data = [] + unary_test_data = [] + + for op in self.BINARY_OPS: + 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) + if 'nan' not in result: + # Normal floating point numbers as the results + binary_test_data.append(['assert_return', op_name, p1, p2, result]) + else: + # Since the results contain the 'nan' string, it should be in the + # assert_return_canonical_nan statements + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p1, p2]) + + # assert_return_canonical_nan and assert_return_arithmetic_nan cases + for p1 in self.NAN_NUMBERS: + for p2 in self.FLOAT_NUMBERS: + if 'nan:' in p1 or 'nan:' in p2: + # When the arguments contain 'nan:', always use assert_return_arithmetic_nan + # statements for the cases. Since there 2 parameters for binary operation and + # the order of the parameters matter. Different order makes different cases. + binary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p1, p2]) + binary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p2, p1]) + else: + # No 'nan' string found, then it should be assert_return_canonical_nan. + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p1, p2]) + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p2, p1]) + for p2 in self.NAN_NUMBERS: + # Both parameters contain 'nan', then there must be no assert_return. + if 'nan:' in p1 or 'nan:' in p2: + binary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p1, p2]) + else: + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p1, p2]) + + for case in binary_test_data: + cases.append(self.single_binary_test(case)) + + # Test opposite signs of zero + lst_oppo_signs_0 = [ + '\n;; Test opposite signs of zero', + [ + 'f32x4.min', + [['0', '0', '-0', '+0'], ['+0', '-0', '+0', '-0']], + [['0', '-0', '-0', '-0']], + ['f32x4', 'f32x4', 'f32x4'] + ], + [ + 'f32x4.min', + [['-0', '-0', '-0', '-0'], ['+0', '+0', '+0', '+0']], + [['-0', '-0', '-0', '-0']], + ['f32x4', 'f32x4', 'f32x4'] + ], + [ + 'f32x4.max', + [['0', '0', '-0', '+0'], ['+0', '-0', '+0', '-0']], + [['0', '0', '0', '0']], + ['f32x4', 'f32x4', 'f32x4'] + ], + [ + 'f32x4.max', + [['-0', '-0', '-0', '-0'], ['+0', '+0', '+0', '+0']], + [['+0', '+0', '+0', '+0']], + ['f32x4', 'f32x4', 'f32x4'] + ], + '\n' + ] + + # Generate test case for opposite signs of zero + for case_data in lst_oppo_signs_0: + + if isinstance(case_data, str): + cases.append(case_data) + continue + + cases.append(str(AssertReturn(case_data[0], + [self.v128_const(case_data[3][0], case_data[1][0]), + self.v128_const(case_data[3][1], case_data[1][1])], + self.v128_const(case_data[3][2], case_data[2][0])))) + + for p in self.FLOAT_NUMBERS: + op_name = self.full_op_name('abs') + result = unary_op('abs', p) + # Abs operation is valid for all the floating point numbers + unary_test_data.append(['assert_return', op_name, p, result]) + + for case in unary_test_data: + cases.append(self.single_unary_test(case)) + + self.get_unknown_operator_case(cases) + + return '\n'.join(cases) + + def get_unknown_operator_case(self, cases): + """Unknown operator cases. + """ + + tpl_assert = "(assert_malformed (module quote \"(memory 1) (func (result v128) " \ + "({}.{} {}))\") \"unknown operator\")" + + unknown_op_cases = ['\n\n;; Unknown operators\n'] + cases.extend(unknown_op_cases) + + for lane_type in ['i8x16', 'i16x8', 'i32x4']: + + for op in self.UNARY_OPS: + cases.append(tpl_assert.format(lane_type, op, self.v128_const('i32x4', '0'))) + + for op in self.BINARY_OPS: + cases.append(tpl_assert.format(lane_type, op, ' '.join([self.v128_const('i32x4', '0')]*2))) + + def gen_test_cases(self): + wast_filename = '../simd_{lane_type}.wast'.format(lane_type=self.LANE_TYPE) + with open(wast_filename, 'w') as fp: + txt_test_case = self.get_all_cases() + txt_test_case = txt_test_case.replace('f32x4 arithmetic', 'f32x4 [abs, min, max]') + fp.write(txt_test_case) + + +def gen_test_cases(): + simd_f32x4_case = Simdf32x4Case() + simd_f32x4_case.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() diff --git a/test/core/simd/meta/simd_f32x4_arith.py b/test/core/simd/meta/simd_f32x4_arith.py new file mode 100644 index 000000000..cd98cf289 --- /dev/null +++ b/test/core/simd/meta/simd_f32x4_arith.py @@ -0,0 +1,377 @@ +#!/usr/bin/env python3 + +""" +Generate f32x4 floating-point arithmetic operation cases. +""" + +import math +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: 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 Simdf32x4ArithmeticCase(SimdArithmeticCase): + LANE_LEN = 4 + LANE_TYPE = 'f32x4' + + UNARY_OPS = ('neg', 'sqrt') + 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', + '0x1.921fb6p+2', '-0x1.921fb6p+2', '0x1.fffffep+127', '-0x1.fffffep+127', 'inf', '-inf' + ) + + NAN_NUMBERS = ('nan', '-nan', 'nan:0x200000', '-nan:0x200000') + binary_params_template = ('({} (invoke "{}" ', '{}', '{})', '{})') + unary_param_template = ('({} (invoke "{}" ', '{})', '{})') + binary_nan_template = ('({} (invoke "{}" ', '{}', '{}))') + unary_nan_template = ('({} (invoke "{}" ', '{}))') + + def full_op_name(self, op_name): + return self.LANE_TYPE + '.' + op_name + + @staticmethod + def v128_const(lane, val): + return '(v128.const {} {})'.format(lane, ' '.join([str(val)] * 4)) + + @property + def combine_ternary_arith_test_data(self): + return { + 'add-sub': [ + ['1.125'] * 4, ['0.25'] * 4, ['0.125'] * 4, ['1.0'] * 4 + ], + 'sub-add': [ + ['1.125'] * 4, ['0.25'] * 4, ['0.125'] * 4, ['1.25'] * 4 + ], + 'mul-add': [ + ['1.25'] * 4, ['0.25'] * 4, ['0.25'] * 4, ['0.375'] * 4 + ], + 'mul-sub': [ + ['1.125'] * 4, ['0.125'] * 4, ['0.25'] * 4, ['0.25'] * 4 + ], + 'div-add': [ + ['1.125'] * 4, ['0.125'] * 4, ['0.25'] * 4, ['5.0'] * 4 + ], + 'div-sub': [ + ['1.125'] * 4, ['0.125'] * 4, ['0.25'] * 4, ['4.0'] * 4 + ], + 'mul-div': [ + ['1.125'] * 4, ['0.125'] * 4, ['0.25'] * 4, ['2.25'] * 4 + ], + 'div-mul': [ + ['1.125'] * 4, ['4'] * 4, ['0.25'] * 4, ['18.0'] * 4 + ] + } + + @property + def combine_binary_arith_test_data(self): + return { + 'add-neg': [ + ['1.125'] * 4, ['0.125'] * 4, ['-1.0'] * 4 + ], + 'sub-neg': [ + ['1.125'] * 4, ['0.125'] * 4, ['-1.25'] * 4 + ], + 'mul-neg': [ + ['1.5'] * 4, ['0.25'] * 4, ['-0.375'] * 4 + ], + 'div-neg': [ + ['1.5'] * 4, ['0.25'] * 4, ['-6'] * 4 + ], + 'add-sqrt': [ + ['2.25'] * 4, ['0.25'] * 4, ['1.75'] * 4 + ], + 'sub-sqrt': [ + ['2.25'] * 4, ['0.25'] * 4, ['1.25'] * 4 + ], + 'mul-sqrt': [ + ['2.25'] * 4, ['0.25'] * 4, ['0.375'] * 4 + ], + 'div-sqrt': [ + ['2.25'] * 4, ['0.25'] * 4, ['6'] * 4 + ] + } + + def single_binary_test(self, case): + """Format a test case in 2 or 3 lines + + :param case: list of elements about the test case + :return: test cases with 2 v128.const f32x4 operands, 3 lines at most + """ + op_name = case[1] + arg1 = self.v128_const(self.LANE_TYPE, case[2]) + arg2 = self.v128_const(self.LANE_TYPE, case[3]) + + if len(case) == 4: + line_head = self.binary_nan_template[0].format(case[0], op_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + lines = [ + line_head + self.binary_nan_template[1].format(arg1), + blank_head + self.binary_nan_template[2].format(arg2) + ] + elif len(case) == 5: + line_head = self.binary_params_template[0].format(case[0], op_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + result = self.v128_const(self.LANE_TYPE, case[-1]) + lines = [ + line_head + self.binary_params_template[1].format(arg1), + blank_head + self.binary_params_template[2].format(arg2), + blank_head + self.binary_params_template[3].format(result) + ] + else: + raise Exception('Invalid format for the test case!') + + return '\n'.join(lines) + + def single_unary_test(self, case): + """Format a test case in 1 line or 2 lines + + :param case: list of elements about the test case + :return: test cases with 2 v128.const f32x4 operands, 2 lines at most + """ + op_name = case[1] + arg = self.v128_const(self.LANE_TYPE, case[2]) + + if len(case) == 3: + line_head = self.unary_nan_template[0].format(case[0], op_name) + lines = [ + line_head + self.unary_nan_template[1].format(arg) + ] + elif len(case) == 4: + line_head = self.unary_param_template[0].format(case[0], op_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + result = self.v128_const(self.LANE_TYPE, case[-1]) + lines = [ + line_head + self.unary_param_template[1].format(arg), + blank_head + self.unary_param_template[2].format(result) + ] + else: + raise Exception('Invalid format for the test case!') + + return '\n'.join(lines) + + def get_normal_case(self): + """Normal test cases from WebAssembly core tests, 3 assert statements: + assert_return + assert_return_canonical_nan + assert_return_arithmetic_nan + """ + cases = [] + binary_test_data = [] + unary_test_data = [] + + for op in self.BINARY_OPS: + 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) + if 'nan' not in result: + # Normal floating point numbers as the results + binary_test_data.append(['assert_return', op_name, p1, p2, result]) + else: + # Since the results contain the 'nan' string, it should be in the + # assert_return_canonical_nan statements + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p1, p2]) + + # assert_return_canonical_nan and assert_return_arithmetic_nan cases + for p1 in self.NAN_NUMBERS: + for p2 in self.FLOAT_NUMBERS: + if 'nan:' in p1 or 'nan:' in p2: + # When the arguments contain 'nan:', always use assert_return_arithmetic_nan + # statements for the cases. Since there 2 parameters for binary operation and + # the order of the parameters matter. Different order makes different cases. + binary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p1, p2]) + binary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p2, p1]) + else: + # No 'nan' string found, then it should be assert_return_canonical_nan. + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p1, p2]) + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p2, p1]) + for p2 in self.NAN_NUMBERS: + # Both parameters contain 'nan', then there must be no assert_return. + if 'nan:' in p1 or 'nan:' in p2: + binary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p1, p2]) + else: + binary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p1, p2]) + + for case in binary_test_data: + cases.append(self.single_binary_test(case)) + + for p in self.FLOAT_NUMBERS + self.NAN_NUMBERS: + if 'nan:' in p: + unary_test_data.append(['assert_return_arithmetic_nan_f32x4', op_name, p]) + elif 'nan' in p: + unary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p]) + else: + # Normal floating point numbers for sqrt operation + op_name = self.full_op_name('sqrt') + result = float_sqrt(p) + if 'nan' not in result: + # Get the sqrt value correctly + unary_test_data.append(['assert_return', op_name, p, result]) + else: + # + unary_test_data.append(['assert_return_canonical_nan_f32x4', op_name, p]) + + for p in self.FLOAT_NUMBERS + self.NAN_NUMBERS: + op_name = self.full_op_name('neg') + result = float_neg(p) + # Neg operation is valid for all the floating point numbers + unary_test_data.append(['assert_return', op_name, p, result]) + + for case in unary_test_data: + cases.append(self.single_unary_test(case)) + + self.mixed_nan_test(cases) + + return '\n'.join(cases) + + @property + def mixed_sqrt_nan_test_data(self): + return { + "canon": [ + '-1.0 nan 4.0 9.0', + ('nan', 'nan', '2.0', '3.0') + ], + 'arith': [ + 'nan:0x200000 -nan:0x200000 16.0 25.0', + ('nan', 'nan', '4.0', '5.0') + ], + 'mixed': [ + '-inf nan:0x200000 36.0 49.0', + ('canon', 'arith', '6.0', '7.0') + ] + } + + def mixed_nan_test(self, cases): + """Mixed f32x4 tests when only expects canonical NaNs in a subset of lanes. + """ + mixed_cases = ['\n\n;; Mixed f32x4 tests when some lanes are NaNs', '(module\n'] + cases.extend(mixed_cases) + for test_type, test_data in sorted(self.mixed_sqrt_nan_test_data.items()): + func = [' (func $f32x4_sqrt_{} (result v128)'.format(test_type), + ' v128.const f32x4 {}'.format(test_data[0]), + ' f32x4.sqrt)'] + cases.extend(func) + for i, test in enumerate(test_data[1]): + test = [' (func (export "f32x4_extract_lane_{}_{}") (result f32)'.format( + test_type, i), + ' (f32x4.extract_lane {} (call $f32x4_sqrt_{})))'.format( + i, test_type)] + cases.extend(test) + cases.append('') + cases.append(')\n') + + for test_type, test_data in sorted(self.mixed_sqrt_nan_test_data.items()): + template = '({} (invoke "f32x4_extract_lane_{}_{}"))' + for i, result in enumerate(test_data[1]): + if test_type == 'canon' and result == 'nan': + cases.append(template.format( + 'assert_return_canonical_nan', test_type, i)) + elif test_type == 'arith' and result == 'nan': + cases.append(template.format( + 'assert_return_arithmetic_nan', test_type, i)) + elif result == 'canon': + cases.append(template.format( + 'assert_return_canonical_nan', test_type, i)) + elif result == 'arith': + 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)) + + +def gen_test_cases(): + simd_f32x4_arith = Simdf32x4ArithmeticCase() + simd_f32x4_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 new file mode 100644 index 000000000..a286f3fe2 --- /dev/null +++ b/test/core/simd/meta/simd_f64x2_cmp.py @@ -0,0 +1,314 @@ +#!/usr/bin/env python3 + +""" +This file is used for generating simd_f64x2_cmp.wast file. +Which inherites from `SimdArithmeticCase` class, overloads +the `get_test_cases` method, and reset the Test Case template. +The reason why this is different from other cmp files is that +f64x2 only has 6 comparison instructions but with amounts of +test datas. +""" + +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') + + +class Simdf64x2CmpCase(SimdArithmeticCase): + LANE_LEN = 4 + LANE_TYPE = 'f64x2' + + UNARY_OPS = () + BINARY_OPS = ('eq', 'ne', 'lt', 'le', 'gt', 'ge',) + + FLOAT_NUMBERS_SPECIAL = ('0x1p-1074', '-inf', '0x1.921fb54442d18p+2', + '0x1p+0', '-0x1.fffffffffffffp+1023', '-0x0p+0', '-0x1p-1', '0x1.fffffffffffffp+1023', + '-0x1p-1074', '-0x1p-1022', '0x1p-1', '-0x1.921fb54442d18p+2', + '0x0p+0', 'inf', '-0x1p+0', '0x1p-1022' + ) + + FLOAT_NUMBERS_NORMAL = ('-1', '0', '1', '2.0') + + NAN_NUMBERS = ('nan', '-nan', 'nan:0x4000000000000', '-nan:0x4000000000000') + + binary_params_template = ('({} (invoke "{}" ', '{}', '{})', '{})') + unary_param_template = ('({} (invoke "{}" ', '{})', '{})') + binary_nan_template = ('({} (invoke "{}" ', '{}', '{}))') + unary_nan_template = ('({} (invoke "{}" ', '{}))') + + def full_op_name(self, op_name): + return self.LANE_TYPE + '.' + op_name + + @staticmethod + def v128_const(lane, val): + lane_cnt = 2 if lane in ['f64x2', 'i64x2'] else 4 + return '(v128.const {} {})'.format(lane, ' '.join([str(val)] * lane_cnt)) + + @property + def combine_ternary_arith_test_data(self): + return {} + + @property + def combine_binary_arith_test_data(self): + return ['f64x2.eq', 'f64x2.ne', 'f64x2.lt', 'f64x2.le', 'f64x2.gt', 'f64x2.ge'] + + def single_binary_test(self, case): + """Format a test case in 2 or 3 lines + + :param case: list of elements about the test case + :return: test cases with 2 v128.const f64x2 operands, 3 lines at most + """ + op_name = case[1] + arg1 = self.v128_const(self.LANE_TYPE, case[2]) + arg2 = self.v128_const(self.LANE_TYPE, case[3]) + + if len(case) == 4: + line_head = self.binary_nan_template[0].format(case[0], op_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + lines = [ + line_head + self.binary_nan_template[1].format(arg1), + blank_head + self.binary_nan_template[2].format(arg2) + ] + elif len(case) == 5: + line_head = self.binary_params_template[0].format(case[0], op_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + result = self.v128_const('i64x2', case[-1]) + lines = [ + line_head + self.binary_params_template[1].format(arg1), + blank_head + self.binary_params_template[2].format(arg2), + blank_head + self.binary_params_template[3].format(result) + ] + else: + raise Exception('Invalid format for the test case!') + + return '\n'.join(lines) + + def single_unary_test(self, case): + """Format a test case in 1 line or 2 lines + + :param case: list of elements about the test case + :return: test cases with 2 v128.const f64x2 operands, 2 lines at most + """ + op_name = case[1] + arg = self.v128_const(self.LANE_TYPE, case[2]) + + if len(case) == 3: + line_head = self.unary_nan_template[0].format(case[0], op_name) + lines = [ + line_head + self.unary_nan_template[1].format(arg) + ] + elif len(case) == 4: + line_head = self.unary_param_template[0].format(case[0], op_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + result = self.v128_const(self.LANE_TYPE, case[-1]) + lines = [ + line_head + self.unary_param_template[1].format(arg), + blank_head + self.unary_param_template[2].format(result) + ] + else: + raise Exception('Invalid format for the test case!') + + return '\n'.join(lines) + + def get_combine_cases(self): + combine_cases = [';; combination\n(module (memory 1)'] + + # append funcs + binary_fn_template = ' (func (export "{}-in-block")\n' \ + ' (block\n' \ + ' (drop\n' \ + ' (block (result v128)\n' \ + ' ({}\n' \ + ' (block (result v128) (v128.load (i32.const 0)))\n' \ + ' (block (result v128) (v128.load (i32.const 1)))\n' \ + ' )\n' \ + ' )\n' \ + ' )\n' \ + ' )\n' \ + ' )' + for fn_name in self.combine_binary_arith_test_data: + combine_cases.append(binary_fn_template.format(fn_name, fn_name)) + + binary_fn_template = ' (func (export "nested-{fn}")\n' \ + ' (drop\n' \ + ' ({fn}\n' \ + ' ({fn}\n' \ + ' ({fn}\n' \ + ' (v128.load (i32.const 0))\n' \ + ' (v128.load (i32.const 1))\n' \ + ' )\n' \ + ' ({fn}\n' \ + ' (v128.load (i32.const 2))\n' \ + ' (v128.load (i32.const 3))\n' \ + ' )\n' \ + ' )\n' \ + ' ({fn}\n' \ + ' ({fn}\n' \ + ' (v128.load (i32.const 0))\n' \ + ' (v128.load (i32.const 1))\n' \ + ' )\n' \ + ' ({fn}\n' \ + ' (v128.load (i32.const 2))\n' \ + ' (v128.load (i32.const 3))\n' \ + ' )\n' \ + ' )\n' \ + ' )\n' \ + ' )\n' \ + ' )' \ + + for fn_name in self.combine_binary_arith_test_data: + combine_cases.append(binary_fn_template.format(fn=fn_name)) + + combine_cases.append(' (func (export "as-param")\n' + ' (drop\n' + ' (f64x2.eq\n' + ' (f64x2.ne\n' + ' (f64x2.lt\n' + ' (v128.load (i32.const 0))\n' + ' (v128.load (i32.const 1))\n' + ' )\n' + ' (f64x2.le\n' + ' (v128.load (i32.const 2))\n' + ' (v128.load (i32.const 3))\n' + ' )\n' + ' )\n' + ' (f64x2.gt\n' + ' (f64x2.ge\n' + ' (v128.load (i32.const 0))\n' + ' (v128.load (i32.const 1))\n' + ' )\n' + ' (f64x2.eq\n' + ' (v128.load (i32.const 2))\n' + ' (v128.load (i32.const 3))\n' + ' )\n' + ' )\n' + ' )\n' + ' )\n' + ' )') + + combine_cases.append(')') + + # append assert + binary_case_template = ('(assert_return (invoke "{fn}-in-block"))') + for fn_name in self.combine_binary_arith_test_data: + combine_cases.append(binary_case_template.format(fn=fn_name)) + + binary_case_template = ('(assert_return (invoke "nested-{fn}"))') + for fn_name in self.combine_binary_arith_test_data: + combine_cases.append(binary_case_template.format(fn=fn_name)) + + combine_cases.append('(assert_return (invoke "as-param"))\n') + + return '\n'.join(combine_cases) + + def get_normal_case(self): + """Normal test cases from WebAssembly core tests + """ + cases = [] + binary_test_data = [] + unary_test_data = [] + + for op in self.BINARY_OPS: + 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) + 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) + 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) + binary_test_data.append(['assert_return', op_name, p1, p2, result]) + + for case in binary_test_data: + cases.append(self.single_binary_test(case)) + + for case in unary_test_data: + cases.append(self.single_unary_test(case)) + + self.get_unknown_operator_case(cases) + + return '\n'.join(cases) + + def get_unknown_operator_case(self, cases): + """Unknown operator cases. + """ + + tpl_assert = "(assert_malformed (module quote \"(memory 1) (func " \ + " (param $x v128) (param $y v128) (result v128) " \ + "({}.{} (local.get $x) (local.get $y)))\") \"unknown operator\")" + + cases.append('\n\n;; unknown operators') + + for lane_type in ['f2x64']: + for op in self.BINARY_OPS: + cases.append(tpl_assert.format(lane_type, + op, + ' '.join([self.v128_const('i32x4', '0')]*2))) + + def gen_test_cases(self): + wast_filename = '../simd_{lane_type}_cmp.wast'.format(lane_type=self.LANE_TYPE) + with open(wast_filename, 'w') as fp: + txt_test_case = self.get_all_cases() + txt_test_case = txt_test_case.replace('f64x2 arithmetic', 'f64x2 comparison') + fp.write(txt_test_case) + + +def gen_test_cases(): + simd_f64x2_cmp = Simdf64x2CmpCase() + simd_f64x2_cmp.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_i16x8_arith.py b/test/core/simd/meta/simd_i16x8_arith.py new file mode 100644 index 000000000..2c750b0c5 --- /dev/null +++ b/test/core/simd/meta/simd_i16x8_arith.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 + +""" +Generate i16x8 integer arithmetic operation cases. +""" + +from simd_arithmetic import SimdArithmeticCase + + +class SimdI16x8ArithmeticCase(SimdArithmeticCase): + + LANE_LEN = 8 + LANE_TYPE = 'i16x8' + + @property + def hex_binary_op_test_data(self): + return [ + ('0x3fff', '0x4000'), + ('0x4000', '0x4000'), + ('-0x3fff', '-0x4000'), + ('-0x4000', '-0x4000'), + ('-0x4000', '-0x4001'), + ('0x7fff', '0x7fff'), + ('0x7fff', '0x01'), + ('0x8000', '-0x01'), + ('0x7fff', '0x8000'), + ('0x8000', '0x8000'), + ('0xffff', '0x01'), + ('0xffff', '0xffff') + ] + + @property + def hex_unary_op_test_data(self): + return ['0x01', '-0x01', '-0x8000', '-0x7fff', '0x7fff', '0x8000', '0xffff'] + + @property + def i16x8_i8x16_test_data(self): + return { + 'i16x8.add': [ + [['0x7fff', ['0', '0x80'] * 8], '-1', ['i16x8', 'i8x16', 'i16x8']], + [['1', '255'], '0', ['i16x8', 'i8x16', 'i16x8']] + ], + 'i16x8.sub': [ + [['0x7fff', ['0', '0x80'] * 8], '-1', ['i16x8', 'i8x16', 'i16x8']], + [['1', '255'], '0x02', ['i16x8', 'i8x16', 'i16x8']] + ], + 'i16x8.mul': [ + [['0x1000', '0x10'], '0', ['i16x8', 'i8x16', 'i16x8']], + [['65535', '255'], '0x01', ['i16x8', 'i8x16', 'i16x8']] + ] + } + + @property + def i16x8_i32x4_test_data(self): + return { + 'i16x8.add': [ + [['0x7fff', '0x80008000'], '-1', ['i16x8', 'i32x4', 'i16x8']], + [['1', '0xffffffff'], '0', ['i16x8', 'i32x4', 'i16x8']] + ], + 'i16x8.sub': [ + [['0x7fff', '0x80008000'], '-1', ['i16x8', 'i32x4', 'i16x8']], + [['1', '0xffffffff'], '0x02', ['i16x8', 'i32x4', 'i16x8']] + ], + 'i16x8.mul': [ + [['0x8000', '0x00020002'], '0', ['i16x8', 'i32x4', 'i16x8']], + [['65535', '0xffffffff'], '0x01', ['i16x8', 'i32x4', 'i16x8']] + ] + } + + @property + def i16x8_f32x4_test_data(self): + return { + 'i16x8.add': [ + [['0x8000', '+0.0'], '0x8000', ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '-0.0'], ['0x8000', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '1.0'], ['0x8000', '0xbf80'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '-1.0'], ['0x8000', '0x3f80'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0x01', '0x7f81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0x01', '0xff81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0x7fc1'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ], + 'i16x8.sub': [ + [['0x8000', '+0.0'], '0x8000', ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '-0.0'], ['0x8000', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '1.0'], ['0x8000', '0x4080'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '-1.0'], ['0x8000', '0xc080'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0x01', '0x8081'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0x01', '0x81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0x8041'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ], + 'i16x8.mul': [ + [['0x8000', '+0.0'], '0', ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '-0.0'], '0', ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '1.0'], '0', ['i16x8', 'f32x4', 'i16x8']], + [['0x8000', '-1.0'], '0', ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0', '0x7f80'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0', '0xff80'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0', '0x7fc0'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ] + } + + @property + def combine_dec_hex_test_data(self): + return { + 'i16x8.add': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0'] * 8, ['i16x8'] * 3] + ], + 'i16x8.sub': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0', '0x02', '0x04', '0x06', '0x08', '0x0a', '0x0c', '0x0e'], ['i16x8'] * 3] + ], + 'i16x8.mul': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0', '0xffff', '0xfffc', '0xfff7', '0xfff0', '0xffe7', '0xffdc', '0xffcf'], + ['i16x8'] * 3] + ] + } + + @property + def range_test_data(self): + return { + 'i16x8.add': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + [str(i * 3) for i in range(8)], ['i16x8'] * 3] + ], + 'i16x8.sub': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + [str(-i) for i in range(8)], ['i16x8'] * 3] + ], + 'i16x8.mul': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + ['0', '0x02', '0x08', '0x12', '0x20', '0x32', '0x48', '0x62'], + ['i16x8'] * 3] + ] + } + + @property + def full_bin_test_data(self): + return [ + self.i16x8_i8x16_test_data, + self.i16x8_i32x4_test_data, + self.i16x8_f32x4_test_data, + self.combine_dec_hex_test_data, + self.range_test_data + ] + + +def gen_test_cases(): + simd_i16x8_arith = SimdI16x8ArithmeticCase() + simd_i16x8_arith.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_i32x4_arith.py b/test/core/simd/meta/simd_i32x4_arith.py new file mode 100644 index 000000000..5f2dfc19c --- /dev/null +++ b/test/core/simd/meta/simd_i32x4_arith.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 + +""" +Generate i32x4 integer arithmetic operation cases. +""" + +from simd_arithmetic import SimdArithmeticCase + + +class SimdI32x4ArithmeticCase(SimdArithmeticCase): + + LANE_LEN = 4 + LANE_TYPE = 'i32x4' + + @property + def hex_binary_op_test_data(self): + return [ + ('0x3fffffff', '0x40000000'), + ('0x40000000', '0x40000000'), + ('-0x3fffffff', '-0x40000000'), + ('-0x40000000', '-0x40000000'), + ('-0x40000000', '-0x40000001'), + ('0x7fffffff', '0x7fffffff'), + ('0x7fffffff', '0x01'), + ('0x80000000', '-0x01'), + ('0x7fffffff', '0x80000000'), + ('0x80000000', '0x80000000'), + ('0xffffffff', '0x01'), + ('0xffffffff', '0xffffffff') + ] + + @property + def hex_unary_op_test_data(self): + return ['0x01', '-0x01', '-0x80000000', '-0x7fffffff', '0x7fffffff', '0x80000000', '0xffffffff'] + + @property + def i32x4_i8x16_test_data(self): + return { + 'i32x4.add': [ + [['0x7fffffff', ['0', '0', '0', '0x80'] * 4], '-1', ['i32x4', 'i8x16', 'i32x4']], + [['1', '255'], '0', ['i32x4', 'i8x16', 'i32x4']] + ], + 'i32x4.sub': [ + [['0x7fffffff', ['0', '0', '0', '0x80'] * 4], '-1', ['i32x4', 'i8x16', 'i32x4']], + [['1', '255'], '2', ['i32x4', 'i8x16', 'i32x4']] + ], + 'i32x4.mul': [ + [['0x10000000', '0x10'], '0', ['i32x4', 'i8x16', 'i32x4']], + [['0xffffffff', '255'], '1', ['i32x4', 'i8x16', 'i32x4']] + ] + } + + @property + def i32x4_i16x8_test_data(self): + return { + 'i32x4.add': [ + [['0x7fffffff', ['0', '0x8000'] * 4], '-1', ['i32x4', 'i16x8', 'i32x4']], + [['1', '0xffff'], '0', ['i32x4', 'i16x8', 'i32x4']] + ], + 'i32x4.sub': [ + [['0x7fffffff', ['0', '0x8000'] * 4], '-1', ['i32x4', 'i16x8', 'i32x4']], + [['1', '0xffff'], '0x02', ['i32x4', 'i16x8', 'i32x4']] + ], + 'i32x4.mul': [ + [['0x80000000', ['0', '0x02'] * 4], '0', ['i32x4', 'i16x8', 'i32x4']], + [['0xffffffff', '0xffff'], '1', ['i32x4', 'i16x8', 'i32x4']] + ] + } + + @property + def i32x4_f32x4_test_data(self): + return { + 'i32x4.add': [ + [['0x80000000', '+0.0'], '0x80000000', ['i32x4', 'f32x4', 'i32x4']], + [['0x80000000', '-0.0'], '0', ['i32x4', 'f32x4', 'i32x4']], + [['0x80000000', '1.0'], '0xbf800000', ['i32x4', 'f32x4', 'i32x4']], + [['0x80000000', '-1.0'], '0x3f800000', ['i32x4', 'f32x4', 'i32x4']], + [['1', '+inf'], '0x7f800001', ['i32x4', 'f32x4', 'i32x4']], + [['1', '-inf'], '0xff800001', ['i32x4', 'f32x4', 'i32x4']], + [['1', 'nan'], '0x7fc00001', ['i32x4', 'f32x4', 'i32x4']] + ], + 'i32x4.sub': [ + [['0x80000000', '+0.0'], '0x80000000', ['i32x4', 'f32x4', 'i32x4']], + [['0x80000000', '-0.0'], '0', ['i32x4', 'f32x4', 'i32x4']], + [['0x80000000', '1.0'], '0x40800000', ['i32x4', 'f32x4', 'i32x4']], + [['0x80000000', '-1.0'], '0xc0800000', ['i32x4', 'f32x4', 'i32x4']], + [['0x1', '+inf'], '0x80800001', ['i32x4', 'f32x4', 'i32x4']], + [['0x1', '-inf'], '0x00800001', ['i32x4', 'f32x4', 'i32x4']], + [['0x1', 'nan'], '0x80400001', ['i32x4', 'f32x4', 'i32x4']] + ], + 'i32x4.mul': [ + [['0x8000', '+0.0'], '0', ['i32x4', 'f32x4', 'i32x4']], + [['0x8000', '-0.0'], '0', ['i32x4', 'f32x4', 'i32x4']], + [['0x8000', '1.0'], '0', ['i32x4', 'f32x4', 'i32x4']], + [['0x8000', '-1.0'], '0', ['i32x4', 'f32x4', 'i32x4']], + [['0x1', '+inf'], '0x7f800000', ['i32x4', 'f32x4', 'i32x4']], + [['0x1', '-inf'], '0xff800000', ['i32x4', 'f32x4', 'i32x4']], + [['0x1', 'nan'], '0x7fc00000', ['i32x4', 'f32x4', 'i32x4']] + ] + } + + @property + def combine_dec_hex_test_data(self): + return { + 'i32x4.add': [ + [[['0', '1', '2', '3'], + ['0', '0xffffffff', '0xfffffffe', '0xfffffffd']], + ['0'] * 16, ['i32x4'] * 3] + ], + 'i32x4.sub': [ + [[['0', '1', '2', '3'], + ['0', '0xffffffff', '0xfffffffe', '0xfffffffd']], + ['0', '0x02', '0x04', '0x06'], ['i32x4'] * 3] + ], + 'i32x4.mul': [ + [[['0', '1', '2', '3'], + ['0', '0xffffffff', '0xfffffffe', '0xfffffffd']], + ['0', '0xffffffff', '0xfffffffc', '0xfffffff7'], + ['i32x4'] * 3] + ] + } + + @property + def range_test_data(self): + return { + 'i32x4.add': [ + [[[str(i) for i in range(4)], [str(i * 2) for i in range(4)]], + [str(i * 3) for i in range(4)], ['i32x4'] * 3] + ], + 'i32x4.sub': [ + [[[str(i) for i in range(4)], [str(i * 2) for i in range(4)]], + [str(-i) for i in range(4)], ['i32x4'] * 3] + ], + 'i32x4.mul': [ + [[[str(i) for i in range(4)], [str(i * 2) for i in range(4)]], + ['0', '0x02', '0x08', '0x12'], + ['i32x4'] * 3] + ] + } + + @property + def full_bin_test_data(self): + return [ + self.i32x4_i8x16_test_data, + self.i32x4_i16x8_test_data, + self.i32x4_f32x4_test_data, + self.combine_dec_hex_test_data, + self.range_test_data + ] + + +def gen_test_cases(): + simd_i32x4_arith = SimdI32x4ArithmeticCase() + simd_i32x4_arith.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_i8x16_arith.py b/test/core/simd/meta/simd_i8x16_arith.py new file mode 100644 index 000000000..9639d04a8 --- /dev/null +++ b/test/core/simd/meta/simd_i8x16_arith.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 + +""" +Generate i8x16 integer arithmetic operation cases. +""" + +from simd_arithmetic import SimdArithmeticCase + + +class SimdI8x16ArithmeticCase(SimdArithmeticCase): + + LANE_LEN = 16 + LANE_TYPE = 'i8x16' + BINARY_OPS = ('add', 'sub') + + @property + def hex_binary_op_test_data(self): + return [ + ('0x3f', '0x40'), + ('0x40', '0x40'), + ('-0x3f', '-0x40'), + ('-0x40', '-0x40'), + ('-0x40', '-0x41'), + ('0x7f', '0x7f'), + ('0x7f', '0x01'), + ('0x80', '-0x01'), + ('0x7f', '0x80'), + ('0x80', '0x80'), + ('0xff', '0x01'), + ('0xff', '0xff') + ] + + @property + def hex_unary_op_test_data(self): + return ['0x01', '-0x01', '-0x80', '-0x7f', '0x7f', '0x80', '0xff'] + + @property + def i8x16_i16x8_test_data(self): + return { + 'i8x16.add': [ + [['0x7f', '0x8080'], '-1', ['i8x16', 'i16x8', 'i8x16']], + [['1', '65535'], '0', ['i8x16', 'i16x8', 'i8x16']] + ], + 'i8x16.sub': [ + [['0x7f', '0x8080'], '-1', ['i8x16', 'i16x8', 'i8x16']], + [['1', '65535'], '2', ['i8x16', 'i16x8', 'i8x16']] + ] + } + + @property + def i8x16_i32x4_test_data(self): + return { + 'i8x16.add': [ + [['0x7f', '0x80808080'], '-1', ['i8x16', 'i32x4', 'i8x16']], + [['1', '0xffffffff'], '0', ['i8x16', 'i32x4', 'i8x16']] + ], + 'i8x16.sub': [ + [['0x7f', '0x80808080'], '-1', ['i8x16', 'i32x4', 'i8x16']], + [['1', '0xffffffff'], '2', ['i8x16', 'i32x4', 'i8x16']] + ] + } + + @property + def i8x16_f32x4_test_data(self): + return { + 'i8x16.add': [ + [['0x80', '+0.0'], '0x80', ['i8x16', 'f32x4', 'i8x16']], + [['0x80', '-0.0'], ['0x80', '0x80', '0x80', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['0x80', '1.0'], ['0x80', '0x80', '0', '0xbf'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['0x80', '-1.0'], ['0x80', '0x80', '0', '0x3f'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '+inf'], ['0x01', '0x01', '0x81', '0x80'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-inf'], ['0x01', '0x01', '0x81', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', 'nan'], ['0x01', '0x01', '0xc1', '0x80'] * 4, ['i8x16', 'f32x4', 'i8x16']] + ], + 'i8x16.sub': [ + [['0x80', '+0.0'], '0x80', ['i8x16', 'f32x4', 'i8x16']], + [['0x80', '-0.0'], ['0x80', '0x80', '0x80', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['0x80', '1.0'], ['0x80', '0x80', '0', '0x41'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['0x80', '-1.0'], ['0x80', '0x80', '0', '0xc1'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '+inf'], ['0x01', '0x01', '0x81', '0x82'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-inf'], ['0x01', '0x01', '0x81', '0x02'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', 'nan'], ['0x01', '0x01', '0x41', '0x82'] * 4, ['i8x16', 'f32x4', 'i8x16']] + ] + } + + @property + def combine_dec_hex_test_data(self): + return { + 'i8x16.add': [ + [[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], + ['0', '0xff', '0xfe', '0xfd', '0xfc', '0xfb', '0xfa', '0xf9', '0xf8', '0xf7', '0xf6', '0xf5', + '0xf4', '0xf3', '0xf2', '0xf1']], + ['0'] * 16, ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.sub': [ + [[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], + ['0', '0xff', '0xfe', '0xfd', '0xfc', '0xfb', '0xfa', '0xf9', '0xf8', '0xf7', '0xf6', '0xf5', + '0xf4', '0xf3', '0xf2', '0xf1']], + ['0', '0x02', '0x04', '0x06', '0x08', '0x0a', '0x0c', '0x0e', '0x10', '0x12', '0x14', '0x16', + '0x18', '0x1a', '0x1c', '0x1e'], + ['i8x16', 'i8x16', 'i8x16']] + ] + } + + @property + def range_test_data(self): + return { + 'i8x16.add': [ + [[[str(i) for i in range(16)], [str(i * 2) for i in range(16)]], + [str(i * 3) for i in range(16)], ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.sub': [ + [[[str(i) for i in range(16)], [str(i * 2) for i in range(16)]], + [str(-i) for i in range(16)], ['i8x16', 'i8x16', 'i8x16']] + ] + } + + @property + def combine_ternary_arith_test_data(self): + test_data = super().combine_ternary_arith_test_data + test_data.pop('mul-add') + test_data.pop('mul-sub') + return test_data + + @property + def combine_binary_arith_test_data(self): + test_data = super().combine_binary_arith_test_data + test_data.pop('mul-neg') + return test_data + + @property + def full_bin_test_data(self): + return [ + self.i8x16_i16x8_test_data, + self.i8x16_i32x4_test_data, + self.i8x16_f32x4_test_data, + self.combine_dec_hex_test_data, + self.range_test_data + ] + + +def gen_test_cases(): + simd_i8x16_arith = SimdI8x16ArithmeticCase() + simd_i8x16_arith.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/simd_sat_arith.py b/test/core/simd/meta/simd_sat_arith.py new file mode 100644 index 000000000..bee6744fc --- /dev/null +++ b/test/core/simd/meta/simd_sat_arith.py @@ -0,0 +1,421 @@ +#!/usr/bin/env python3 + +""" +Generate saturating integer arithmetic operation cases. +""" + +from simd_arithmetic import SimdArithmeticCase + + +class SimdSaturateArithmeticCases(SimdArithmeticCase): + UNARY_OPS = () + BINARY_OPS = ('add_saturate_s', 'add_saturate_u', + 'sub_saturate_s', 'sub_saturate_u') + malformed_template = '(assert_malformed (module quote\n "(func (result v128) ' \ + '({}.{} ({}) ({})))")\n "unknown operator")' + + def gen_test_cases(self): + wast_filename = '../simd_{lane_type}_sat_arith.wast'.format(lane_type=self.LANE_TYPE) + with open(wast_filename, 'w') as fp: + fp.write(self.get_all_cases()) + + def gen_test_template(self): + return super().gen_test_template().replace('{invalid_cases}', + '{malformed_cases}\n\n{invalid_cases}') + + def v128_const(self, lane, val, lane_len=None): + if not lane_len: + lane_len = self.LANE_LEN + + return 'v128.const {} {}'.format(lane, ' '.join([str(val)] * lane_len)) + + def get_malformed_cases(self): + malformed_cases = [';; Malformed cases: non-existent op names'] + inst_ops = ['add', 'sub', 'mul', 'div'] + + # The op names should contain _s or _u suffixes, there is no mul or div + # for saturating integer arithmetic operation + for op in inst_ops: + malformed_cases.append(self.malformed_template.format( + self.LANE_TYPE, '_'.join([op, 'saturate']), + self.v128_const(self.LANE_TYPE, '1'), self.v128_const(self.LANE_TYPE, '2'))) + + return '\n'.join(malformed_cases) + + def get_all_cases(self): + case_data = {'lane_type': self.LANE_TYPE, + 'normal_cases': self.get_normal_case(), + 'malformed_cases': self.get_malformed_cases(), + 'invalid_cases': self.get_invalid_cases(), + 'combine_cases': self.get_combine_cases() + } + return self.gen_test_template().format(**case_data) + + @property + def combine_ternary_arith_test_data(self): + return { + 'sat-add_s-sub_s': [ + [str(self.lane.quarter)] * self.LANE_LEN, + [str(self.lane.max)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN + ], + 'sat-add_s-sub_u': [ + [str(self.lane.mask)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN, + ['-1'] * self.LANE_LEN + ], + 'sat-add_u-sub_s': [ + [str(self.lane.max)] * self.LANE_LEN, + ['-1'] * self.LANE_LEN, + [str(self.lane.max)] * self.LANE_LEN, + [str(self.lane.mask - 1)] * self.LANE_LEN + ], + 'sat-add_u-sub_u': [ + [str(self.lane.mask)] * self.LANE_LEN, + ['0'] * self.LANE_LEN, + ['1'] * self.LANE_LEN, + [str(self.lane.mask)] * self.LANE_LEN + ] + } + + @property + def combine_binary_arith_test_data(self): + return { + 'sat-add_s-neg': [ + [str(self.lane.min)] * self.LANE_LEN, + [str(self.lane.max)] * self.LANE_LEN, + ['-1'] * self.LANE_LEN + ], + 'sat-add_u-neg': [ + [str(self.lane.max)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN, + [str(self.lane.mask)] * self.LANE_LEN + ], + 'sat-sub_s-neg': [ + [str(self.lane.min)] * self.LANE_LEN, + [str(self.lane.max)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN + ], + 'sat-sub_u-neg': [ + [str(self.lane.max)] * self.LANE_LEN, + [str(self.lane.min)] * self.LANE_LEN, + ['1'] * self.LANE_LEN + ] + } + + def get_combine_cases(self): + combine_cases = [';; combination\n(module'] + ternary_fn_template = ' (func (export "{fn}") (param v128 v128 v128) (result v128)\n' \ + ' ({lane}.{op1} ({lane}.{op2} (local.get 0) (local.get 1))'\ + '(local.get 2)))' + for fn_name in sorted(self.combine_ternary_arith_test_data): + fn_parts = fn_name.split('-') + operator1 = fn_parts[1].replace('_', '_saturate_') + operator2 = fn_parts[2].replace('_', '_saturate_') + combine_cases.append(ternary_fn_template.format(fn=fn_name, + lane=self.LANE_TYPE, + op1=operator1, + op2=operator2)) + binary_fn_template = ' (func (export "{fn}") (param v128 v128) (result v128)\n'\ + ' ({lane}.{op1} ({lane}.{op2} (local.get 0)) (local.get 1)))' + for fn_name in sorted(self.combine_binary_arith_test_data): + fn_parts = fn_name.split('-') + operator1 = fn_parts[1].replace('_', '_saturate_') + combine_cases.append(binary_fn_template.format(fn=fn_name, + lane=self.LANE_TYPE, + op1=operator1, + op2=fn_parts[2])) + combine_cases.append(')\n') + ternary_case_template = ('(assert_return (invoke "{}" ', + '(v128.const {} {})', + '(v128.const {} {})', + '(v128.const {} {}))', + '(v128.const {} {}))') + for fn_name, test in sorted(self.combine_ternary_arith_test_data.items()): + line_head = ternary_case_template[0].format(fn_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + combine_cases.append('\n'.join([ + line_head + ternary_case_template[1].format( + self.LANE_TYPE, ' '.join(test[0])), + blank_head + ternary_case_template[2].format( + self.LANE_TYPE, ' '.join(test[1])), + blank_head + ternary_case_template[3].format( + self.LANE_TYPE, ' '.join(test[2])), + blank_head + ternary_case_template[4].format( + self.LANE_TYPE, ' '.join(test[3]))])) + binary_case_template = ('(assert_return (invoke "{}" ', + '(v128.const {} {})', + '(v128.const {} {}))', + '(v128.const {} {}))') + for fn_name, test in sorted(self.combine_binary_arith_test_data.items()): + line_head = binary_case_template[0].format(fn_name) + line_head_len = len(line_head) + blank_head = ' ' * line_head_len + combine_cases.append('\n'.join([ + line_head + binary_case_template[1].format( + self.LANE_TYPE, ' '.join(test[0])), + blank_head + binary_case_template[2].format( + self.LANE_TYPE, ' '.join(test[1])), + blank_head + binary_case_template[3].format( + self.LANE_TYPE, ' '.join(test[2]))])) + return '\n'.join(combine_cases) + + +class SimdI8x16SaturateArithmeticCases(SimdSaturateArithmeticCases): + LANE_LEN = 16 + LANE_TYPE = 'i8x16' + + @property + def hex_binary_op_test_data(self): + return [ + ('0x3f', '0x40'), + ('0x40', '0x40'), + ('-0x3f', '-0x40'), + ('-0x40', '-0x40'), + ('-0x40', '-0x41'), + ('0x7f', '0x7f'), + ('0x7f', '0x01'), + ('0x80', '-0x01'), + ('0x7f', '0x80'), + ('0x80', '0x80'), + ('0xff', '0x01'), + ('0xff', '0xff') + ] + + @property + def hex_unary_op_test_data(self): + return ['0x01', '-0x01', '-0x80', '-0x7f', '0x7f', '0x80', '0xff'] + + @property + def i8x16_f32x4_test_data(self): + return { + 'i8x16.add_saturate_s': [ + [['0x80', '-0.0'], '0x80', ['i8x16', 'f32x4', 'i8x16']], + [['1', '+inf'], ['0x01', '0x01', '0x81', '0x7f'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-inf'], ['0x01', '0x01', '0x81', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', 'nan'], ['0x01', '0x01', '0xc1', '0x7f'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-nan'], ['0x01', '0x01', '0xc1', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']] + ], + 'i8x16.add_saturate_u': [ + [['0x80', '-0.0'], ['0x80', '0x80', '0x80', '0xff'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '+inf'], ['0x01', '0x01', '0x81', '0x80'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-inf'], ['0x01', '0x01', '0x81', '0xff'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', 'nan'], ['0x01', '0x01', '0xc1', '0x80'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-nan'], ['0x01', '0x01', '0xc1', '0xff'] * 4, ['i8x16', 'f32x4', 'i8x16']], + ], + 'i8x16.sub_saturate_s': [ + [['0x80', '-0.0'], ['0x80', '0x80', '0x80', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '+inf'], ['0x01', '0x01', '0x7f', '0x82'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-inf'], ['0x01', '0x01', '0x7f', '0x02'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', 'nan'], ['0x01', '0x01', '0x41', '0x82'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-nan'], ['0x01', '0x01', '0x41', '0x02'] * 4, ['i8x16', 'f32x4', 'i8x16']], + ], + 'i8x16.sub_saturate_u': [ + [['0x80', '-0.0'], ['0x80', '0x80', '0x80', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '+inf'], ['0x01', '0x01', '0', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-inf'], ['0x01', '0x01', '0', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', 'nan'], ['0x01', '0x01', '0', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + [['1', '-nan'], ['0x01', '0x01', '0', '0'] * 4, ['i8x16', 'f32x4', 'i8x16']], + ] + } + + @property + def combine_dec_hex_test_data(self): + return { + 'i8x16.add_saturate_s': [ + [[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], + ['0', '0xff', '0xfe', '0xfd', '0xfc', '0xfb', '0xfa', '0xf9', '0xf8', '0xf7', '0xf6', '0xf5', + '0xf4', '0xf3', '0xf2', '0xf1']], + ['0'] * 16, ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.add_saturate_u': [ + [[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], + ['0', '0xff', '0xfe', '0xfd', '0xfc', '0xfb', '0xfa', '0xf9', '0xf8', '0xf7', '0xf6', '0xf5', + '0xf4', '0xf3', '0xf2', '0xf1']], + ['0'] + ['0xff'] * 15, ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.sub_saturate_s': [ + [[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], + ['0', '0xff', '0xfe', '0xfd', '0xfc', '0xfb', '0xfa', '0xf9', '0xf8', '0xf7', '0xf6', '0xf5', + '0xf4', '0xf3', '0xf2', '0xf1']], + ['0', '0x02', '0x04', '0x06', '0x08', '0x0a', '0x0c', '0x0e', '0x10', '0x12', '0x14', '0x16', + '0x18', '0x1a', '0x1c', '0x1e'], + ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.sub_saturate_u': [ + [[['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15'], + ['0', '0xff', '0xfe', '0xfd', '0xfc', '0xfb', '0xfa', '0xf9', '0xf8', '0xf7', '0xf6', '0xf5', + '0xf4', '0xf3', '0xf2', '0xf1']], + ['0'] * 16, + ['i8x16', 'i8x16', 'i8x16']] + ], + } + + @property + def range_test_data(self): + return { + 'i8x16.add_saturate_s': [ + [[[str(i) for i in range(16)], [str(i * 2) for i in range(16)]], + [str(i * 3) for i in range(16)], ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.add_saturate_u': [ + [[[str(i) for i in range(16)], [str(i * 2) for i in range(16)]], + [str(i * 3) for i in range(16)], ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.sub_saturate_s': [ + [[[str(i) for i in range(16)], [str(i * 2) for i in range(16)]], + [str(-i) for i in range(16)], ['i8x16', 'i8x16', 'i8x16']] + ], + 'i8x16.sub_saturate_u': [ + [[[str(i) for i in range(16)], [str(i * 2) for i in range(16)]], + ['0'] * 16, ['i8x16', 'i8x16', 'i8x16']] + ], + } + + @property + def full_bin_test_data(self): + return [ + self.i8x16_f32x4_test_data, + self.combine_dec_hex_test_data, + self.range_test_data + ] + + def get_malformed_cases(self): + malformed_cases = [] + # There is no saturating integer arithmetic operation for i32x4 or f32x4. + for prefix in ['i32x4', 'f32x4']: + for op in ['add', 'sub']: + for suffix in ['s', 'u']: + malformed_cases.append(self.malformed_template.format( + prefix, '_'.join([op, 'saturate', suffix]), + self.v128_const(prefix, '0', lane_len=4), + self.v128_const(prefix, '0', lane_len=4) + )) + return super().get_malformed_cases() + '\n' + '\n'.join(malformed_cases) + + +class SimdI16x8SaturateArithmeticCases(SimdSaturateArithmeticCases): + LANE_LEN = 8 + LANE_TYPE = 'i16x8' + + @property + def hex_binary_op_test_data(self): + return [ + ('0x3fff', '0x4000'), + ('0x4000', '0x4000'), + ('-0x3fff', '-0x4000'), + ('-0x4000', '-0x4000'), + ('-0x4000', '-0x4001'), + ('0x7fff', '0x7fff'), + ('0x7fff', '0x01'), + ('0x8000', '-0x01'), + ('0x7fff', '0x8000'), + ('0x8000', '0x8000'), + ('0xffff', '0x01'), + ('0xffff', '0xffff') + ] + + @property + def hex_unary_op_test_data(self): + return ['0x01', '-0x01', '-0x8000', '-0x7fff', '0x7fff', '0x8000', '0xffff'] + + @property + def i16x8_f32x4_test_data(self): + return { + 'i16x8.add_saturate_s': [ + [['0x8000', '-0.0'], '0x8000', ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0x01', '0x7f81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0x01', '0xff81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0x7fc1'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-nan'], ['0x01', '0xffc1'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ], + 'i16x8.add_saturate_u': [ + [['0x8000', '-0.0'], ['0x8000', '0xffff'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0x01', '0x7f81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0x01', '0xff81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0x7fc1'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0x7fc1'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ], + 'i16x8.sub_saturate_s': [ + [['0x8000', '-0.0'], ['0x8000', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0x01', '0x8081'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0x01', '0x81'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0x8041'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-nan'], ['0x01', '0x41'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ], + 'i16x8.sub_saturate_u': [ + [['0x8000', '-0.0'], ['0x8000', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '+inf'], ['0x01', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-inf'], ['0x01', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', 'nan'], ['0x01', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']], + [['1', '-nan'], ['0x01', '0'] * 4, ['i16x8', 'f32x4', 'i16x8']] + ], + } + + @property + def combine_dec_hex_test_data(self): + return { + 'i16x8.add_saturate_s': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0'] * 8, ['i16x8'] * 3] + ], + 'i16x8.add_saturate_u': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0'] + ['0xffff'] * 7, ['i16x8'] * 3] + ], + 'i16x8.sub_saturate_s': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0', '2', '4', '6', '8', '10', '12', '14'], ['i16x8'] * 3] + ], + 'i16x8.sub_saturate_u': [ + [[['0', '1', '2', '3', '4', '5', '6', '7'], + ['0', '0xffff', '0xfffe', '0xfffd', '0xfffc', '0xfffb', '0xfffa', '0xfff9']], + ['0'] * 8, ['i16x8'] * 3] + ] + } + + @property + def range_test_data(self): + return { + 'i16x8.add_saturate_s': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + [str(i * 3) for i in range(8)], ['i16x8'] * 3] + ], + 'i16x8.add_saturate_u': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + [str(i * 3) for i in range(8)], ['i16x8'] * 3] + ], + 'i16x8.sub_saturate_s': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + [str(-i) for i in range(8)], ['i16x8'] * 3] + ], + 'i16x8.sub_saturate_u': [ + [[[str(i) for i in range(8)], [str(i * 2) for i in range(8)]], + ['0'] * 8, ['i16x8'] * 3] + ] + } + + @property + def full_bin_test_data(self): + return [ + self.i16x8_f32x4_test_data, + self.combine_dec_hex_test_data, + self.range_test_data + ] + + +def gen_test_cases(): + simd_i8x16_sat_arith = SimdI8x16SaturateArithmeticCases() + simd_i8x16_sat_arith.gen_test_cases() + simd_i16x8_sat_arith = SimdI16x8SaturateArithmeticCases() + simd_i16x8_sat_arith.gen_test_cases() + + +if __name__ == '__main__': + gen_test_cases() \ No newline at end of file diff --git a/test/core/simd/meta/test_assert.py b/test/core/simd/meta/test_assert.py index 48a057576..bbc258038 100644 --- a/test/core/simd/meta/test_assert.py +++ b/test/core/simd/meta/test_assert.py @@ -10,7 +10,7 @@ # Generate assert_return to test -class AssertReturn(object): +class AssertReturn: instruction = '' instruction_param = '' @@ -19,10 +19,6 @@ class AssertReturn(object): def __init__(self, instruction, instruction_param, expected_result): super(AssertReturn, self).__init__() - # Check the init parameters - if not instruction or not instruction_param or not expected_result: - raise Exception('AssertReturn: wrong param.') - # Convert to list if got str if isinstance(instruction_param, str): instruction_param = [instruction_param] @@ -49,8 +45,8 @@ def __str__(self): results = [] for result in self.expected_result: white_space = ' ' - if len(result) != 0: + if len(params) != 0 or len(results) != 0: white_space = '\n ' + ' ' * head_len results.append(white_space + result) - return '{}{}){})'.format(assert_return, ''.join(params), ''.join(results)) + return '{}{}){})'.format(assert_return, ''.join(params), ''.join(results)) \ No newline at end of file diff --git a/test/core/simd/simd_bit_shift.wast b/test/core/simd/simd_bit_shift.wast new file mode 100644 index 000000000..95b8140e4 --- /dev/null +++ b/test/core/simd/simd_bit_shift.wast @@ -0,0 +1,943 @@ +;; Test all the bit shift operators on major boundary values and all special values. + +(module + (func (export "i8x16.shl") (param $0 v128) (param $1 i32) (result v128) (i8x16.shl (local.get $0) (local.get $1))) + (func (export "i8x16.shr_s") (param $0 v128) (param $1 i32) (result v128) (i8x16.shr_s (local.get $0) (local.get $1))) + (func (export "i8x16.shr_u") (param $0 v128) (param $1 i32) (result v128) (i8x16.shr_u (local.get $0) (local.get $1))) + + (func (export "i16x8.shl") (param $0 v128) (param $1 i32) (result v128) (i16x8.shl (local.get $0) (local.get $1))) + (func (export "i16x8.shr_s") (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_s (local.get $0) (local.get $1))) + (func (export "i16x8.shr_u") (param $0 v128) (param $1 i32) (result v128) (i16x8.shr_u (local.get $0) (local.get $1))) + + (func (export "i32x4.shl") (param $0 v128) (param $1 i32) (result v128) (i32x4.shl (local.get $0) (local.get $1))) + (func (export "i32x4.shr_s") (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_s (local.get $0) (local.get $1))) + (func (export "i32x4.shr_u") (param $0 v128) (param $1 i32) (result v128) (i32x4.shr_u (local.get $0) (local.get $1))) + + (func (export "i64x2.shl") (param $0 v128) (param $1 i32) (result v128) (i64x2.shl (local.get $0) (local.get $1))) + (func (export "i64x2.shr_s") (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_s (local.get $0) (local.get $1))) + (func (export "i64x2.shr_u") (param $0 v128) (param $1 i32) (result v128) (i64x2.shr_u (local.get $0) (local.get $1))) + + ;; shifting by a constant amount + ;; i8x16 + (func (export "i8x16.shl_1") (param $0 v128) (result v128) (i8x16.shl (local.get $0) (i32.const 1))) + (func (export "i8x16.shr_u_8") (param $0 v128) (result v128) (i8x16.shr_u (local.get $0) (i32.const 8))) + (func (export "i8x16.shr_s_9") (param $0 v128) (result v128) (i8x16.shr_s (local.get $0) (i32.const 9))) + + ;; i16x8 + (func (export "i16x8.shl_1") (param $0 v128) (result v128) (i16x8.shl (local.get $0) (i32.const 1))) + (func (export "i16x8.shr_u_16") (param $0 v128) (result v128) (i16x8.shr_u (local.get $0) (i32.const 16))) + (func (export "i16x8.shr_s_17") (param $0 v128) (result v128) (i16x8.shr_s (local.get $0) (i32.const 17))) + + ;; i32x4 + (func (export "i32x4.shl_1") (param $0 v128) (result v128) (i32x4.shl (local.get $0) (i32.const 1))) + (func (export "i32x4.shr_u_32") (param $0 v128) (result v128) (i32x4.shr_u (local.get $0) (i32.const 32))) + (func (export "i32x4.shr_s_33") (param $0 v128) (result v128) (i32x4.shr_s (local.get $0) (i32.const 33))) + + ;; i64x2 + (func (export "i64x2.shl_1") (param $0 v128) (result v128) (i64x2.shl (local.get $0) (i32.const 1))) + (func (export "i64x2.shr_u_64") (param $0 v128) (result v128) (i64x2.shr_u (local.get $0) (i32.const 64))) + (func (export "i64x2.shr_s_65") (param $0 v128) (result v128) (i64x2.shr_s (local.get $0) (i32.const 65))) +) + +;; i8x16 shl +;; amount less than lane width +(assert_return (invoke "i8x16.shl" (v128.const i8x16 -128 -64 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D) + (i32.const 1)) + (v128.const i8x16 0 -128 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF 0xA0 0xB0 0xC0 0xD0 0xE0 0xF0 0x0A 0x0B 0x0C 0x0D) + (i32.const 4)) + (v128.const i8x16 0xA0 0xB0 0xC0 0xD0 0xE0 0xF0 0x00 0x00 0x00 0x00 0x00 0x00 0xA0 0xB0 0xC0 0xD0)) +;; amount is multiple of lane width +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 8)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 32)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 128)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 256)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i8x16.shl" (v128.const i8x16 -128 -64 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D) + (i32.const 9)) + (v128.const i8x16 0 -128 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 9)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 17)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 33)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 129)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 257)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 513)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shl" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 514)) + (v128.const i8x16 0 4 8 12 16 20 24 28 32 36 0x28 0x2C 0x30 0x34 0x38 0x3C)) +;; i8x16 shr_u +;; amount less than lane width +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 -128 -64 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D) + (i32.const 1)) + (v128.const i8x16 64 96 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF 0xA0 0xB0 0xC0 0xD0 0xE0 0xF0 0x0A 0x0B 0x0C 0x0D) + (i32.const 4)) + (v128.const i8x16 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x00 0x00 0x00 0x00)) +;; amount is multiple of lane width +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 8)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 32)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 128)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 256)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 -128 -64 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D) + (i32.const 9)) + (v128.const i8x16 64 96 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 9)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 17)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 33)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 129)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 257)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 513)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 514)) + (v128.const i8x16 0 0 0 0 1 1 1 1 2 2 0x02 0x02 0x03 0x03 0x03 0x03)) +;; i8x16 shr_s +;; amount less than lane width +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 -128 -64 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D) + (i32.const 1)) + (v128.const i8x16 192 224 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0xAA 0xBB 0xCC 0xDD 0xEE 0xFF 0xA0 0xB0 0xC0 0xD0 0xE0 0xF0 0x0A 0x0B 0x0C 0x0D) + (i32.const 4)) + (v128.const i8x16 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF 0xFA 0xFB 0xFC 0xFD 0xFE 0xFF 0x00 0x00 0x00 0x00)) +;; amount is multiple of lane width +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 8)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 32)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 128)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 256)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 -128 -64 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D) + (i32.const 9)) + (v128.const i8x16 192 224 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 9)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 17)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 33)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 129)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 257)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 513)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) +(assert_return (invoke "i8x16.shr_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F) + (i32.const 514)) + (v128.const i8x16 0 0 0 0 1 1 1 1 2 2 0x02 0x02 0x03 0x03 0x03 0x03)) +;; shifting by a constant amount +(assert_return (invoke "i8x16.shl_1" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 0x14 0x16 0x18 0x1A 0x1C 0x1E)) +(assert_return (invoke "i8x16.shr_u_8" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) +(assert_return (invoke "i8x16.shr_s_9" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 0x0A 0x0B 0x0C 0x0D 0x0e 0x0F)) + (v128.const i8x16 0 0 1 1 2 2 3 3 4 4 0x05 0x05 0x06 0x06 0x07 0x07)) + +;; i16x8 shl +;; amount less than lane width +(assert_return (invoke "i16x8.shl" (v128.const i16x8 -128 -64 0 1 2 3 4 5) + (i32.const 1)) + (v128.const i16x8 65280 65408 0 2 4 6 8 10)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0xAABB 0xCCDD 0xEEFF 0xA0B0 0xC0D0 0xE0F0 0x0A0B 0x0C0D) + (i32.const 4)) + (v128.const i16x8 0xABB0 0xCDD0 0xEFF0 0xB00 0xD00 0xF00 0xA0B0 0xC0D0)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 8)) + (v128.const i16x8 0 256 512 768 1024 1280 1536 1792)) +;; amount is multiple of lane width +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 32)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 128)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 256)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i16x8.shl" (v128.const i16x8 -128 -64 0 1 2 3 4 5) + (i32.const 17)) + (v128.const i16x8 65280 65408 0 2 4 6 8 10)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 17)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 33)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 129)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 257)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 513)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.shl" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 514)) + (v128.const i16x8 0 4 8 12 16 20 24 28)) +;; i16x8 shr_u +;; amount less than lane width +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 -128 -64 0 1 2 3 4 5) + (i32.const 1)) + (v128.const i16x8 32704 32736 0 0 1 1 2 2)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0xAABB 0xCCDD 0xEEFF 0xA0B0 0xC0D0 0xE0F0 0x0A0B 0x0C0D) + (i32.const 4)) + (v128.const i16x8 0xAAB 0xCCD 0xEEF 0xA0B 0xC0D 0xE0F 0x0A0 0x0C0)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 8)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +;; amount is multiple of lane width +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 32)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 128)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 256)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 -128 -64 0 1 2 3 4 5) + (i32.const 17)) + (v128.const i16x8 32704 32736 0 0 1 1 2 2)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 17)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 33)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 129)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 257)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 513)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 514)) + (v128.const i16x8 0 0 0 0 1 1 1 1)) +;; i16x8 shr_s +;; amount less than lane width +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 -128 -64 0 1 2 3 4 5) + (i32.const 1)) + (v128.const i16x8 65472 65504 0 0 1 1 2 2)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0xAABB 0xCCDD 0xEEFF 0xA0B0 0xC0D0 0xE0F0 0x0A0B 0x0C0D) + (i32.const 4)) + (v128.const i16x8 0xFAAB 0xFCCD 0xFEEF 0xFA0B 0xFC0D 0xFE0F 0x00A0 0x00C0)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 8)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +;; amount is multiple of lane width +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 32)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 128)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 256)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 -128 -64 0 1 2 3 4 5) + (i32.const 17)) + (v128.const i16x8 65472 65504 0 0 1 1 2 2)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 17)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 33)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 129)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 257)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 513)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) +(assert_return (invoke "i16x8.shr_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (i32.const 514)) + (v128.const i16x8 0 0 0 0 1 1 1 1)) +;; shifting by a constant amount +(assert_return (invoke "i16x8.shl_1" (v128.const i16x8 0 1 2 3 4 5 6 7)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.shr_u_16" (v128.const i16x8 0 1 2 3 4 5 6 7)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "i16x8.shr_s_17" (v128.const i16x8 0 1 2 3 4 5 6 7)) + (v128.const i16x8 0 0 1 1 2 2 3 3)) + +;; i32x4 shl +;; amount less than lane width +(assert_return (invoke "i32x4.shl" (v128.const i32x4 -2147483648 -32768 0 0x0A0B0C0D) + (i32.const 1)) + (v128.const i32x4 0 4294901760 0 0x1416181A)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0xAABBCCDD 0xEEFFA0B0 0xC0D0E0F0 0x0A0B0C0D) + (i32.const 4)) + (v128.const i32x4 0xABBCCDD0 0xEFFA0B00 0x0D0E0F00 0xA0B0C0D0)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 8)) + (v128.const i32x4 0 256 0x00000E00 0x00000F00)) +;; amount is multiple of lane width +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 32)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 128)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 256)) + (v128.const i32x4 0 1 0x0E 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i32x4.shl" (v128.const i32x4 -2147483648 -32768 0 0x0A0B0C0D) + (i32.const 33)) + (v128.const i32x4 0 4294901760 0 0x1416181A)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 33)) + (v128.const i32x4 0 2 0x1C 0x1E)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 65)) + (v128.const i32x4 0 2 0x1C 0x1E)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 129)) + (v128.const i32x4 0 2 0x1C 0x1E)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 257)) + (v128.const i32x4 0 2 0x1C 0x1E)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 513)) + (v128.const i32x4 0 2 0x1C 0x1E)) +(assert_return (invoke "i32x4.shl" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 514)) + (v128.const i32x4 0 4 0x38 0x3C)) +;; i32x4 shr_u +;; amount less than lane width +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 -2147483648 -32768 0x0000000C 0x0000000D) + (i32.const 1)) + (v128.const i32x4 1073741824 2147467264 0x00000006 0x00000006)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0xAABBCCDD 0xEEFFA0B0 0xC0D0E0F0 0x0A0B0C0D) + (i32.const 4)) + (v128.const i32x4 0x0AABBCCD 0x0EEFFA0B 0x0C0D0E0F 0x00A0B0C0)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 8)) + (v128.const i32x4 0 0 0x00000000 0x00000000)) +;; amount is multiple of lane width +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 32)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 128)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 256)) + (v128.const i32x4 0 1 0x0E 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 -2147483648 -32768 0x0000000C 0x0000000D) + (i32.const 33)) + (v128.const i32x4 1073741824 2147467264 0x00000006 0x00000006)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 33)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 65)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 129)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 257)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 513)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_u" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 514)) + (v128.const i32x4 0 0 0x03 0x03)) +;; i32x4 shr_s +;; amount less than lane width +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 -2147483648 -32768 0x0C 0x0D) + (i32.const 1)) + (v128.const i32x4 3221225472 4294950912 0x06 0x06)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0xAABBCCDD 0xEEFFA0B0 0xC0D0E0F0 0x0A0B0C0D) + (i32.const 4)) + (v128.const i32x4 0xfaabbccd 0xFEEFFA0B 0xFC0D0E0F 0x00A0B0C0)) +;; amount is multiple of lane width +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 8)) + (v128.const i32x4 0 0 0x00000000 0x00000000)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 32)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 128)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 256)) + (v128.const i32x4 0 1 0x0E 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 -2147483648 -32768 0x0C 0x0D) + (i32.const 33)) + (v128.const i32x4 3221225472 4294950912 0x06 0x06)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 33)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 65)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 129)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 257)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 513)) + (v128.const i32x4 0 0 0x07 0x07)) +(assert_return (invoke "i32x4.shr_s" (v128.const i32x4 0 1 0x0E 0x0F) + (i32.const 514)) + (v128.const i32x4 0 0 0x03 0x03)) + +;; shifting by a constant amount +(assert_return (invoke "i32x4.shl_1" (v128.const i32x4 0 1 0x0E 0x0F)) + (v128.const i32x4 0 2 28 30)) +(assert_return (invoke "i32x4.shr_u_32" (v128.const i32x4 0 1 0x0E 0x0F)) + (v128.const i32x4 0 1 0x0E 0x0F)) +(assert_return (invoke "i32x4.shr_s_33" (v128.const i32x4 0 1 0x0E 0x0F)) + (v128.const i32x4 0 0 7 7)) + +;; i64x2 shl +;; amount less than lane width +(assert_return (invoke "i64x2.shl" (v128.const i64x2 -9223372036854775808 -2147483648) + (i32.const 1)) + (v128.const i64x2 0 18446744069414584320)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 0xAABBCCDDEEFFA0B0 0xC0D0E0F00A0B0C0D) + (i32.const 4)) + (v128.const i64x2 0xABBCCDDEEFFA0B00 0xD0E0F00A0B0C0D0)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 0xAABBCCDDEEFFA0B0 0xC0D0E0F00A0B0C0D) + (i32.const 8)) + (v128.const i64x2 0xBBCCDDEEFFA0B000 0xD0E0F00A0B0C0D00)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 16)) + (v128.const i64x2 65536 0xF0000)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 32)) + (v128.const i64x2 4294967296 0xF00000000)) +;; amount is multiple of lane width +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 128)) + (v128.const i64x2 1 0x0F)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 256)) + (v128.const i64x2 1 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 65)) + (v128.const i64x2 2 0x1E)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 129)) + (v128.const i64x2 2 0x1E)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 257)) + (v128.const i64x2 2 0x1E)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 513)) + (v128.const i64x2 2 0x1E)) +(assert_return (invoke "i64x2.shl" (v128.const i64x2 1 0x0F) + (i32.const 514)) + (v128.const i64x2 4 0x3C)) +;; i64x2 shr_u +;; amount less than lane width +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 -9223372036854775808 -2147483648) + (i32.const 1)) + (v128.const i64x2 4611686018427387904 9223372035781033984)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 0xAABBCCDDEEFFA0B0 0xC0D0E0F00A0B0C0D) + (i32.const 4)) + (v128.const i64x2 0xAABBCCDDEEFFA0B 0xC0D0E0F00A0B0C0)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 0xAABBCCDDEEFFA0B0 0xC0D0E0F00A0B0C0D) + (i32.const 8)) + (v128.const i64x2 0xAABBCCDDEEFFA0 0xC0D0E0F00A0B0C)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 16)) + (v128.const i64x2 0 0x00)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 32)) + (v128.const i64x2 0 0x00)) +;; amount is multiple of lane width +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 128)) + (v128.const i64x2 1 0x0F)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 256)) + (v128.const i64x2 1 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 65)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 129)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 257)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 1 0x0F) + (i32.const 513)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_u" (v128.const i64x2 0 0x0F) + (i32.const 514)) + (v128.const i64x2 0 0x03)) +;; i64x2 shr_s +;; amount less than lane width +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 -9223372036854775808 -2147483648) + (i32.const 1)) + (v128.const i64x2 13835058055282163712 18446744072635809792)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 0xAABBCCDDEEFFA0B0 0xC0D0E0F00A0B0C0D) + (i32.const 4)) + (v128.const i64x2 0xFAABBCCDDEEFFA0B 0xFC0D0E0F00A0B0C0)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 0xFFAABBCCDDEEFFA0 0xC0D0E0F00A0B0C0D) + (i32.const 8)) + (v128.const i64x2 0xFFFFAABBCCDDEEFF 0xFFC0D0E0F00A0B0C)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 16)) + (v128.const i64x2 0 0x00)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 32)) + (v128.const i64x2 0 0x00)) +;; amount is multiple of lane width +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 128)) + (v128.const i64x2 1 0x0F)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 256)) + (v128.const i64x2 1 0x0F)) +;; amount greater than but not a multiple of lane width +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 -9223372036854775808 -2147483648) + (i32.const 65)) + (v128.const i64x2 13835058055282163712 18446744072635809792)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 0x0C 0x0D) + (i32.const 65)) + (v128.const i64x2 0x06 0x06)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 129)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 257)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 513)) + (v128.const i64x2 0 0x07)) +(assert_return (invoke "i64x2.shr_s" (v128.const i64x2 1 0x0F) + (i32.const 514)) + (v128.const i64x2 0 0x03)) +;; shifting by a constant amount +(assert_return (invoke "i64x2.shl_1" (v128.const i64x2 1 0x0F)) + (v128.const i64x2 2 0x1E)) +(assert_return (invoke "i64x2.shr_u_64" (v128.const i64x2 1 0x0F)) + (v128.const i64x2 1 0x0F)) +(assert_return (invoke "i64x2.shr_s_65" (v128.const i64x2 1 0x0F)) + (v128.const i64x2 0 0x07)) + +;; Combination + +(module (memory 1) + (func (export "i8x16.shl-in-block") + (block + (drop + (block (result v128) + (i8x16.shl + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i8x16.shr_s-in-block") + (block + (drop + (block (result v128) + (i8x16.shr_s + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i8x16.shr_u-in-block") + (block + (drop + (block (result v128) + (i8x16.shr_u + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i16x8.shl-in-block") + (block + (drop + (block (result v128) + (i16x8.shl + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i16x8.shr_s-in-block") + (block + (drop + (block (result v128) + (i16x8.shr_s + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i16x8.shr_u-in-block") + (block + (drop + (block (result v128) + (i16x8.shr_u + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i32x4.shl-in-block") + (block + (drop + (block (result v128) + (i32x4.shl + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i32x4.shr_s-in-block") + (block + (drop + (block (result v128) + (i32x4.shr_s + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i32x4.shr_u-in-block") + (block + (drop + (block (result v128) + (i32x4.shr_u + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i64x2.shl-in-block") + (block + (drop + (block (result v128) + (i64x2.shl + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i64x2.shr_s-in-block") + (block + (drop + (block (result v128) + (i64x2.shr_s + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "i64x2.shr_u-in-block") + (block + (drop + (block (result v128) + (i64x2.shr_u + (block (result v128) (v128.load (i32.const 0))) (i32.const 1) + ) + ) + ) + ) + ) + (func (export "nested-i8x16.shl") + (drop + (i8x16.shl + (i8x16.shl + (i8x16.shl + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i8x16.shr_s") + (drop + (i8x16.shr_s + (i8x16.shr_s + (i8x16.shr_s + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i8x16.shr_u") + (drop + (i8x16.shr_u + (i8x16.shr_u + (i8x16.shr_u + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i16x8.shl") + (drop + (i16x8.shl + (i16x8.shl + (i16x8.shl + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i16x8.shr_s") + (drop + (i16x8.shr_s + (i16x8.shr_s + (i16x8.shr_s + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i16x8.shr_u") + (drop + (i16x8.shr_u + (i16x8.shr_u + (i16x8.shr_u + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i32x4.shl") + (drop + (i32x4.shl + (i32x4.shl + (i32x4.shl + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i32x4.shr_s") + (drop + (i32x4.shr_s + (i32x4.shr_s + (i32x4.shr_s + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i32x4.shr_u") + (drop + (i32x4.shr_u + (i32x4.shr_u + (i32x4.shr_u + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i64x2.shl") + (drop + (i64x2.shl + (i64x2.shl + (i64x2.shl + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i64x2.shr_s") + (drop + (i64x2.shr_s + (i64x2.shr_s + (i64x2.shr_s + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (func (export "nested-i64x2.shr_u") + (drop + (i64x2.shr_u + (i64x2.shr_u + (i64x2.shr_u + (v128.load (i32.const 0)) (i32.const 1) + ) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) +) + +(assert_return (invoke "i8x16.shl-in-block")) +(assert_return (invoke "i8x16.shr_s-in-block")) +(assert_return (invoke "i8x16.shr_u-in-block")) +(assert_return (invoke "i16x8.shl-in-block")) +(assert_return (invoke "i16x8.shr_s-in-block")) +(assert_return (invoke "i16x8.shr_u-in-block")) +(assert_return (invoke "i32x4.shl-in-block")) +(assert_return (invoke "i32x4.shr_s-in-block")) +(assert_return (invoke "i32x4.shr_u-in-block")) +(assert_return (invoke "i64x2.shl-in-block")) +(assert_return (invoke "i64x2.shr_s-in-block")) +(assert_return (invoke "i64x2.shr_u-in-block")) +(assert_return (invoke "nested-i8x16.shl")) +(assert_return (invoke "nested-i8x16.shr_s")) +(assert_return (invoke "nested-i8x16.shr_u")) +(assert_return (invoke "nested-i16x8.shl")) +(assert_return (invoke "nested-i16x8.shr_s")) +(assert_return (invoke "nested-i16x8.shr_u")) +(assert_return (invoke "nested-i32x4.shl")) +(assert_return (invoke "nested-i32x4.shr_s")) +(assert_return (invoke "nested-i32x4.shr_u")) +(assert_return (invoke "nested-i64x2.shl")) +(assert_return (invoke "nested-i64x2.shr_s")) +(assert_return (invoke "nested-i64x2.shr_u")) + +;; Type check + +(assert_invalid (module (func (result v128) (i8x16.shl (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.shr_s (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.shr_u (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.shl (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.shr_s (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.shr_u (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.shl (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.shr_s (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.shr_u (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i64x2.shl (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i64x2.shr_s (i32.const 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i64x2.shr_u (i32.const 0) (i32.const 0)))) "type mismatch") + +;; Unknown operators + +(assert_malformed (module quote "(memory 1) (func (result v128) (i8x16.shl_s (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i8x16.shl_r (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i8x16.shr (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i16x8.shl_s (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i16x8.shl_r (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i16x8.shr (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i32x4.shl_s (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i32x4.shl_r (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i32x4.shr (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i64x2.shl_s (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i64x2.shl_r (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i64x2.shr (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (f32x4.shl (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (f32x4.shr_s (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (f32x4.shr_u (v128.const i32x4 0 0 0 0)))") "unknown operator") \ No newline at end of file diff --git a/test/core/simd/simd_bitwise.wast b/test/core/simd/simd_bitwise.wast new file mode 100644 index 000000000..f018c0949 --- /dev/null +++ b/test/core/simd/simd_bitwise.wast @@ -0,0 +1,566 @@ +;; Test all the bitwise operators on major boundary values and all special values. + +(module + (func (export "not") (param $0 v128) (result v128) (v128.not (local.get $0))) + (func (export "and") (param $0 v128) (param $1 v128) (result v128) (v128.and (local.get $0) (local.get $1))) + (func (export "or") (param $0 v128) (param $1 v128) (result v128) (v128.or (local.get $0) (local.get $1))) + (func (export "xor") (param $0 v128) (param $1 v128) (result v128) (v128.xor (local.get $0) (local.get $1))) + (func (export "bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + (v128.bitselect (local.get $0) (local.get $1) (local.get $2)) + ) +) + +;; i32x4 +(assert_return (invoke "not" (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "not" (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "not" (v128.const i32x4 -1 0 -1 0)) + (v128.const i32x4 0 -1 0 -1)) +(assert_return (invoke "not" (v128.const i32x4 0 -1 0 -1)) + (v128.const i32x4 -1 0 -1 0)) +(assert_return (invoke "not" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) +(assert_return (invoke "not" (v128.const i32x4 3435973836 3435973836 3435973836 3435973836)) + (v128.const i32x4 858993459 858993459 858993459 858993459)) +(assert_return (invoke "and" (v128.const i32x4 0 0 -1 -1) + (v128.const i32x4 0 -1 0 -1)) + (v128.const i32x4 0 0 0 -1)) +(assert_return (invoke "and" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "and" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "and" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "and" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "and" (v128.const i32x4 255 255 255 255) + (v128.const i32x4 85 85 85 85)) + (v128.const i32x4 85 85 85 85)) +(assert_return (invoke "and" (v128.const i32x4 255 255 255 255) + (v128.const i32x4 128 128 128 128)) + (v128.const i32x4 128 128 128 128)) +(assert_return (invoke "and" (v128.const i32x4 2863311530 2863311530 2863311530 2863311530) + (v128.const i32x4 10 128 5 165)) + (v128.const i32x4 10 128 0 160)) +(assert_return (invoke "and" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)) +(assert_return (invoke "and" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) +(assert_return (invoke "and" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0x0 0x0 0x0 0x0)) + (v128.const i32x4 0x0 0x0 0x0 0x0)) +(assert_return (invoke "and" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555) + (v128.const i32x4 0x5555 0xFFFF 0x55FF 0x5FFF)) + (v128.const i32x4 0x5555 0x5555 0x5555 0x5555)) +(assert_return (invoke "or" (v128.const i32x4 0 0 -1 -1) + (v128.const i32x4 0 -1 0 -1)) + (v128.const i32x4 0 -1 -1 -1)) +(assert_return (invoke "or" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "or" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "or" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) +(assert_return (invoke "or" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "or" (v128.const i32x4 255 255 255 255) + (v128.const i32x4 85 85 85 85)) + (v128.const i32x4 255 255 255 255)) +(assert_return (invoke "or" (v128.const i32x4 255 255 255 255) + (v128.const i32x4 128 128 128 128)) + (v128.const i32x4 255 255 255 255)) +(assert_return (invoke "or" (v128.const i32x4 2863311530 2863311530 2863311530 2863311530) + (v128.const i32x4 10 128 5 165)) + (v128.const i32x4 2863311530 2863311530 2863311535 2863311535)) +(assert_return (invoke "or" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) +(assert_return (invoke "or" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) +(assert_return (invoke "or" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0x0 0x0 0x0 0x0)) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) +(assert_return (invoke "or" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555) + (v128.const i32x4 0x5555 0xFFFF 0x55FF 0x5FFF)) + (v128.const i32x4 0x55555555 0x5555ffff 0x555555ff 0x55555fff)) +(assert_return (invoke "xor" (v128.const i32x4 0 0 -1 -1) + (v128.const i32x4 0 -1 0 -1)) + (v128.const i32x4 0 -1 -1 0)) +(assert_return (invoke "xor" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "xor" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "xor" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) +(assert_return (invoke "xor" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "xor" (v128.const i32x4 255 255 255 255) + (v128.const i32x4 85 85 85 85)) + (v128.const i32x4 170 170 170 170)) +(assert_return (invoke "xor" (v128.const i32x4 255 255 255 255) + (v128.const i32x4 128 128 128 128)) + (v128.const i32x4 127 127 127 127)) +(assert_return (invoke "xor" (v128.const i32x4 2863311530 2863311530 2863311530 2863311530) + (v128.const i32x4 10 128 5 165)) + (v128.const i32x4 2863311520 2863311402 2863311535 2863311375)) +(assert_return (invoke "xor" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) +(assert_return (invoke "xor" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555)) +(assert_return (invoke "xor" (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF) + (v128.const i32x4 0x0 0x0 0x0 0x0)) + (v128.const i32x4 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF 0xFFFFFFFF)) +(assert_return (invoke "xor" (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555) + (v128.const i32x4 0x5555 0xFFFF 0x55FF 0x5FFF)) + (v128.const i32x4 0x55550000 0x5555AAAA 0x555500AA 0x55550AAA)) +(assert_return (invoke "bitselect" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA) + (v128.const i32x4 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB) + (v128.const i32x4 0x00112345 0xF00FFFFF 0x10112021 0xBBAABBAA)) + (v128.const i32x4 0xBBAABABA 0xABBAAAAA 0xABAABBBA 0xAABBAABB)) +(assert_return (invoke "bitselect" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA) + (v128.const i32x4 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB) + (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)) + (v128.const i32x4 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB)) +(assert_return (invoke "bitselect" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA) + (v128.const i32x4 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB) + (v128.const i32x4 0x11111111 0x11111111 0x11111111 0x11111111)) + (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA)) +(assert_return (invoke "bitselect" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA) + (v128.const i32x4 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB 0xBBBBBBBB) + (v128.const i32x4 0x01234567 0x89ABCDEF 0xFEDCBA98 0x76543210)) + (v128.const i32x4 0xBABABABA 0xBABABABA 0xABABABAB 0xABABABAB)) +(assert_return (invoke "bitselect" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555) + (v128.const i32x4 0x01234567 0x89ABCDEF 0xFEDCBA98 0x76543210)) + (v128.const i32x4 0x54761032 0xDCFE98BA 0xAB89EFCD 0x23016745)) +(assert_return (invoke "bitselect" (v128.const i32x4 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA 0xAAAAAAAA) + (v128.const i32x4 0x55555555 0x55555555 0x55555555 0x55555555) + (v128.const i32x4 0x55555555 0xAAAAAAAA 0x00000000 0xFFFFFFFF)) + (v128.const i32x4 0x00000000 0xFFFFFFFF 0x55555555 0xAAAAAAAA)) + +;; for float special data [e.g. -nan nan -inf inf] +(assert_return (invoke "not" (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const f32x4 5.87747e-39 5.87747e-39 5.87747e-39 5.87747e-39)) +(assert_return (invoke "not" (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 -5.87747e-39 -5.87747e-39 -5.87747e-39 -5.87747e-39)) +(assert_return (invoke "not" (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0x007fffff 0x007fffff 0x007fffff 0x007fffff)) +(assert_return (invoke "not" (v128.const f32x4 inf inf inf inf)) + (v128.const i32x4 0x807fffff 0x807fffff 0x807fffff 0x807fffff)) +(assert_return (invoke "and" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "and" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "and" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "and" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "and" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "and" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "and" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "and" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "and" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "and" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "or" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "or" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "or" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "or" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "or" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "or" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "or" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "or" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "or" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "or" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "xor" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const f32x4 0 0 0 0)) +(assert_return (invoke "xor" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 -0 -0 -0 -0)) +(assert_return (invoke "xor" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0x00400000 0x00400000 0x00400000 0x00400000)) +(assert_return (invoke "xor" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf)) + (v128.const i32x4 0x80400000 0x80400000 0x80400000 0x80400000)) +(assert_return (invoke "xor" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 0 0 0 0)) +(assert_return (invoke "xor" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0x80400000 0x80400000 0x80400000 0x80400000)) +(assert_return (invoke "xor" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf)) + (v128.const i32x4 0x00400000 0x00400000 0x00400000 0x00400000)) +(assert_return (invoke "xor" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0 0 0 0)) +(assert_return (invoke "xor" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) +(assert_return (invoke "xor" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0 0 0 0)) +(assert_return (invoke "bitselect" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const i32x4 0xffc00000 0xffc00000 0xffc00000 0xffc00000)) +(assert_return (invoke "bitselect" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "bitselect" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "bitselect" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "bitselect" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "bitselect" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "bitselect" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "bitselect" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "bitselect" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "bitselect" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5 0xA5A5A5A5)) + (v128.const f32x4 inf inf inf inf)) + +;; Type check + +;; not +(assert_invalid (module (func (result v128) (v128.not (i32.const 0)))) "type mismatch") +;; and +(assert_invalid (module (func (result v128) (v128.and (i32.const 0) (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.and (v128.const i32x4 0 0 0 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.and (i32.const 0) (i32.const 0)))) "type mismatch") +;; or +(assert_invalid (module (func (result v128) (v128.or (i32.const 0) (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.or (v128.const i32x4 0 0 0 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.or (i32.const 0) (i32.const 0)))) "type mismatch") +;; xor +(assert_invalid (module (func (result v128) (v128.xor (i32.const 0) (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.xor (v128.const i32x4 0 0 0 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.xor (i32.const 0) (i32.const 0)))) "type mismatch") +;; bitselect +(assert_invalid (module (func (result v128) (v128.bitselect (i32.const 0) (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.bitselect (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0) (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (v128.bitselect (i32.const 0) (i32.const 0) (i32.const 0)))) "type mismatch") + +;; Combination + +(module (memory 1) + (func (export "v128.not-in-block") + (block + (drop + (block (result v128) + (v128.not + (block (result v128) (v128.load (i32.const 0))) + ) + ) + ) + ) + ) + (func (export "v128.and-in-block") + (block + (drop + (block (result v128) + (v128.and + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "v128.or-in-block") + (block + (drop + (block (result v128) + (v128.or + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "v128.xor-in-block") + (block + (drop + (block (result v128) + (v128.xor + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "v128.bitselect-in-block") + (block + (drop + (block (result v128) + (v128.bitselect + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + (block (result v128) (v128.load (i32.const 2))) + ) + ) + ) + ) + ) + (func (export "nested-v128.not") + (drop + (v128.not + (v128.not + (v128.not + (v128.load (i32.const 0)) + ) + ) + ) + ) + ) + (func (export "nested-v128.and") + (drop + (v128.and + (v128.and + (v128.and + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (v128.and + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + ) + (v128.and + (v128.and + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (v128.and + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + ) + ) + ) + ) + (func (export "nested-v128.or") + (drop + (v128.or + (v128.or + (v128.or + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (v128.or + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + ) + (v128.or + (v128.or + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (v128.or + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + ) + ) + ) + ) + (func (export "nested-v128.xor") + (drop + (v128.xor + (v128.xor + (v128.xor + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (v128.xor + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + ) + (v128.xor + (v128.xor + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (v128.xor + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + ) + ) + ) + ) + (func (export "nested-v128.bitselect") + (drop + (v128.bitselect + (v128.bitselect + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + ) + (v128.bitselect + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + ) + (v128.bitselect + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + ) + ) + ) + ) + (func (export "as-param") + (drop + (v128.or + (v128.and + (v128.not + (v128.load (i32.const 0)) + ) + (v128.not + (v128.load (i32.const 1)) + ) + ) + (v128.xor + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + (v128.bitselect + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + (v128.load (i32.const 2)) + ) + ) + ) + ) + ) +) +(assert_return (invoke "v128.not-in-block")) +(assert_return (invoke "v128.and-in-block")) +(assert_return (invoke "v128.or-in-block")) +(assert_return (invoke "v128.xor-in-block")) +(assert_return (invoke "v128.bitselect-in-block")) +(assert_return (invoke "nested-v128.not")) +(assert_return (invoke "nested-v128.and")) +(assert_return (invoke "nested-v128.or")) +(assert_return (invoke "nested-v128.xor")) +(assert_return (invoke "nested-v128.bitselect")) +(assert_return (invoke "as-param")) \ No newline at end of file diff --git a/test/core/simd/simd_boolean.wast b/test/core/simd/simd_boolean.wast new file mode 100644 index 000000000..402c0c984 --- /dev/null +++ b/test/core/simd/simd_boolean.wast @@ -0,0 +1,950 @@ +;; Test all the boolean operators on major boundary values and all special values. + +(module + (func (export "i8x16.any_true") (param $0 v128) (result i32) (i8x16.any_true (local.get $0))) + (func (export "i8x16.all_true") (param $0 v128) (result i32) (i8x16.all_true (local.get $0))) + + (func (export "i16x8.any_true") (param $0 v128) (result i32) (i16x8.any_true (local.get $0))) + (func (export "i16x8.all_true") (param $0 v128) (result i32) (i16x8.all_true (local.get $0))) + + (func (export "i32x4.any_true") (param $0 v128) (result i32) (i32x4.any_true (local.get $0))) + (func (export "i32x4.all_true") (param $0 v128) (result i32) (i32x4.all_true (local.get $0))) +) + +;; i8x16 +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 -1 0 1 2 3 4 5 6 7 8 9 0xA 0xB 0xC 0xD 0xF)) + (i32.const 1)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00)) + (i32.const 0)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF)) + (i32.const 1)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB)) + (i32.const 1)) +(assert_return (invoke "i8x16.any_true" (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 1)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 -1 0 1 2 3 4 5 6 7 8 9 0xA 0xB 0xC 0xD 0xF)) + (i32.const 0)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00)) + (i32.const 0)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF)) + (i32.const 1)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB)) + (i32.const 1)) +(assert_return (invoke "i8x16.all_true" (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 1)) + +;; i16x8 +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 -1 0 1 2 0xB 0xC 0xD 0xF)) + (i32.const 1)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00)) + (i32.const 0)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF)) + (i32.const 1)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB)) + (i32.const 1)) +(assert_return (invoke "i16x8.any_true" (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 1)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 -1 0 1 2 0xB 0xC 0xD 0xF)) + (i32.const 0)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00)) + (i32.const 0)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF)) + (i32.const 1)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB)) + (i32.const 1)) +(assert_return (invoke "i16x8.all_true" (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 1)) + +;; i32x4 +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 -1 0 1 0xF)) + (i32.const 1)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0x00 0x00 0x00 0x00)) + (i32.const 0)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0xFF 0xFF 0xFF 0xFF)) + (i32.const 1)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0xAB 0xAB 0xAB 0xAB)) + (i32.const 1)) +(assert_return (invoke "i32x4.any_true" (v128.const i32x4 0x55 0x55 0x55 0x55)) + (i32.const 1)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 -1 0 1 0xF)) + (i32.const 0)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0x00 0x00 0x00 0x00)) + (i32.const 0)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0xFF 0xFF 0xFF 0xFF)) + (i32.const 1)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0xAB 0xAB 0xAB 0xAB)) + (i32.const 1)) +(assert_return (invoke "i32x4.all_true" (v128.const i32x4 0x55 0x55 0x55 0x55)) + (i32.const 1)) + + +;; Combination + +(module (memory 1) + ;; as if condition + (func (export "i8x16_any_true_as_if_cond") (param v128) (result i32) + (if (result i32) (i8x16.any_true (local.get 0)) + (then (i32.const 1)) + (else (i32.const 0)) + ) + ) + (func (export "i16x8_any_true_as_if_cond") (param v128) (result i32) + (if (result i32) (i16x8.any_true (local.get 0)) + (then (i32.const 1)) + (else (i32.const 0)) + ) + ) + (func (export "i32x4_any_true_as_if_cond") (param v128) (result i32) + (if (result i32) (i32x4.any_true (local.get 0)) + (then (i32.const 1)) + (else (i32.const 0)) + ) + ) + (func (export "i8x16_all_true_as_if_cond") (param v128) (result i32) + (if (result i32) (i8x16.all_true (local.get 0)) + (then (i32.const 1)) + (else (i32.const 0)) + ) + ) + (func (export "i16x8_all_true_as_if_cond") (param v128) (result i32) + (if (result i32) (i16x8.all_true (local.get 0)) + (then (i32.const 1)) + (else (i32.const 0)) + ) + ) + (func (export "i32x4_all_true_as_if_cond") (param v128) (result i32) + (if (result i32) (i32x4.all_true (local.get 0)) + (then (i32.const 1)) + (else (i32.const 0)) + ) + ) + ;; any_true as select condition + (func (export "i8x16_any_true_as_select_cond") (param v128) (result i32) + (select (i32.const 1) (i32.const 0) (i8x16.any_true (local.get 0))) + ) + (func (export "i16x8_any_true_as_select_cond") (param v128) (result i32) + (select (i32.const 1) (i32.const 0) (i16x8.any_true (local.get 0))) + ) + (func (export "i32x4_any_true_as_select_cond") (param v128) (result i32) + (select (i32.const 1) (i32.const 0) (i32x4.any_true (local.get 0))) + ) + ;; all_true as select condition + (func (export "i8x16_all_true_as_select_cond") (param v128) (result i32) + (select (i32.const 1) (i32.const 0) (i8x16.all_true (local.get 0))) + ) + (func (export "i16x8_all_true_as_select_cond") (param v128) (result i32) + (select (i32.const 1) (i32.const 0) (i16x8.all_true (local.get 0))) + ) + (func (export "i32x4_all_true_as_select_cond") (param v128) (result i32) + (select (i32.const 1) (i32.const 0) (i32x4.all_true (local.get 0))) + ) + ;; any_true as br_if condition + (func (export "i8x16_any_true_as_br_if_cond") (param $0 v128) (result i32) + (local $1 i32) + (local.set $1 (i32.const 2)) + (block + (local.set $1 (i32.const 1)) + (br_if 0 (i8x16.any_true (local.get $0))) + (local.set $1 (i32.const 0)) + ) + (local.get $1) + ) + (func (export "i16x8_any_true_as_br_if_cond") (param $0 v128) (result i32) + (local $1 i32) + (local.set $1 (i32.const 2)) + (block + (local.set $1 (i32.const 1)) + (br_if 0 (i16x8.any_true (local.get $0))) + (local.set $1 (i32.const 0)) + ) + (local.get $1) + ) + (func (export "i32x4_any_true_as_br_if_cond") (param $0 v128) (result i32) + (local $1 i32) + (local.set $1 (i32.const 2)) + (block + (local.set $1 (i32.const 1)) + (br_if 0 (i32x4.any_true (local.get $0))) + (local.set $1 (i32.const 0)) + ) + (local.get $1) + ) + ;; all_true as br_if condition + (func (export "i8x16_all_true_as_br_if_cond") (param $0 v128) (result i32) + (local $1 i32) + (local.set $1 (i32.const 2)) + (block + (local.set $1 (i32.const 1)) + (br_if 0 (i8x16.all_true (local.get $0))) + (local.set $1 (i32.const 0)) + ) + (local.get $1) + ) + (func (export "i16x8_all_true_as_br_if_cond") (param $0 v128) (result i32) + (local $1 i32) + (local.set $1 (i32.const 2)) + (block + (local.set $1 (i32.const 1)) + (br_if 0 (i16x8.all_true (local.get $0))) + (local.set $1 (i32.const 0)) + ) + (local.get $1) + ) + (func (export "i32x4_all_true_as_br_if_cond") (param $0 v128) (result i32) + (local $1 i32) + (local.set $1 (i32.const 2)) + (block + (local.set $1 (i32.const 1)) + (br_if 0 (i32x4.all_true (local.get $0))) + (local.set $1 (i32.const 0)) + ) + (local.get $1) + ) + ;; any_true as i32.and operand + (func (export "i8x16_any_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.and (i8x16.any_true (local.get $0)) (i8x16.any_true (local.get $1))) + ) + (func (export "i16x8_any_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.and (i16x8.any_true (local.get $0)) (i16x8.any_true (local.get $1))) + ) + (func (export "i32x4_any_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.and (i32x4.any_true (local.get $0)) (i32x4.any_true (local.get $1))) + ) + ;; any_true as i32.or operand + (func (export "i8x16_any_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.or (i8x16.any_true (local.get $0)) (i8x16.any_true (local.get $1))) + ) + (func (export "i16x8_any_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.or (i16x8.any_true (local.get $0)) (i16x8.any_true (local.get $1))) + ) + (func (export "i32x4_any_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.or (i32x4.any_true (local.get $0)) (i32x4.any_true (local.get $1))) + ) + ;; any_true as i32.xor operand + (func (export "i8x16_any_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.xor (i8x16.any_true (local.get $0)) (i8x16.any_true (local.get $1))) + ) + (func (export "i16x8_any_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.xor (i16x8.any_true (local.get $0)) (i16x8.any_true (local.get $1))) + ) + (func (export "i32x4_any_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.xor (i32x4.any_true (local.get $0)) (i32x4.any_true (local.get $1))) + ) + ;; all_true as i32.and operand + (func (export "i8x16_all_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.and (i8x16.all_true (local.get $0)) (i8x16.all_true (local.get $1))) + ) + (func (export "i16x8_all_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.and (i16x8.all_true (local.get $0)) (i16x8.all_true (local.get $1))) + ) + (func (export "i32x4_all_true_as_i32.and_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.and (i32x4.all_true (local.get $0)) (i32x4.all_true (local.get $1))) + ) + ;; all_true as i32.or operand + (func (export "i8x16_all_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.or (i8x16.all_true (local.get $0)) (i8x16.all_true (local.get $1))) + ) + (func (export "i16x8_all_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.or (i16x8.all_true (local.get $0)) (i16x8.all_true (local.get $1))) + ) + (func (export "i32x4_all_true_as_i32.or_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.or (i32x4.all_true (local.get $0)) (i32x4.all_true (local.get $1))) + ) + ;; all_true as i32.xor operand + (func (export "i8x16_all_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.xor (i8x16.all_true (local.get $0)) (i8x16.all_true (local.get $1))) + ) + (func (export "i16x8_all_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.xor (i16x8.all_true (local.get $0)) (i16x8.all_true (local.get $1))) + ) + (func (export "i32x4_all_true_as_i32.xor_operand") (param $0 v128) (param $1 v128) (result i32) + (i32.xor (i32x4.all_true (local.get $0)) (i32x4.all_true (local.get $1))) + ) + ;; any_true with v128.not + (func (export "i8x16_any_true_with_v128.not") (param $0 v128) (result i32) + (i8x16.any_true (v128.not (local.get $0))) + ) + (func (export "i16x8_any_true_with_v128.not") (param $0 v128) (result i32) + (i16x8.any_true (v128.not (local.get $0))) + ) + (func (export "i32x4_any_true_with_v128.not") (param $0 v128) (result i32) + (i32x4.any_true (v128.not (local.get $0))) + ) + ;; any_true with v128.and + (func (export "i8x16_any_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32) + (i8x16.any_true (v128.and (local.get $0) (local.get $1))) + ) + (func (export "i16x8_any_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32) + (i16x8.any_true (v128.and (local.get $0) (local.get $1))) + ) + (func (export "i32x4_any_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32) + (i32x4.any_true (v128.and (local.get $0) (local.get $1))) + ) + ;; any_true with v128.or + (func (export "i8x16_any_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32) + (i8x16.any_true (v128.or (local.get $0) (local.get $1))) + ) + (func (export "i16x8_any_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32) + (i16x8.any_true (v128.or (local.get $0) (local.get $1))) + ) + (func (export "i32x4_any_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32) + (i32x4.any_true (v128.or (local.get $0) (local.get $1))) + ) + ;; any_true with v128.xor + (func (export "i8x16_any_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32) + (i8x16.any_true (v128.xor (local.get $0) (local.get $1))) + ) + (func (export "i16x8_any_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32) + (i16x8.any_true (v128.xor (local.get $0) (local.get $1))) + ) + (func (export "i32x4_any_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32) + (i32x4.any_true (v128.xor (local.get $0) (local.get $1))) + ) + ;; any_true with v128.bitselect + (func (export "i8x16_any_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32) + (i8x16.any_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2))) + ) + (func (export "i16x8_any_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32) + (i16x8.any_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2))) + ) + (func (export "i32x4_any_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32) + (i32x4.any_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2))) + ) + ;; all_true with v128.not + (func (export "i8x16_all_true_with_v128.not") (param $0 v128) (result i32) + (i8x16.all_true (v128.not (local.get $0))) + ) + (func (export "i16x8_all_true_with_v128.not") (param $0 v128) (result i32) + (i16x8.all_true (v128.not (local.get $0))) + ) + (func (export "i32x4_all_true_with_v128.not") (param $0 v128) (result i32) + (i32x4.all_true (v128.not (local.get $0))) + ) + ;; all_true with v128.and + (func (export "i8x16_all_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32) + (i8x16.all_true (v128.and (local.get $0) (local.get $1))) + ) + (func (export "i16x8_all_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32) + (i16x8.all_true (v128.and (local.get $0) (local.get $1))) + ) + (func (export "i32x4_all_true_with_v128.and") (param $0 v128) (param $1 v128) (result i32) + (i32x4.all_true (v128.and (local.get $0) (local.get $1))) + ) + ;; all_true with v128.or + (func (export "i8x16_all_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32) + (i8x16.all_true (v128.or (local.get $0) (local.get $1))) + ) + (func (export "i16x8_all_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32) + (i16x8.all_true (v128.or (local.get $0) (local.get $1))) + ) + (func (export "i32x4_all_true_with_v128.or") (param $0 v128) (param $1 v128) (result i32) + (i32x4.all_true (v128.or (local.get $0) (local.get $1))) + ) + ;; all_true with v128.xor + (func (export "i8x16_all_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32) + (i8x16.all_true (v128.xor (local.get $0) (local.get $1))) + ) + (func (export "i16x8_all_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32) + (i16x8.all_true (v128.xor (local.get $0) (local.get $1))) + ) + (func (export "i32x4_all_true_with_v128.xor") (param $0 v128) (param $1 v128) (result i32) + (i32x4.all_true (v128.xor (local.get $0) (local.get $1))) + ) + ;; all_true with v128.bitselect + (func (export "i8x16_all_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32) + (i8x16.all_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2))) + ) + (func (export "i16x8_all_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32) + (i16x8.all_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2))) + ) + (func (export "i32x4_all_true_with_v128.bitselect") (param $0 v128) (param $1 v128) (param $2 v128) (result i32) + (i32x4.all_true (v128.bitselect (local.get $0) (local.get $1) (local.get $2))) + ) +) + +;; 'any_true' as 'if' condition +;; i8x16 +(assert_return (invoke "i8x16_any_true_as_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_if_cond" (v128.const i8x16 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i8x16_any_true_as_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +;; i16x8 +(assert_return (invoke "i16x8_any_true_as_if_cond" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_if_cond" (v128.const i16x8 0 0 1 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_if_cond" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +;; i32x4 +(assert_return (invoke "i32x4_any_true_as_if_cond" (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_if_cond" (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_if_cond" (v128.const i32x4 1 1 1 1)) + (i32.const 1)) + +;; 'all_true' as 'if' condition +;; i8x16 +(assert_return (invoke "i8x16_all_true_as_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_as_if_cond" (v128.const i8x16 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_as_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +;; i16x8 +(assert_return (invoke "i16x8_all_true_as_if_cond" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_if_cond" (v128.const i16x8 1 1 1 0 1 1 1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_if_cond" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +;; i32x4 +(assert_return (invoke "i32x4_all_true_as_if_cond" (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_if_cond" (v128.const i32x4 1 1 1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_if_cond" (v128.const i32x4 1 1 1 1)) + (i32.const 1)) + +;; any_true as select condition +(assert_return (invoke "i8x16_any_true_as_select_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_select_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_select_cond" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_select_cond" (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_select_cond" (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_select_cond" (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +;; all_true as select condition +(assert_return (invoke "i8x16_all_true_as_select_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_as_select_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_select_cond" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_as_select_cond" (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_select_cond" (v128.const i32x4 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_as_select_cond" (v128.const i32x4 1 1 0 1)) + (i32.const 0)) +;; any_true as br_if condition +(assert_return (invoke "i8x16_any_true_as_br_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_br_if_cond" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_br_if_cond" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_br_if_cond" (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_br_if_cond" (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_br_if_cond" (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +;; all_true as br_if condition +(assert_return (invoke "i8x16_all_true_as_br_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_as_br_if_cond" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_br_if_cond" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_as_br_if_cond" (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_br_if_cond" (v128.const i32x4 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_as_br_if_cond" (v128.const i32x4 1 1 0 1)) + (i32.const 0)) +;; any_true as and operand +(assert_return (invoke "i8x16_any_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 1 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_i32.and_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_i32.and_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_i32.and_operand" (v128.const i32x4 0 0 1 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +;; any_true as or operand +(assert_return (invoke "i8x16_any_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i8x16_any_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 1 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_i32.or_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_i32.or_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_i32.or_operand" (v128.const i32x4 0 0 1 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +;; any_true as xor operand +(assert_return (invoke "i8x16_any_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i8x16_any_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 1 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_i32.xor_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_as_i32.xor_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_as_i32.xor_operand" (v128.const i32x4 0 0 1 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 0)) +;; all_true as and operand +(assert_return (invoke "i8x16_all_true_as_i32.and_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_as_i32.and_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_as_i32.and_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_i32.and_operand" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_as_i32.and_operand" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_i32.and_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_i32.and_operand" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_as_i32.and_operand" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 0 1)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_i32.and_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 1 0)) + (i32.const 0)) +;; all_true as or operand +(assert_return (invoke "i8x16_all_true_as_i32.or_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_as_i32.or_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_as_i32.or_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_i32.or_operand" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_as_i32.or_operand" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_as_i32.or_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_i32.or_operand" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_as_i32.or_operand" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_as_i32.or_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +;; all_true as xor operand +(assert_return (invoke "i8x16_all_true_as_i32.xor_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_as_i32.xor_operand" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_as_i32.xor_operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_i32.xor_operand" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_as_i32.xor_operand" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_as_i32.xor_operand" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_i32.xor_operand" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_as_i32.xor_operand" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 0 1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_as_i32.xor_operand" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +;; any_true with v128.not +(assert_return (invoke "i8x16_any_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 1)) +(assert_return (invoke "i8x16_any_true_with_v128.not" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.not" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.not" (v128.const i32x4 0 0 0 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.not" (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_with_v128.not" (v128.const i32x4 0 0 -1 0)) + (i32.const 1)) +;; any_true with v128.and +(assert_return (invoke "i8x16_any_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_with_v128.and" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i8x16_any_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_with_v128.and" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 -1 0) + (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.and" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_with_v128.and" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.and" (v128.const i32x4 0 0 -1 0) + (v128.const i32x4 0 0 -1 0)) + (i32.const 1)) +;; any_true with v128.or +(assert_return (invoke "i8x16_any_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_with_v128.or" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i8x16_any_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_with_v128.or" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 -1 0) + (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.or" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_with_v128.or" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.or" (v128.const i32x4 0 0 -1 0) + (v128.const i32x4 0 0 -1 0)) + (i32.const 1)) +;; any_true with v128.xor +(assert_return (invoke "i8x16_any_true_with_v128.xor" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_with_v128.xor" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_with_v128.xor" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.xor" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_with_v128.xor" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_with_v128.xor" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.xor" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_with_v128.xor" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_with_v128.xor" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 -1 0)) + (i32.const 1)) +;; any_true with v128.bitselect +(assert_return (invoke "i8x16_any_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 0)) +(assert_return (invoke "i8x16_any_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xFF 0x55)) + (i32.const 1)) +(assert_return (invoke "i16x8_any_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 0)) +(assert_return (invoke "i16x8_any_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0xFF 0x55)) + (i32.const 1)) +(assert_return (invoke "i32x4_any_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA) + (v128.const i32x4 0x55 0x55 0x55 0x55) + (v128.const i32x4 0x55 0x55 0x55 0x55)) + (i32.const 0)) +(assert_return (invoke "i32x4_any_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA) + (v128.const i32x4 0x55 0x55 0x55 0x55) + (v128.const i32x4 0x55 0x55 0xFF 0x55)) + (i32.const 1)) +;; all_true with v128.not +(assert_return (invoke "i8x16_all_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_with_v128.not" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_with_v128.not" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_with_v128.not" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.not" (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.not" (v128.const i32x4 0 0 0 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_with_v128.not" (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.not" (v128.const i32x4 0 0 -1 0)) + (i32.const 0)) +;; all_true with v128.and +(assert_return (invoke "i8x16_all_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_with_v128.and" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_with_v128.and" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.and" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_with_v128.and" (v128.const i16x8 0 0 0 0 0 0 -1 0) + (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.and" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.and" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_with_v128.and" (v128.const i32x4 0 0 -1 0) + (v128.const i32x4 0 0 -1 0)) + (i32.const 0)) +;; all_true with v128.or +(assert_return (invoke "i8x16_all_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_with_v128.or" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i8x16_all_true_with_v128.or" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.or" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_with_v128.or" (v128.const i16x8 0 0 0 0 0 0 -1 0) + (v128.const i16x8 0 0 0 0 0 0 -1 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.or" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.or" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_with_v128.or" (v128.const i32x4 0 0 -1 0) + (v128.const i32x4 0 0 -1 0)) + (i32.const 0)) +;; all_true with v128.xor +(assert_return (invoke "i8x16_all_true_with_v128.xor" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_with_v128.xor" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_with_v128.xor" (v128.const i8x16 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1) + (v128.const i8x16 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_with_v128.xor" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.xor" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.xor" (v128.const i16x8 0 -1 0 -1 0 -1 0 -1) + (v128.const i16x8 -1 0 -1 0 -1 0 -1 0)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_with_v128.xor" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.xor" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.xor" (v128.const i32x4 0 -1 0 -1) + (v128.const i32x4 -1 0 -1 0)) + (i32.const 1)) +;; all_true with v128.bitselect +(assert_return (invoke "i8x16_all_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 0)) +(assert_return (invoke "i8x16_all_true_with_v128.bitselect" (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i8x16 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i8x16 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)) + (i32.const 1)) +(assert_return (invoke "i16x8_all_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55)) + (i32.const 0)) +(assert_return (invoke "i16x8_all_true_with_v128.bitselect" (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA) + (v128.const i16x8 0x55 0x55 0x55 0x55 0x55 0x55 0x55 0x55) + (v128.const i16x8 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA)) + (i32.const 1)) +(assert_return (invoke "i32x4_all_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA) + (v128.const i32x4 0x55 0x55 0x55 0x55) + (v128.const i32x4 0x55 0x55 0x55 0x55)) + (i32.const 0)) +(assert_return (invoke "i32x4_all_true_with_v128.bitselect" (v128.const i32x4 0xAA 0xAA 0xAA 0xAA) + (v128.const i32x4 0x55 0x55 0x55 0x55) + (v128.const i32x4 0xAA 0xAA 0xAA 0xAA)) + (i32.const 1)) + +;; Type check + +(assert_invalid (module (func (result i32) (i8x16.any_true (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result i32) (i8x16.all_true (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result i32) (i16x8.any_true (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result i32) (i16x8.all_true (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result i32) (i32x4.any_true (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result i32) (i32x4.all_true (i32.const 0)))) "type mismatch") + +;; Unknown operators + +(assert_malformed (module quote "(memory 1) (func (result i32) (f32x4.any_true (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result i32) (f32x4.all_true (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result i32) (f64x2.any_true (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result i32) (f64x2.all_true (v128.const i32x4 0 0 0 0)))") "unknown operator") \ No newline at end of file diff --git a/test/core/simd/simd_conversions.wast b/test/core/simd/simd_conversions.wast new file mode 100644 index 000000000..21b9a16db --- /dev/null +++ b/test/core/simd/simd_conversions.wast @@ -0,0 +1,1156 @@ +;; Web Assembly SIMD-related type conversion tests + +(module + ;; Floating point to integer with saturation + (func (export "i32x4.trunc_sat_f32x4_s") (param v128) (result v128) + (i32x4.trunc_sat_f32x4_s (local.get 0))) + (func (export "i32x4.trunc_sat_f32x4_u") (param v128) (result v128) + (i32x4.trunc_sat_f32x4_u (local.get 0))) + + ;; Integer to floating point + (func (export "f32x4.convert_i32x4_s") (param v128) (result v128) + (f32x4.convert_i32x4_s (local.get 0))) + (func (export "f32x4.convert_i32x4_u") (param v128) (result v128) + (f32x4.convert_i32x4_u (local.get 0))) + + ;; Integer to integer narrowing + (func (export "i8x16.narrow_i16x8_s") (param v128 v128) (result v128) + (i8x16.narrow_i16x8_s (local.get 0) (local.get 1))) + (func (export "i8x16.narrow_i16x8_u") (param v128 v128) (result v128) + (i8x16.narrow_i16x8_u (local.get 0) (local.get 1))) + (func (export "i16x8.narrow_i32x4_s") (param v128 v128) (result v128) + (i16x8.narrow_i32x4_s (local.get 0) (local.get 1))) + (func (export "i16x8.narrow_i32x4_u") (param v128 v128) (result v128) + (i16x8.narrow_i32x4_u (local.get 0)(local.get 1))) + + ;; Integer to integer widening + (func (export "i16x8.widen_high_i8x16_s") (param v128) (result v128) + (i16x8.widen_high_i8x16_s (local.get 0))) + (func (export "i16x8.widen_high_i8x16_u") (param v128) (result v128) + (i16x8.widen_high_i8x16_u (local.get 0))) + (func (export "i16x8.widen_low_i8x16_s") (param v128) (result v128) + (i16x8.widen_low_i8x16_s (local.get 0))) + (func (export "i16x8.widen_low_i8x16_u") (param v128) (result v128) + (i16x8.widen_low_i8x16_u (local.get 0))) + (func (export "i32x4.widen_high_i16x8_s") (param v128) (result v128) + (i32x4.widen_high_i16x8_s (local.get 0))) + (func (export "i32x4.widen_high_i16x8_u") (param v128) (result v128) + (i32x4.widen_high_i16x8_u (local.get 0))) + (func (export "i32x4.widen_low_i16x8_s") (param v128) (result v128) + (i32x4.widen_low_i16x8_s (local.get 0))) + (func (export "i32x4.widen_low_i16x8_u") (param v128) (result v128) + (i32x4.widen_low_i16x8_u (local.get 0))) +) + + +;; Floating point to integer with saturation +;; i32x4.trunc_sat_f32x4_s + +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0.0 0.0 0.0 0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 1.5 1.5 1.5 1.5)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -1.5 -1.5 -1.5 -1.5)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 1.9 1.9 1.9 1.9)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2.0 2.0 2.0 2.0)) + (v128.const i32x4 2 2 2 2)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -1.9 -1.9 -1.9 -1.9)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2.0 -2.0 -2.0 -2.0)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483520.0 2147483520.0 2147483520.0 2147483520.0)) + (v128.const i32x4 2147483520 2147483520 2147483520 2147483520)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483520.0 -2147483520.0 -2147483520.0 -2147483520.0)) + (v128.const i32x4 -2147483520 -2147483520 -2147483520 -2147483520)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 3000000000.0 3000000000.0 3000000000.0 3000000000.0)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -3000000000.0 -3000000000.0 -3000000000.0 -3000000000.0)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483647.0 -2147483647.0 -2147483647.0 -2147483647.0)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const i32x4 6 6 6 6)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const i32x4 -6 -6 -6 -6)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 +nan +nan +nan +nan)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 nan:0x444444 nan:0x444444 nan:0x444444 nan:0x444444)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -nan:0x444444 -nan:0x444444 -nan:0x444444 -nan:0x444444)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 42 nan inf -inf)) + (v128.const i32x4 42 0 2147483647 -2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -42 3.14 nan inf)) + (v128.const i32x4 -42 3 0 2147483647)) + +;; i32x4.trunc_sat_f32x4_u + +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0.0 0.0 0.0 0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 1.5 1.5 1.5 1.5)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -1.5 -1.5 -1.5 -1.5)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 1.9 1.9 1.9 1.9)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2.0 2.0 2.0 2.0)) + (v128.const i32x4 2 2 2 2)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -1.9 -1.9 -1.9 -1.9)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2.0 -2.0 -2.0 -2.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) + (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 3000000000.0 3000000000.0 3000000000.0 3000000000.0)) + (v128.const i32x4 3000000000 3000000000 3000000000 3000000000)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -3000000000.0 -3000000000.0 -3000000000.0 -3000000000.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0)) + (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967295.0 4294967295.0 4294967295.0 4294967295.0)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967296.0 4294967296.0 4294967296.0 4294967296.0)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967040.0 4294967040.0 4294967040.0 4294967040.0)) + (v128.const i32x4 -256 -256 -256 -256)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const i32x4 6 6 6 6)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 +nan +nan +nan +nan)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 nan:0x444444 nan:0x444444 nan:0x444444 nan:0x444444)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -nan:0x444444 -nan:0x444444 -nan:0x444444 -nan:0x444444)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 42 nan inf -inf)) + (v128.const i32x4 42 0 0xffffffff 0)) +(assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -42 3.14 nan inf)) + (v128.const i32x4 0 3 0 0xffffffff)) + + +;; Integer to floating point +;; f32x4.convert_i32x4_s + +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 0 0 0 0)) + (v128.const f32x4 0.0 0.0 0.0 0.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 1 1 1 1)) + (v128.const f32x4 1.0 1.0 1.0 1.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -1 -1 -1 -1)) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 1234567890 1234567890 1234567890 1234567890)) + (v128.const f32x4 0x1.26580cp+30 0x1.26580cp+30 0x1.26580cp+30 0x1.26580cp+30)) +;; Test rounding directions. + +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 16777217 16777217 16777217 16777217)) + (v128.const f32x4 16777216.0 16777216.0 16777216.0 16777216.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -16777217 -16777217 -16777217 -16777217)) + (v128.const f32x4 -16777216.0 -16777216.0 -16777216.0 -16777216.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 16777219 16777219 16777219 16777219)) + (v128.const f32x4 16777220.0 16777220.0 16777220.0 16777220.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -16777219 -16777219 -16777219 -16777219)) + (v128.const f32x4 -16777220.0 -16777220.0 -16777220.0 -16777220.0)) +(assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 0 -1 0x7fffffff 0x80000000)) + (v128.const f32x4 0.0 -1.0 2147483647.0 -2147483648.0)) + +;; f32x4.convert_i32x4_u + +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0 0 0 0)) + (v128.const f32x4 0.0 0.0 0.0 0.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 1 1 1 1)) + (v128.const f32x4 1.0 1.0 1.0 1.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 -1 -1 -1 -1)) + (v128.const f32x4 4294967295.0 4294967295.0 4294967295.0 4294967295.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678)) + (v128.const f32x4 0x1.234568p+28 0x1.234568p+28 0x1.234568p+28 0x1.234568p+28)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x80000080 0x80000080 0x80000080 0x80000080)) + (v128.const f32x4 0x1.000000p+31 0x1.000000p+31 0x1.000000p+31 0x1.000000p+31)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x80000081 0x80000081 0x80000081 0x80000081)) + (v128.const f32x4 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x80000082 0x80000082 0x80000082 0x80000082)) + (v128.const f32x4 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0xfffffe80 0xfffffe80 0xfffffe80 0xfffffe80)) + (v128.const f32x4 0x1.fffffcp+31 0x1.fffffcp+31 0x1.fffffcp+31 0x1.fffffcp+31)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0xfffffe81 0xfffffe81 0xfffffe81 0xfffffe81)) + (v128.const f32x4 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0xfffffe82 0xfffffe82 0xfffffe82 0xfffffe82)) + (v128.const f32x4 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31)) +;; Test rounding directions. + +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 16777217 16777217 16777217 16777217)) + (v128.const f32x4 16777216.0 16777216.0 16777216.0 16777216.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 16777219 16777219 16777219 16777219)) + (v128.const f32x4 16777220.0 16777220.0 16777220.0 16777220.0)) +(assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0 -1 0x7fffffff 0x80000000)) + (v128.const f32x4 0.0 4294967295.0 2147483647.0 2147483648.0)) + + +;; Integer to integer narrowing +;; i8x16.narrow_i16x8_s + +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f) + (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i8x16 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) + (v128.const i16x8 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) + (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) + (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) + (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) + (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) + (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + +;; i8x16.narrow_i16x8_u + +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i16x8 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe)) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100) + (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + +;; i16x8.narrow_i32x4_s + +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 1 1 1 1)) + (v128.const i16x8 0 0 0 0 1 1 1 1)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 0 0 0 0)) + (v128.const i16x8 1 1 1 1 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 0 0 0 0)) + (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 1 1 1 1)) + (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x7fff -0x7fff -0x7fff -0x7fff) + (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i16x8 0x8001 0x8001 0x8001 0x8001 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i32x4 -0x7fff -0x7fff -0x7fff -0x7fff)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8001 0x8001 0x8001 0x8001)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) + (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) + (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) + (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000000 -0x8000000 -0x8000000 -0x8000000) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0xffff 0xffff 0xffff 0xffff)) + +;; i16x8.narrow_i32x4_u + +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 1 1 1 1)) + (v128.const i16x8 0 0 0 0 1 1 1 1)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 0 0 0 0)) + (v128.const i16x8 1 1 1 1 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 0 0 0 0)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 1 1 1 1)) + (v128.const i16x8 0 0 0 0 1 1 1 1)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xfffe 0xfffe 0xfffe 0xfffe) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0xfffe 0xfffe 0xfffe 0xfffe 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) + (v128.const i32x4 0xfffe 0xfffe 0xfffe 0xfffe)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xfffe 0xfffe 0xfffe 0xfffe)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0x10000 0x10000 0x10000 0x10000) + (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) + (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0x10000 0x10000 0x10000 0x10000) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) + (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) + (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -0x80000000 -0x80000000 -0x80000000 -0x80000000) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + + +;; Integer to integer widening +;; i16x8.widen_low_i8x16_s + +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) + +;; i16x8.widen_high_i8x16_s + +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) + (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) + (v128.const i16x8 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) +(assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + +;; i16x8.widen_low_i8x16_u + +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + +;; i16x8.widen_high_i8x16_u + +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) + (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) + (v128.const i16x8 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + +;; i32x4.widen_low_i16x8_s + +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 0 0 0 1 1 1 1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 1 1 1 1 0 0 0 0)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0xffff8001 0xffff8001 0xffff8001 0xffff8001)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) + +;; i32x4.widen_high_i16x8_s + +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 0 0 0 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 1 1 1 1 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) + (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) + (v128.const i32x4 0xffff8001 0xffff8001 0xffff8001 0xffff8001)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + +;; i32x4.widen_low_i16x8_u + +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 0 0 0 1 1 1 1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 1 1 1 1 0 0 0 0)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0x8001 0x8001 0x8001 0x8001)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) + +;; i32x4.widen_high_i16x8_u + +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 0 0 0 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 1 1 1 1 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) + (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) + (v128.const i32x4 0x8001 0x8001 0x8001 0x8001)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) + + +;; Unknown operator + +(assert_malformed (module quote + "(func (result v128) (i32x4.trunc_sat_f32x4 (v128.const f32x4 0.0 0.0 0.0 0.0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.trunc_s_sat_f32x4 (v128.const f32x4 -2.0 -1.0 0 1.0 2.0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.trunc_u_sat_f32x4 (v128.const f32x4 -2.0 -1.0 0 1.0 2.0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.convert_f32x4 (v128.const f32x4 -1 0 1 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.convert_s_f32x4 (v128.const f32x4 -1 0 1 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.convert_u_f32x4 (v128.const f32x4 -1 0 1 2)))") + "unknown operator") + +(assert_malformed (module quote + "(func (result v128) (i8x16.narrow_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.narrow_i8x16 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.narrow_i8x16_s (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.narrow_i8x16_u (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.narrow_i32x4 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.narrow_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.narrow_i16x8_s (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.narrow_i16x8_u (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") + "unknown operator") + +(assert_malformed (module quote + "(func (result v128) (i16x8.widen_low_i8x16 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.widen_low_i16x8_s (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.widen_low_i16x8_u (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.widen_high_i8x16 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.widen_high_i16x8_s (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.widen_high_i16x8_u (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.widen_low_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.widen_low_i32x4_s (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.widen_low_i32x4_u (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.widen_high_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.widen_high_i32x4_s (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.widen_high_i32x4_u (v128.const i32x4 0 0 0 0)))") + "unknown operator") + + +;; Type mismatch + +(assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_s (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_s (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_u (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_u (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.convert_i32x4_s (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.convert_i32x4_s (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.convert_i32x4_u (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.convert_i32x4_u (i64.const 0)))) "type mismatch") + +(assert_invalid (module (func (result v128) (i8x16.narrow_i16x8_s (i32.const 0) (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.narrow_i16x8_u (i32.const 0) (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.narrow_i32x4_s (f32.const 0.0) (f64.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.narrow_i32x4_s (f32.const 0.0) (f64.const 0.0)))) "type mismatch") + +(assert_invalid (module (func (result v128) (i16x8.widen_low_i8x16_s (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.widen_high_i8x16_s (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.widen_low_i8x16_u (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.widen_high_i8x16_u (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.widen_low_i16x8_s (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.widen_high_i16x8_s (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.widen_low_i16x8_u (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.widen_high_i16x8_u (f32.const 0.0)))) "type mismatch") + + +;; Combinations + +(module + (func (export "f32x4_convert_i32x4_s_add") (param v128 v128) (result v128) + (f32x4.convert_i32x4_s (i32x4.add (local.get 0) (local.get 1)))) + (func (export "f32x4_convert_i32x4_s_sub") (param v128 v128) (result v128) + (f32x4.convert_i32x4_s (i32x4.sub (local.get 0) (local.get 1)))) + (func (export "f32x4_convert_i32x4_u_mul") (param v128 v128) (result v128) + (f32x4.convert_i32x4_u (i32x4.mul (local.get 0) (local.get 1)))) + + (func (export "i16x8_low_widen_narrow_ss") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) + (func (export "i16x8_low_widen_narrow_su") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) + (func (export "i16x8_high_widen_narrow_ss") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) + (func (export "i16x8_high_widen_narrow_su") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) + (func (export "i16x8_low_widen_narrow_uu") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) + (func (export "i16x8_low_widen_narrow_us") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) + (func (export "i16x8_high_widen_narrow_uu") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) + (func (export "i16x8_high_widen_narrow_us") (param v128 v128) (result v128) + (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) + + (func (export "i32x4_low_widen_narrow_ss") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) + (func (export "i32x4_low_widen_narrow_su") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) + (func (export "i32x4_high_widen_narrow_ss") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) + (func (export "i32x4_high_widen_narrow_su") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) + (func (export "i32x4_low_widen_narrow_uu") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) + (func (export "i32x4_low_widen_narrow_us") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) + (func (export "i32x4_high_widen_narrow_uu") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) + (func (export "i32x4_high_widen_narrow_us") (param v128 v128) (result v128) + (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) +) + +(assert_return (invoke "f32x4_convert_i32x4_s_add" (v128.const i32x4 1 2 3 4) + (v128.const i32x4 2 3 4 5)) + (v128.const f32x4 3.0 5.0 7.0 9.0)) +(assert_return (invoke "f32x4_convert_i32x4_s_sub" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 1 1 1 1)) + (v128.const f32x4 -1.0 0.0 1.0 2.0)) +(assert_return (invoke "f32x4_convert_i32x4_u_mul" (v128.const i32x4 1 2 3 4) + (v128.const i32x4 1 2 3 4)) + (v128.const f32x4 1.0 4.0 9.0 16.0)) + + +(assert_return (invoke "i16x8_low_widen_narrow_ss" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) + (v128.const i16x8 0xff80 0xff80 0x7f 0xff80 0xff80 0xff80 0x7f 0xff80)) +(assert_return (invoke "i16x8_low_widen_narrow_su" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff)) + (v128.const i16x8 0 0 0xffff 0 0 0 0xffff 0)) +(assert_return (invoke "i16x8_high_widen_narrow_ss" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) + (v128.const i16x8 0xff80 0xff80 0x7f 0xff80 0xff80 0xff80 0x7f 0xff80)) +(assert_return (invoke "i16x8_high_widen_narrow_su" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff)) + (v128.const i16x8 0 0 0xffff 0 0 0 0xffff 0)) +(assert_return (invoke "i16x8_low_widen_narrow_uu" (v128.const i16x8 -0x8000 -0x7fff 0x8000 0xffff -0x8000 -0x7fff 0x8000 0xffff) + (v128.const i16x8 -0x8000 -0x7fff 0x8000 0xffff -0x8000 -0x7fff 0x8000 0xffff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8_low_widen_narrow_us" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) + (v128.const i16x8 0x80 0x80 0x7f 0x80 0x80 0x80 0x7f 0x80)) +(assert_return (invoke "i16x8_high_widen_narrow_uu" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff)) + (v128.const i16x8 0 0 0xff 0 0 0 0xff 0)) +(assert_return (invoke "i16x8_high_widen_narrow_us" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) + (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) + (v128.const i16x8 0x80 0x80 0x7f 0x80 0x80 0x80 0x7f 0x80)) + +(assert_return (invoke "i32x4_low_widen_narrow_ss" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) + (v128.const i32x4 0xffff8000 0xffff8000 0x7fff 0x7fff)) +(assert_return (invoke "i32x4_low_widen_narrow_su" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) + (v128.const i32x4 0 0 0xffffffff 0)) +(assert_return (invoke "i32x4_high_widen_narrow_ss" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) + (v128.const i32x4 0xffff8000 0xffff8000 0x7fff 0x7fff)) +(assert_return (invoke "i32x4_high_widen_narrow_su" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) + (v128.const i32x4 0 0 0xffffffff 0)) +(assert_return (invoke "i32x4_low_widen_narrow_uu" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) + (v128.const i32x4 0 0 0xffff 0)) +(assert_return (invoke "i32x4_low_widen_narrow_us" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) + (v128.const i32x4 0x8000 0x8000 0x7fff 0x7fff)) +(assert_return (invoke "i32x4_high_widen_narrow_uu" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) + (v128.const i32x4 0 0 0xffff 0)) +(assert_return (invoke "i32x4_high_widen_narrow_us" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) + (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) + (v128.const i32x4 0x8000 0x8000 0x7fff 0x7fff)) \ No newline at end of file diff --git a/test/core/simd/simd_f32x4.wast b/test/core/simd/simd_f32x4.wast new file mode 100644 index 000000000..ed2500ed3 --- /dev/null +++ b/test/core/simd/simd_f32x4.wast @@ -0,0 +1,2430 @@ +;; Tests for f32x4 [abs, min, max] operations on major boundary values and all special values. + + +(module + (func (export "f32x4.min") (param v128 v128) (result v128) (f32x4.min (local.get 0) (local.get 1))) + (func (export "f32x4.max") (param v128 v128) (result v128) (f32x4.max (local.get 0) (local.get 1))) + (func (export "f32x4.abs") (param v128) (result v128) (f32x4.abs (local.get 0))) + ;; f32x4.min const vs const + (func (export "f32x4.min_with_const_0") (result v128) (f32x4.min (v128.const f32x4 0 1 2 -3) (v128.const f32x4 0 2 1 3))) + (func (export "f32x4.min_with_const_1") (result v128) (f32x4.min (v128.const f32x4 0 1 2 3) (v128.const f32x4 0 1 2 3))) + (func (export "f32x4.min_with_const_2") (result v128) (f32x4.min (v128.const f32x4 0x00 0x01 0x02 0x80000000) (v128.const f32x4 0x00 0x02 0x01 2147483648))) + (func (export "f32x4.min_with_const_3") (result v128) (f32x4.min (v128.const f32x4 0x00 0x01 0x02 0x80000000) (v128.const f32x4 0x00 0x01 0x02 0x80000000))) + ;; f32x4.min param vs const + (func (export "f32x4.min_with_const_5")(param v128) (result v128) (f32x4.min (local.get 0) (v128.const f32x4 0 1 2 -3))) + (func (export "f32x4.min_with_const_6")(param v128) (result v128) (f32x4.min (v128.const f32x4 0 1 2 3) (local.get 0))) + (func (export "f32x4.min_with_const_7")(param v128) (result v128) (f32x4.min (v128.const f32x4 0x00 0x01 0x02 0x80000000) (local.get 0))) + (func (export "f32x4.min_with_const_8")(param v128) (result v128) (f32x4.min (local.get 0) (v128.const f32x4 0x00 0x01 0x02 0x80000000))) + ;; f32x4.max const vs const + (func (export "f32x4.max_with_const_10") (result v128) (f32x4.max (v128.const f32x4 0 1 2 -3) (v128.const f32x4 0 2 1 3))) + (func (export "f32x4.max_with_const_11") (result v128) (f32x4.max (v128.const f32x4 0 1 2 3) (v128.const f32x4 0 1 2 3))) + (func (export "f32x4.max_with_const_12") (result v128) (f32x4.max (v128.const f32x4 0x00 0x01 0x02 0x80000000) (v128.const f32x4 0x00 0x02 0x01 2147483648))) + (func (export "f32x4.max_with_const_13") (result v128) (f32x4.max (v128.const f32x4 0x00 0x01 0x02 0x80000000) (v128.const f32x4 0x00 0x01 0x02 0x80000000))) + ;; f32x4.max param vs const + (func (export "f32x4.max_with_const_15")(param v128) (result v128) (f32x4.max (local.get 0) (v128.const f32x4 0 1 2 -3))) + (func (export "f32x4.max_with_const_16")(param v128) (result v128) (f32x4.max (v128.const f32x4 0 1 2 3) (local.get 0))) + (func (export "f32x4.max_with_const_17")(param v128) (result v128) (f32x4.max (v128.const f32x4 0x00 0x01 0x02 0x80000000) (local.get 0))) + (func (export "f32x4.max_with_const_18")(param v128) (result v128) (f32x4.max (local.get 0) (v128.const f32x4 0x00 0x01 0x02 0x80000000))) + + (func (export "f32x4.abs_with_const") (result v128) (f32x4.abs (v128.const f32x4 -0 -1 -2 -3))) + + ;; Test different lanes go through different if-then clauses + (type $vv_v (func (param v128 v128) (result v128))) + (table funcref (elem $f32x4_min $f32x4_max)) + + (func $f32x4_min (type $vv_v) + (f32x4.min (local.get 0) (local.get 1)) + ) + + (func $f32x4_max (type $vv_v) + (f32x4.max (local.get 0) (local.get 1)) + ) + + (func (export "call_indirect_vv_v_f32x4_extract_lane_0") + (param v128 v128 i32) (result f32) + (f32x4.extract_lane 0 + (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2)) + ) + ) + (func (export "call_indirect_vv_v_f32x4_extract_lane_1") + (param v128 v128 i32) (result f32) + (f32x4.extract_lane 1 + (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2)) + ) + ) + (func (export "call_indirect_vv_v_f32x4_extract_lane_2") + (param v128 v128 i32) (result f32) + (f32x4.extract_lane 2 + (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2)) + ) + ) + (func (export "call_indirect_vv_v_f32x4_extract_lane_3") + (param v128 v128 i32) (result f32) + (f32x4.extract_lane 3 + (call_indirect (type $vv_v) (local.get 0) (local.get 1) (local.get 2)) + ) + ) +) + +;; f32x4.abs const vs const +(assert_return (invoke "f32x4.min_with_const_0") (v128.const f32x4 0 1 1 -3)) +(assert_return (invoke "f32x4.min_with_const_1") (v128.const f32x4 0 1 2 3)) +(assert_return (invoke "f32x4.min_with_const_2") (v128.const f32x4 0x00 0x01 0x01 0x80000000)) +(assert_return (invoke "f32x4.min_with_const_3") (v128.const f32x4 0x00 0x01 0x02 0x80000000)) +;; f32x4.abs param vs const +(assert_return (invoke "f32x4.min_with_const_5" (v128.const f32x4 0 2 1 3)) + (v128.const f32x4 0 1 1 -3)) +(assert_return (invoke "f32x4.min_with_const_6" (v128.const f32x4 0 1 2 3)) + (v128.const f32x4 0 1 2 3)) +(assert_return (invoke "f32x4.min_with_const_7" (v128.const f32x4 0x00 0x02 0x01 2147483648)) + (v128.const f32x4 0x00 0x01 0x01 0x80000000)) +(assert_return (invoke "f32x4.min_with_const_8" (v128.const f32x4 0x00 0x01 0x02 0x80000000)) + (v128.const f32x4 0x00 0x01 0x02 0x80000000)) +;; f32x4.abs const vs const +(assert_return (invoke "f32x4.max_with_const_10") (v128.const f32x4 0 2 2 3)) +(assert_return (invoke "f32x4.max_with_const_11") (v128.const f32x4 0 1 2 3)) +(assert_return (invoke "f32x4.max_with_const_12") (v128.const f32x4 0x00 0x02 0x02 2147483648)) +(assert_return (invoke "f32x4.max_with_const_13") (v128.const f32x4 0x00 0x01 0x02 0x80000000)) +;; f32x4.abs param vs const +(assert_return (invoke "f32x4.max_with_const_15" (v128.const f32x4 0 2 1 3)) + (v128.const f32x4 0 2 2 3)) +(assert_return (invoke "f32x4.max_with_const_16" (v128.const f32x4 0 1 2 3)) + (v128.const f32x4 0 1 2 3)) +(assert_return (invoke "f32x4.max_with_const_17" (v128.const f32x4 0x00 0x02 0x01 2147483648)) + (v128.const f32x4 0x00 0x02 0x02 2147483648)) +(assert_return (invoke "f32x4.max_with_const_18" (v128.const f32x4 0x00 0x01 0x02 0x80000000)) + (v128.const f32x4 0x00 0x01 0x02 0x80000000)) + +(assert_return (invoke "f32x4.abs_with_const") (v128.const f32x4 0 1 2 3)) + +;; Test different lanes go through different if-then clauses +;; f32x4.min 0 +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_0" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) +) +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_1" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_2" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) + (f32.const 0) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_3" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) + (f32.const 0) +) +;; f32x4.min 1 +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_0" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) +) +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_1" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_2" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) + (f32.const 0) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_3" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 0) + ) + (f32.const 0) +) +;; f32x4.max 0 +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_0" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) +) +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_1" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_2" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) + (f32.const 1) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_3" + (v128.const f32x4 nan 0 0 1) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) + (f32.const 1) +) +;; f32x4.max 1 +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_0" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) +) +(assert_return_canonical_nan + (invoke "call_indirect_vv_v_f32x4_extract_lane_1" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_2" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) + (f32.const 1) +) +(assert_return + (invoke "call_indirect_vv_v_f32x4_extract_lane_3" + (v128.const f32x4 nan 0 0 0) + (v128.const f32x4 0 -nan 1 0) + (i32.const 1) + ) + (f32.const 0) +) + +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.min" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.max" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) + +;; Test opposite signs of zero +(assert_return (invoke "f32x4.min" (v128.const f32x4 0 0 -0 +0) + (v128.const f32x4 +0 -0 +0 -0)) + (v128.const f32x4 0 -0 -0 -0)) +(assert_return (invoke "f32x4.min" (v128.const f32x4 -0 -0 -0 -0) + (v128.const f32x4 +0 +0 +0 +0)) + (v128.const f32x4 -0 -0 -0 -0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 0 0 -0 +0) + (v128.const f32x4 +0 -0 +0 -0)) + (v128.const f32x4 0 0 0 0)) +(assert_return (invoke "f32x4.max" (v128.const f32x4 -0 -0 -0 -0) + (v128.const f32x4 +0 +0 +0 +0)) + (v128.const f32x4 +0 +0 +0 +0)) + + +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.abs" (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) + + +;; Unknown operators + +(assert_malformed (module quote "(memory 1) (func (result v128) (i8x16.abs (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i8x16.min (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i8x16.max (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i16x8.abs (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i16x8.min (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i16x8.max (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i32x4.abs (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i32x4.min (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (result v128) (i32x4.max (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") "unknown operator") + +;; type check +(assert_invalid (module (func (result v128) (f32x4.abs (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.min (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.max (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "max-min") (param v128 v128 v128) (result v128) + (f32x4.max (f32x4.min (local.get 0) (local.get 1))(local.get 2))) + (func (export "min-max") (param v128 v128 v128) (result v128) + (f32x4.min (f32x4.max (local.get 0) (local.get 1))(local.get 2))) + (func (export "max-abs") (param v128 v128) (result v128) + (f32x4.max (f32x4.abs (local.get 0)) (local.get 1))) + (func (export "min-abs") (param v128 v128) (result v128) + (f32x4.min (f32x4.abs (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "max-min" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.25 0.25 0.25 0.25) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 0.25 0.25 0.25 0.25)) +(assert_return (invoke "min-max" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.25 0.25 0.25 0.25) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 0.125 0.125 0.125 0.125)) +(assert_return (invoke "max-abs" (v128.const f32x4 -1.125 -1.125 -1.125 -1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 1.125 1.125 1.125 1.125)) +(assert_return (invoke "min-abs" (v128.const f32x4 -1.125 -1.125 -1.125 -1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 0.125 0.125 0.125 0.125)) \ No newline at end of file diff --git a/test/core/simd/simd_f32x4_arith.wast b/test/core/simd/simd_f32x4_arith.wast new file mode 100644 index 000000000..980487947 --- /dev/null +++ b/test/core/simd/simd_f32x4_arith.wast @@ -0,0 +1,4441 @@ +;; Tests for f32x4 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "f32x4.add") (param v128 v128) (result v128) (f32x4.add (local.get 0) (local.get 1))) + (func (export "f32x4.sub") (param v128 v128) (result v128) (f32x4.sub (local.get 0) (local.get 1))) + (func (export "f32x4.mul") (param v128 v128) (result v128) (f32x4.mul (local.get 0) (local.get 1))) + (func (export "f32x4.div") (param v128 v128) (result v128) (f32x4.div (local.get 0) (local.get 1))) + (func (export "f32x4.neg") (param v128) (result v128) (f32x4.neg (local.get 0))) + (func (export "f32x4.sqrt") (param v128) (result v128) (f32x4.sqrt (local.get 0))) +) + +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf))) +(assert_return (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.add" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127 0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126 0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126 -0x1.0000020000000p-126)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127 -0x1.fffffc0000000p-127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0 0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0 -0x1.8000000000000p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2 0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2 0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2 0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2 0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2 -0x1.b21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2 -0x1.721fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2 -0x1.d21fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2 -0x1.521fb60000000p+2)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf))) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sub" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-298 0x1.0000000000000p-298 0x1.0000000000000p-298 0x1.0000000000000p-298)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-298 -0x1.0000000000000p-298 -0x1.0000000000000p-298 -0x1.0000000000000p-298)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-298 -0x1.0000000000000p-298 -0x1.0000000000000p-298 -0x1.0000000000000p-298)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-298 0x1.0000000000000p-298 0x1.0000000000000p-298 0x1.0000000000000p-298)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-252 0x1.0000000000000p-252 0x1.0000000000000p-252 0x1.0000000000000p-252)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-252 -0x1.0000000000000p-252 -0x1.0000000000000p-252 -0x1.0000000000000p-252)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275 -0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275 0x1.0000000000000p-275)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-252 -0x1.0000000000000p-252 -0x1.0000000000000p-252 -0x1.0000000000000p-252)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-252 0x1.0000000000000p-252 0x1.0000000000000p-252 0x1.0000000000000p-252)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-2 0x1.0000000000000p-2 0x1.0000000000000p-2 0x1.0000000000000p-2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-2 -0x1.0000000000000p-2 -0x1.0000000000000p-2 -0x1.0000000000000p-2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150 -0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150 0x1.0000000000000p-150)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127 -0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127 0x1.0000000000000p-127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-2 -0x1.0000000000000p-2 -0x1.0000000000000p-2 -0x1.0000000000000p-2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-2 0x1.0000000000000p-2 0x1.0000000000000p-2 0x1.0000000000000p-2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.3bd3cdc2cab20p+5 0x1.3bd3cdc2cab20p+5 0x1.3bd3cdc2cab20p+5 0x1.3bd3cdc2cab20p+5)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.3bd3cdc2cab20p+5 -0x1.3bd3cdc2cab20p+5 -0x1.3bd3cdc2cab20p+5 -0x1.3bd3cdc2cab20p+5)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147 -0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147 0x1.921fb60000000p-147)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124 -0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124 0x1.921fb60000000p-124)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1 -0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1 0x1.921fb60000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.3bd3cdc2cab20p+5 -0x1.3bd3cdc2cab20p+5 -0x1.3bd3cdc2cab20p+5 -0x1.3bd3cdc2cab20p+5)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.3bd3cdc2cab20p+5 0x1.3bd3cdc2cab20p+5 0x1.3bd3cdc2cab20p+5 0x1.3bd3cdc2cab20p+5)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22 -0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22 0x1.fffffe0000000p-22)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1 -0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1 0x1.fffffe0000000p+1)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126 -0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126 0x1.fffffe0000000p+126)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.mul" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-23 0x1.0000000000000p-23 0x1.0000000000000p-23 0x1.0000000000000p-23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-23 -0x1.0000000000000p-23 -0x1.0000000000000p-23 -0x1.0000000000000p-23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-152 0x1.45f306446f9b4p-152 0x1.45f306446f9b4p-152 0x1.45f306446f9b4p-152)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-152 -0x1.45f306446f9b4p-152 -0x1.45f306446f9b4p-152 -0x1.45f306446f9b4p-152)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-277 0x1.0000010000010p-277 0x1.0000010000010p-277 0x1.0000010000010p-277)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-277 -0x1.0000010000010p-277 -0x1.0000010000010p-277 -0x1.0000010000010p-277)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-23 -0x1.0000000000000p-23 -0x1.0000000000000p-23 -0x1.0000000000000p-23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-23 0x1.0000000000000p-23 0x1.0000000000000p-23 0x1.0000000000000p-23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148 -0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148 0x1.0000000000000p-148)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-152 -0x1.45f306446f9b4p-152 -0x1.45f306446f9b4p-152 -0x1.45f306446f9b4p-152)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-152 0x1.45f306446f9b4p-152 0x1.45f306446f9b4p-152 0x1.45f306446f9b4p-152)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-277 -0x1.0000010000010p-277 -0x1.0000010000010p-277 -0x1.0000010000010p-277)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-277 0x1.0000010000010p-277 0x1.0000010000010p-277 0x1.0000010000010p-277)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+23 0x1.0000000000000p+23 0x1.0000000000000p+23 0x1.0000000000000p+23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+23 -0x1.0000000000000p+23 -0x1.0000000000000p+23 -0x1.0000000000000p+23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-129 0x1.45f306446f9b4p-129 0x1.45f306446f9b4p-129 0x1.45f306446f9b4p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-129 -0x1.45f306446f9b4p-129 -0x1.45f306446f9b4p-129 -0x1.45f306446f9b4p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-254 0x1.0000010000010p-254 0x1.0000010000010p-254 0x1.0000010000010p-254)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-254 -0x1.0000010000010p-254 -0x1.0000010000010p-254 -0x1.0000010000010p-254)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p+23 -0x1.0000000000000p+23 -0x1.0000000000000p+23 -0x1.0000000000000p+23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p+23 0x1.0000000000000p+23 0x1.0000000000000p+23 0x1.0000000000000p+23)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125 -0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125 0x1.0000000000000p-125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-129 -0x1.45f306446f9b4p-129 -0x1.45f306446f9b4p-129 -0x1.45f306446f9b4p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-129 0x1.45f306446f9b4p-129 0x1.45f306446f9b4p-129 0x1.45f306446f9b4p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-254 -0x1.0000010000010p-254 -0x1.0000010000010p-254 -0x1.0000010000010p-254)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-254 0x1.0000010000010p-254 0x1.0000010000010p-254 0x1.0000010000010p-254)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+125 0x1.0000000000000p+125 0x1.0000000000000p+125 0x1.0000000000000p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+125 -0x1.0000000000000p+125 -0x1.0000000000000p+125 -0x1.0000000000000p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-4 0x1.45f306446f9b4p-4 0x1.45f306446f9b4p-4 0x1.45f306446f9b4p-4)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-4 -0x1.45f306446f9b4p-4 -0x1.45f306446f9b4p-4 -0x1.45f306446f9b4p-4)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-129 0x1.0000010000010p-129 0x1.0000010000010p-129 0x1.0000010000010p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-129 -0x1.0000010000010p-129 -0x1.0000010000010p-129 -0x1.0000010000010p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+125 -0x1.0000000000000p+125 -0x1.0000000000000p+125 -0x1.0000000000000p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+125 0x1.0000000000000p+125 0x1.0000000000000p+125 0x1.0000000000000p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-4 -0x1.45f306446f9b4p-4 -0x1.45f306446f9b4p-4 -0x1.45f306446f9b4p-4)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-4 0x1.45f306446f9b4p-4 0x1.45f306446f9b4p-4 0x1.45f306446f9b4p-4)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-129 -0x1.0000010000010p-129 -0x1.0000010000010p-129 -0x1.0000010000010p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-129 0x1.0000010000010p-129 0x1.0000010000010p-129 0x1.0000010000010p-129)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+126 0x1.0000000000000p+126 0x1.0000000000000p+126 0x1.0000000000000p+126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+126 -0x1.0000000000000p+126 -0x1.0000000000000p+126 -0x1.0000000000000p+126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-3 0x1.45f306446f9b4p-3 0x1.45f306446f9b4p-3 0x1.45f306446f9b4p-3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-3 -0x1.45f306446f9b4p-3 -0x1.45f306446f9b4p-3 -0x1.45f306446f9b4p-3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-128 0x1.0000010000010p-128 0x1.0000010000010p-128 0x1.0000010000010p-128)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-128 -0x1.0000010000010p-128 -0x1.0000010000010p-128 -0x1.0000010000010p-128)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p+126 -0x1.0000000000000p+126 -0x1.0000000000000p+126 -0x1.0000000000000p+126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p+126 0x1.0000000000000p+126 0x1.0000000000000p+126 0x1.0000000000000p+126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1 -0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1 0x1.0000000000000p+1)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f306446f9b4p-3 -0x1.45f306446f9b4p-3 -0x1.45f306446f9b4p-3 -0x1.45f306446f9b4p-3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f306446f9b4p-3 0x1.45f306446f9b4p-3 0x1.45f306446f9b4p-3 0x1.45f306446f9b4p-3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000010000010p-128 -0x1.0000010000010p-128 -0x1.0000010000010p-128 -0x1.0000010000010p-128)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000010000010p-128 0x1.0000010000010p-128 0x1.0000010000010p-128 0x1.0000010000010p-128)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.921fb7921fb79p-126 0x1.921fb7921fb79p-126 0x1.921fb7921fb79p-126 0x1.921fb7921fb79p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.921fb7921fb79p-126 -0x1.921fb7921fb79p-126 -0x1.921fb7921fb79p-126 -0x1.921fb7921fb79p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3 -0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3 0x1.921fb60000000p+3)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.921fb7921fb79p-126 -0x1.921fb7921fb79p-126 -0x1.921fb7921fb79p-126 -0x1.921fb7921fb79p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.921fb7921fb79p-126 0x1.921fb7921fb79p-126 0x1.921fb7921fb79p-126 0x1.921fb7921fb79p-126)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f304fe7c950p+125 0x1.45f304fe7c950p+125 0x1.45f304fe7c950p+125 0x1.45f304fe7c950p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f304fe7c950p+125 -0x1.45f304fe7c950p+125 -0x1.45f304fe7c950p+125 -0x1.45f304fe7c950p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.45f304fe7c950p+125 -0x1.45f304fe7c950p+125 -0x1.45f304fe7c950p+125 -0x1.45f304fe7c950p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.45f304fe7c950p+125 0x1.45f304fe7c950p+125 0x1.45f304fe7c950p+125 0x1.45f304fe7c950p+125)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 inf inf inf inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan nan nan nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 inf inf inf inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan -nan -nan -nan) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 inf inf inf inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 inf inf inf inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -inf -inf -inf -inf) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan nan nan nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.div" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 0x1.6a09e667f3bcdp-75 0x1.6a09e667f3bcdp-75 0x1.6a09e667f3bcdp-75 0x1.6a09e667f3bcdp-75)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-63 0x1.0000000000000p-63 0x1.0000000000000p-63 0x1.0000000000000p-63)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 0x1.6a09e667f3bcdp-1 0x1.6a09e667f3bcdp-1 0x1.6a09e667f3bcdp-1 0x1.6a09e667f3bcdp-1)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 0x1.40d9324a48138p+1 0x1.40d9324a48138p+1 0x1.40d9324a48138p+1 0x1.40d9324a48138p+1)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffeffffffcp+63 0x1.fffffeffffffcp+63 0x1.fffffeffffffcp+63 0x1.fffffeffffffcp+63)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127))) +(assert_return (invoke "f32x4.sqrt" (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -inf -inf -inf -inf))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 nan nan nan nan))) +(assert_return_canonical_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -nan -nan -nan -nan))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000))) +(assert_return_arithmetic_nan_f32x4 (invoke "f32x4.sqrt" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000))) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x0p+0 0x0p+0 0x0p+0 0x0p+0)) + (v128.const f32x4 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0 -0x0.0p+0)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x0p+0 -0x0p+0 -0x0p+0 -0x0p+0)) + (v128.const f32x4 0x0.0p+0 0x0.0p+0 0x0.0p+0 0x0.0p+0)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) + (v128.const f32x4 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149 -0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) + (v128.const f32x4 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149 0x1.0000000000000p-149)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) + (v128.const f32x4 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126 -0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) + (v128.const f32x4 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126 0x1.0000000000000p-126)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) + (v128.const f32x4 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1 -0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) + (v128.const f32x4 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1 0x1.0000000000000p-1)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) + (v128.const f32x4 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0 -0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) + (v128.const f32x4 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0 0x1.0000000000000p+0)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) + (v128.const f32x4 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2 -0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) + (v128.const f32x4 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2 0x1.921fb60000000p+2)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) + (v128.const f32x4 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127 -0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) + (v128.const f32x4 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127 0x1.fffffe0000000p+127)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 inf inf inf inf)) + (v128.const f32x4 -inf -inf -inf -inf)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const f32x4 inf inf inf inf)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 nan nan nan nan)) + (v128.const f32x4 -nan -nan -nan -nan)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const f32x4 nan nan nan nan)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000)) + (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000)) +(assert_return (invoke "f32x4.neg" (v128.const f32x4 -nan:0x200000 -nan:0x200000 -nan:0x200000 -nan:0x200000)) + (v128.const f32x4 nan:0x200000 nan:0x200000 nan:0x200000 nan:0x200000)) + + +;; Mixed f32x4 tests when some lanes are NaNs +(module + + (func $f32x4_sqrt_arith (result v128) + v128.const f32x4 nan:0x200000 -nan:0x200000 16.0 25.0 + f32x4.sqrt) + (func (export "f32x4_extract_lane_arith_0") (result f32) + (f32x4.extract_lane 0 (call $f32x4_sqrt_arith))) + (func (export "f32x4_extract_lane_arith_1") (result f32) + (f32x4.extract_lane 1 (call $f32x4_sqrt_arith))) + (func (export "f32x4_extract_lane_arith_2") (result f32) + (f32x4.extract_lane 2 (call $f32x4_sqrt_arith))) + (func (export "f32x4_extract_lane_arith_3") (result f32) + (f32x4.extract_lane 3 (call $f32x4_sqrt_arith))) + + (func $f32x4_sqrt_canon (result v128) + v128.const f32x4 -1.0 nan 4.0 9.0 + f32x4.sqrt) + (func (export "f32x4_extract_lane_canon_0") (result f32) + (f32x4.extract_lane 0 (call $f32x4_sqrt_canon))) + (func (export "f32x4_extract_lane_canon_1") (result f32) + (f32x4.extract_lane 1 (call $f32x4_sqrt_canon))) + (func (export "f32x4_extract_lane_canon_2") (result f32) + (f32x4.extract_lane 2 (call $f32x4_sqrt_canon))) + (func (export "f32x4_extract_lane_canon_3") (result f32) + (f32x4.extract_lane 3 (call $f32x4_sqrt_canon))) + + (func $f32x4_sqrt_mixed (result v128) + v128.const f32x4 -inf nan:0x200000 36.0 49.0 + f32x4.sqrt) + (func (export "f32x4_extract_lane_mixed_0") (result f32) + (f32x4.extract_lane 0 (call $f32x4_sqrt_mixed))) + (func (export "f32x4_extract_lane_mixed_1") (result f32) + (f32x4.extract_lane 1 (call $f32x4_sqrt_mixed))) + (func (export "f32x4_extract_lane_mixed_2") (result f32) + (f32x4.extract_lane 2 (call $f32x4_sqrt_mixed))) + (func (export "f32x4_extract_lane_mixed_3") (result f32) + (f32x4.extract_lane 3 (call $f32x4_sqrt_mixed))) + +) + +(assert_return_arithmetic_nan (invoke "f32x4_extract_lane_arith_0")) +(assert_return_arithmetic_nan (invoke "f32x4_extract_lane_arith_1")) +(assert_return (invoke "f32x4_extract_lane_arith_2") (f32.const 4.0)) +(assert_return (invoke "f32x4_extract_lane_arith_3") (f32.const 5.0)) +(assert_return_canonical_nan (invoke "f32x4_extract_lane_canon_0")) +(assert_return_canonical_nan (invoke "f32x4_extract_lane_canon_1")) +(assert_return (invoke "f32x4_extract_lane_canon_2") (f32.const 2.0)) +(assert_return (invoke "f32x4_extract_lane_canon_3") (f32.const 3.0)) +(assert_return_canonical_nan (invoke "f32x4_extract_lane_mixed_0")) +(assert_return_arithmetic_nan (invoke "f32x4_extract_lane_mixed_1")) +(assert_return (invoke "f32x4_extract_lane_mixed_2") (f32.const 6.0)) +(assert_return (invoke "f32x4_extract_lane_mixed_3") (f32.const 7.0)) + +;; type check +(assert_invalid (module (func (result v128) (f32x4.neg (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.sqrt (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.add (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.sub (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.mul (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.div (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "add-sub") (param v128 v128 v128) (result v128) + (f32x4.add (f32x4.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "div-add") (param v128 v128 v128) (result v128) + (f32x4.div (f32x4.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "div-mul") (param v128 v128 v128) (result v128) + (f32x4.div (f32x4.mul (local.get 0) (local.get 1))(local.get 2))) + (func (export "div-sub") (param v128 v128 v128) (result v128) + (f32x4.div (f32x4.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-add") (param v128 v128 v128) (result v128) + (f32x4.mul (f32x4.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-div") (param v128 v128 v128) (result v128) + (f32x4.mul (f32x4.div (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-sub") (param v128 v128 v128) (result v128) + (f32x4.mul (f32x4.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "sub-add") (param v128 v128 v128) (result v128) + (f32x4.sub (f32x4.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "add-neg") (param v128 v128) (result v128) + (f32x4.add (f32x4.neg (local.get 0)) (local.get 1))) + (func (export "add-sqrt") (param v128 v128) (result v128) + (f32x4.add (f32x4.sqrt (local.get 0)) (local.get 1))) + (func (export "div-neg") (param v128 v128) (result v128) + (f32x4.div (f32x4.neg (local.get 0)) (local.get 1))) + (func (export "div-sqrt") (param v128 v128) (result v128) + (f32x4.div (f32x4.sqrt (local.get 0)) (local.get 1))) + (func (export "mul-neg") (param v128 v128) (result v128) + (f32x4.mul (f32x4.neg (local.get 0)) (local.get 1))) + (func (export "mul-sqrt") (param v128 v128) (result v128) + (f32x4.mul (f32x4.sqrt (local.get 0)) (local.get 1))) + (func (export "sub-neg") (param v128 v128) (result v128) + (f32x4.sub (f32x4.neg (local.get 0)) (local.get 1))) + (func (export "sub-sqrt") (param v128 v128) (result v128) + (f32x4.sub (f32x4.sqrt (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "add-sub" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.25 0.25 0.25 0.25) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 1.0 1.0 1.0 1.0)) +(assert_return (invoke "div-add" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 5.0 5.0 5.0 5.0)) +(assert_return (invoke "div-mul" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 4 4 4 4) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 18.0 18.0 18.0 18.0)) +(assert_return (invoke "div-sub" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 4.0 4.0 4.0 4.0)) +(assert_return (invoke "mul-add" (v128.const f32x4 1.25 1.25 1.25 1.25) + (v128.const f32x4 0.25 0.25 0.25 0.25) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 0.375 0.375 0.375 0.375)) +(assert_return (invoke "mul-div" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 2.25 2.25 2.25 2.25)) +(assert_return (invoke "mul-sub" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 0.25 0.25 0.25 0.25)) +(assert_return (invoke "sub-add" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.25 0.25 0.25 0.25) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 1.25 1.25 1.25 1.25)) +(assert_return (invoke "add-neg" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) +(assert_return (invoke "add-sqrt" (v128.const f32x4 2.25 2.25 2.25 2.25) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 1.75 1.75 1.75 1.75)) +(assert_return (invoke "div-neg" (v128.const f32x4 1.5 1.5 1.5 1.5) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 -6 -6 -6 -6)) +(assert_return (invoke "div-sqrt" (v128.const f32x4 2.25 2.25 2.25 2.25) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 6 6 6 6)) +(assert_return (invoke "mul-neg" (v128.const f32x4 1.5 1.5 1.5 1.5) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 -0.375 -0.375 -0.375 -0.375)) +(assert_return (invoke "mul-sqrt" (v128.const f32x4 2.25 2.25 2.25 2.25) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 0.375 0.375 0.375 0.375)) +(assert_return (invoke "sub-neg" (v128.const f32x4 1.125 1.125 1.125 1.125) + (v128.const f32x4 0.125 0.125 0.125 0.125)) + (v128.const f32x4 -1.25 -1.25 -1.25 -1.25)) +(assert_return (invoke "sub-sqrt" (v128.const f32x4 2.25 2.25 2.25 2.25) + (v128.const f32x4 0.25 0.25 0.25 0.25)) + (v128.const f32x4 1.25 1.25 1.25 1.25)) \ No newline at end of file diff --git a/test/core/simd/simd_f64x2_cmp.wast b/test/core/simd/simd_f64x2_cmp.wast new file mode 100644 index 000000000..c3727bf02 --- /dev/null +++ b/test/core/simd/simd_f64x2_cmp.wast @@ -0,0 +1,7788 @@ +;; Tests for f64x2 comparison operations on major boundary values and all special values. + + +(module + (func (export "f64x2.eq") (param v128 v128) (result v128) (f64x2.eq (local.get 0) (local.get 1))) + (func (export "f64x2.ne") (param v128 v128) (result v128) (f64x2.ne (local.get 0) (local.get 1))) + (func (export "f64x2.lt") (param v128 v128) (result v128) (f64x2.lt (local.get 0) (local.get 1))) + (func (export "f64x2.le") (param v128 v128) (result v128) (f64x2.le (local.get 0) (local.get 1))) + (func (export "f64x2.gt") (param v128 v128) (result v128) (f64x2.gt (local.get 0) (local.get 1))) + (func (export "f64x2.ge") (param v128 v128) (result v128) (f64x2.ge (local.get 0) (local.get 1))) +) + +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1074 0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -inf -inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p+0 0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x0p+0 -0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1 -0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1074 -0x1p-1074) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p-1022 -0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1 0x1p-1) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x0p+0 0x0p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 inf inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 inf inf) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -0x1p+0 -0x1p+0) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0x1p-1022 0x1p-1022) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan -nan) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1074 0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -inf -inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p+0 0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x0p+0 -0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1 -0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1074 -0x1p-1074)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p-1022 -0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1 0x1p-1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x0p+0 0x0p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 inf inf)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -0x1p+0 -0x1p+0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 0x1p-1022 0x1p-1022)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan -nan)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000) + (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -1 -1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -1 -1) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -1 -1) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 -1 -1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0 0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0 0) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0 0) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 0 0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 1 1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 1 1) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 1 1) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 1 1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.eq" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -1 -1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -1 -1) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -1 -1) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 -1 -1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0 0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0 0) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0 0) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 0 0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 1 1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 1 1) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 1 1) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 1 1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ne" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -1 -1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -1 -1) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -1 -1) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 -1 -1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0 0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0 0) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0 0) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 0 0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 1 1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 1 1) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 1 1) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 1 1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.lt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -1 -1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -1 -1) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -1 -1) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 -1 -1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0 0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0 0) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0 0) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 0 0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 1 1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 1 1) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 1 1) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 1 1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.le" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -1 -1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -1 -1) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -1 -1) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 -1 -1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0 0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0 0) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0 0) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 0 0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 1 1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 1 1) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 1 1) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 1 1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.gt" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -1 -1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -1 -1) + (v128.const f64x2 0 0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -1 -1) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 -1 -1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0 0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0 0) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0 0) + (v128.const f64x2 1 1)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 0 0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 1 1) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 1 1) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 1 1) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 1 1) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 0 0)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 -1 -1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 0 0)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 1 1)) + (v128.const i64x2 -1 -1)) +(assert_return (invoke "f64x2.ge" (v128.const f64x2 2.0 2.0) + (v128.const f64x2 2.0 2.0)) + (v128.const i64x2 -1 -1)) + + +;; unknown operators +(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (f2x64.eq (local.get $x) (local.get $y)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (f2x64.ne (local.get $x) (local.get $y)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (f2x64.lt (local.get $x) (local.get $y)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (f2x64.le (local.get $x) (local.get $y)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (f2x64.gt (local.get $x) (local.get $y)))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (param $x v128) (param $y v128) (result v128) (f2x64.ge (local.get $x) (local.get $y)))") "unknown operator") + +;; type check +(assert_invalid (module (func (result v128) (f64x2.eq (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.ne (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.lt (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.le (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.gt (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.ge (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module (memory 1) + (func (export "f64x2.eq-in-block") + (block + (drop + (block (result v128) + (f64x2.eq + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "f64x2.ne-in-block") + (block + (drop + (block (result v128) + (f64x2.ne + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "f64x2.lt-in-block") + (block + (drop + (block (result v128) + (f64x2.lt + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "f64x2.le-in-block") + (block + (drop + (block (result v128) + (f64x2.le + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "f64x2.gt-in-block") + (block + (drop + (block (result v128) + (f64x2.gt + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "f64x2.ge-in-block") + (block + (drop + (block (result v128) + (f64x2.ge + (block (result v128) (v128.load (i32.const 0))) + (block (result v128) (v128.load (i32.const 1))) + ) + ) + ) + ) + ) + (func (export "nested-f64x2.eq") + (drop + (f64x2.eq + (f64x2.eq + (f64x2.eq + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.eq + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.eq + (f64x2.eq + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.eq + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) + (func (export "nested-f64x2.ne") + (drop + (f64x2.ne + (f64x2.ne + (f64x2.ne + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.ne + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.ne + (f64x2.ne + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.ne + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) + (func (export "nested-f64x2.lt") + (drop + (f64x2.lt + (f64x2.lt + (f64x2.lt + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.lt + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.lt + (f64x2.lt + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.lt + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) + (func (export "nested-f64x2.le") + (drop + (f64x2.le + (f64x2.le + (f64x2.le + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.le + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.le + (f64x2.le + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.le + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) + (func (export "nested-f64x2.gt") + (drop + (f64x2.gt + (f64x2.gt + (f64x2.gt + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.gt + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.gt + (f64x2.gt + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.gt + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) + (func (export "nested-f64x2.ge") + (drop + (f64x2.ge + (f64x2.ge + (f64x2.ge + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.ge + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.ge + (f64x2.ge + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.ge + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) + (func (export "as-param") + (drop + (f64x2.eq + (f64x2.ne + (f64x2.lt + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.le + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + (f64x2.gt + (f64x2.ge + (v128.load (i32.const 0)) + (v128.load (i32.const 1)) + ) + (f64x2.eq + (v128.load (i32.const 2)) + (v128.load (i32.const 3)) + ) + ) + ) + ) + ) +) +(assert_return (invoke "f64x2.eq-in-block")) +(assert_return (invoke "f64x2.ne-in-block")) +(assert_return (invoke "f64x2.lt-in-block")) +(assert_return (invoke "f64x2.le-in-block")) +(assert_return (invoke "f64x2.gt-in-block")) +(assert_return (invoke "f64x2.ge-in-block")) +(assert_return (invoke "nested-f64x2.eq")) +(assert_return (invoke "nested-f64x2.ne")) +(assert_return (invoke "nested-f64x2.lt")) +(assert_return (invoke "nested-f64x2.le")) +(assert_return (invoke "nested-f64x2.gt")) +(assert_return (invoke "nested-f64x2.ge")) +(assert_return (invoke "as-param")) \ No newline at end of file diff --git a/test/core/simd/simd_i16x8_arith.wast b/test/core/simd/simd_i16x8_arith.wast new file mode 100644 index 000000000..78b5dc7e2 --- /dev/null +++ b/test/core/simd/simd_i16x8_arith.wast @@ -0,0 +1,557 @@ +;; Tests for i16x8 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "i16x8.add") (param v128 v128) (result v128) (i16x8.add (local.get 0) (local.get 1))) + (func (export "i16x8.sub") (param v128 v128) (result v128) (i16x8.sub (local.get 0) (local.get 1))) + (func (export "i16x8.mul") (param v128 v128) (result v128) (i16x8.mul (local.get 0) (local.get 1))) + (func (export "i16x8.neg") (param v128) (result v128) (i16x8.neg (local.get 0))) +) + + +;; i16x8.add +(assert_return (invoke "i16x8.add" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i8x16 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i32x4 0x80008000 0x80008000 0x80008000 0x80008000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0x8000 0 0x8000 0 0x8000 0 0x8000 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i16x8 0x8000 0xbf80 0x8000 0xbf80 0x8000 0xbf80 0x8000 0xbf80)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i16x8 0x8000 0x3f80 0x8000 0x3f80 0x8000 0x3f80 0x8000 0x3f80)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0x01 0x7f81 0x01 0x7f81 0x01 0x7f81 0x01 0x7f81)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0x01 0xff81 0x01 0xff81 0x01 0xff81 0x01 0xff81)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 3 6 9 12 15 18 21)) + +;; i16x8.sub +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32764 32764 32764 32764 32764 32764 32764 32764)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32765 -32765 -32765 -32765 -32765 -32765 -32765 -32765)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i8x16 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80 0 0x80)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i16x8 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i32x4 0x80008000 0x80008000 0x80008000 0x80008000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i16x8 0x02 0x02 0x02 0x02 0x02 0x02 0x02 0x02)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0x8000 0 0x8000 0 0x8000 0 0x8000 0)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i16x8 0x8000 0x4080 0x8000 0x4080 0x8000 0x4080 0x8000 0x4080)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i16x8 0x8000 0xc080 0x8000 0xc080 0x8000 0xc080 0x8000 0xc080)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0x01 0x8081 0x01 0x8081 0x01 0x8081 0x01 0x8081)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0x01 0x81 0x01 0x81 0x01 0x81 0x01 0x81)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0x8041 0x01 0x8041 0x01 0x8041 0x01 0x8041)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 0x02 0x04 0x06 0x08 0x0a 0x0c 0x0e)) +(assert_return (invoke "i16x8.sub" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 -1 -2 -3 -4 -5 -6 -7)) + +;; i16x8.mul +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000 0x1000) + (v128.const i8x16 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i32x4 0x00020002 0x00020002 0x00020002 0x00020002)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0 0x7f80 0 0x7f80 0 0x7f80 0 0x7f80)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0 0xff80 0 0xff80 0 0xff80 0 0xff80)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0 0x7fc0 0 0x7fc0 0 0x7fc0 0 0x7fc0)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 0xffff 0xfffc 0xfff7 0xfff0 0xffe7 0xffdc 0xffcf)) +(assert_return (invoke "i16x8.mul" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 0x02 0x08 0x12 0x20 0x32 0x48 0x62)) + +;; i16x8.neg +(assert_return (invoke "i16x8.neg" (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) + (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x7fff -0x7fff -0x7fff -0x7fff)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.neg" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + +;; type check +(assert_invalid (module (func (result v128) (i16x8.neg (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.add (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.sub (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.mul (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "add-sub") (param v128 v128 v128) (result v128) + (i16x8.add (i16x8.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-add") (param v128 v128 v128) (result v128) + (i16x8.mul (i16x8.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-sub") (param v128 v128 v128) (result v128) + (i16x8.mul (i16x8.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "sub-add") (param v128 v128 v128) (result v128) + (i16x8.sub (i16x8.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "add-neg") (param v128 v128) (result v128) + (i16x8.add (i16x8.neg (local.get 0)) (local.get 1))) + (func (export "mul-neg") (param v128 v128) (result v128) + (i16x8.mul (i16x8.neg (local.get 0)) (local.get 1))) + (func (export "sub-neg") (param v128 v128) (result v128) + (i16x8.sub (i16x8.neg (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "add-sub" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "mul-add" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 2 2 2 2 2 2 2 2)) + (v128.const i16x8 0 4 8 12 16 20 24 28)) +(assert_return (invoke "mul-sub" (v128.const i16x8 0 2 4 6 8 10 12 14) + (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 1 2 3 4 5 6 7)) + (v128.const i16x8 0 1 4 9 16 25 36 49)) +(assert_return (invoke "sub-add" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 1 2 3 4 5 6 7)) +(assert_return (invoke "add-neg" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 1 2 3 4 5 6 7)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "mul-neg" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 2 2 2 2 2 2 2 2)) + (v128.const i16x8 0 -2 -4 -6 -8 -10 -12 -14)) +(assert_return (invoke "sub-neg" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 1 2 3 4 5 6 7)) + (v128.const i16x8 0 -2 -4 -6 -8 -10 -12 -14)) \ No newline at end of file diff --git a/test/core/simd/simd_i16x8_sat_arith.wast b/test/core/simd/simd_i16x8_sat_arith.wast new file mode 100644 index 000000000..8f3e08637 --- /dev/null +++ b/test/core/simd/simd_i16x8_sat_arith.wast @@ -0,0 +1,627 @@ +;; Tests for i16x8 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "i16x8.add_saturate_s") (param v128 v128) (result v128) (i16x8.add_saturate_s (local.get 0) (local.get 1))) + (func (export "i16x8.add_saturate_u") (param v128 v128) (result v128) (i16x8.add_saturate_u (local.get 0) (local.get 1))) + (func (export "i16x8.sub_saturate_s") (param v128 v128) (result v128) (i16x8.sub_saturate_s (local.get 0) (local.get 1))) + (func (export "i16x8.sub_saturate_u") (param v128 v128) (result v128) (i16x8.sub_saturate_u (local.get 0) (local.get 1))) +) + + +;; i16x8.add_saturate_s +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0x01 0x7f81 0x01 0x7f81 0x01 0x7f81 0x01 0x7f81)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0x01 0xff81 0x01 0xff81 0x01 0xff81 0x01 0xff81)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i16x8 0x01 0xffc1 0x01 0xffc1 0x01 0xffc1 0x01 0xffc1)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add_saturate_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 3 6 9 12 15 18 21)) + +;; i16x8.add_saturate_u +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32769 32769 32769 32769 32769 32769 32769 32769)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 65534 65534 65534 65534 65534 65534 65534 65534)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 65534 65534 65534 65534 65534 65534 65534 65534)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0x8000 0xffff 0x8000 0xffff 0x8000 0xffff 0x8000 0xffff)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0x01 0x7f81 0x01 0x7f81 0x01 0x7f81 0x01 0x7f81)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0x01 0xff81 0x01 0xff81 0x01 0xff81 0x01 0xff81)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1 0x01 0x7fc1)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) +(assert_return (invoke "i16x8.add_saturate_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 3 6 9 12 15 18 21)) + +;; i16x8.sub_saturate_s +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32764 32764 32764 32764 32764 32764 32764 32764)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32765 -32765 -32765 -32765 -32765 -32765 -32765 -32765)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0x8000 0 0x8000 0 0x8000 0 0x8000 0)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0x01 0x8081 0x01 0x8081 0x01 0x8081 0x01 0x8081)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0x01 0x81 0x01 0x81 0x01 0x81 0x01 0x81)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0x8041 0x01 0x8041 0x01 0x8041 0x01 0x8041)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i16x8 0x01 0x41 0x01 0x41 0x01 0x41 0x01 0x41)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 2 4 6 8 10 12 14)) +(assert_return (invoke "i16x8.sub_saturate_s" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 -1 -2 -3 -4 -5 -6 -7)) + +;; i16x8.sub_saturate_u +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 16383 16383 16383 16383 16383 16383 16383 16383) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -16383 -16383 -16383 -16383 -16383 -16383 -16383 -16383) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -16385 -16385 -16385 -16385 -16385 -16385 -16385 -16385) + (v128.const i16x8 -16384 -16384 -16384 -16384 -16384 -16384 -16384 -16384)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32764 32764 32764 32764 32764 32764 32764 32764)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32765 32765 32765 32765 32765 32765 32765 32765)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -32766 -32766 -32766 -32766 -32766 -32766 -32766 -32766) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32767 -32767 -32767 -32767 -32767 -32767 -32767 -32767)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 65534 65534 65534 65534 65534 65534 65534 65534)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 32768 32768 32768 32768 32768 32768 32768 32768)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff 0x3fff) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000) + (v128.const i16x8 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000 0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff -0x3fff) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000 -0x4000) + (v128.const i16x8 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001 -0x4001)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 32766 32766 32766 32766 32766 32766 32766 32766)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i16x8 65534 65534 65534 65534 65534 65534 65534 65534)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i16x8 0x8000 0 0x8000 0 0x8000 0 0x8000 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i16x8 0x01 0 0x01 0 0x01 0 0x01 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i16x8 0x01 0 0x01 0 0x01 0 0x01 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i16x8 0x01 0 0x01 0 0x01 0 0x01 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i16x8 0x01 0 0x01 0 0x01 0 0x01 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 0xffff 0xfffe 0xfffd 0xfffc 0xfffb 0xfffa 0xfff9)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i16x8.sub_saturate_u" (v128.const i16x8 0 1 2 3 4 5 6 7) + (v128.const i16x8 0 2 4 6 8 10 12 14)) + (v128.const i16x8 0 0 0 0 0 0 0 0)) + +;; Malformed cases: non-existent op names +(assert_malformed (module quote + "(func (result v128) (i16x8.add_saturate (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.sub_saturate (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.mul_saturate (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i16x8.div_saturate (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 2 2 2 2 2 2 2 2)))") + "unknown operator") + +;; type check +(assert_invalid (module (func (result v128) (i16x8.add_saturate_s (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.add_saturate_u (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.sub_saturate_s (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i16x8.sub_saturate_u (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "sat-add_s-sub_s") (param v128 v128 v128) (result v128) + (i16x8.add_saturate_s (i16x8.sub_saturate_s (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_s-sub_u") (param v128 v128 v128) (result v128) + (i16x8.add_saturate_s (i16x8.sub_saturate_u (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_u-sub_s") (param v128 v128 v128) (result v128) + (i16x8.add_saturate_u (i16x8.sub_saturate_s (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_u-sub_u") (param v128 v128 v128) (result v128) + (i16x8.add_saturate_u (i16x8.sub_saturate_u (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_s-neg") (param v128 v128) (result v128) + (i16x8.add_saturate_s (i16x8.neg (local.get 0)) (local.get 1))) + (func (export "sat-add_u-neg") (param v128 v128) (result v128) + (i16x8.add_saturate_u (i16x8.neg (local.get 0)) (local.get 1))) + (func (export "sat-sub_s-neg") (param v128 v128) (result v128) + (i16x8.sub_saturate_s (i16x8.neg (local.get 0)) (local.get 1))) + (func (export "sat-sub_u-neg") (param v128 v128) (result v128) + (i16x8.sub_saturate_u (i16x8.neg (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "sat-add_s-sub_s" (v128.const i16x8 16384 16384 16384 16384 16384 16384 16384 16384) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "sat-add_s-sub_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "sat-add_u-sub_s" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 65534 65534 65534 65534 65534 65534 65534 65534)) +(assert_return (invoke "sat-add_u-sub_u" (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535) + (v128.const i16x8 0 0 0 0 0 0 0 0) + (v128.const i16x8 1 1 1 1 1 1 1 1)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "sat-add_s-neg" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "sat-add_u-neg" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) +(assert_return (invoke "sat-sub_s-neg" (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768) + (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767)) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) +(assert_return (invoke "sat-sub_u-neg" (v128.const i16x8 32767 32767 32767 32767 32767 32767 32767 32767) + (v128.const i16x8 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768)) + (v128.const i16x8 1 1 1 1 1 1 1 1)) \ No newline at end of file diff --git a/test/core/simd/simd_i32x4_arith.wast b/test/core/simd/simd_i32x4_arith.wast new file mode 100644 index 000000000..7fe81070c --- /dev/null +++ b/test/core/simd/simd_i32x4_arith.wast @@ -0,0 +1,557 @@ +;; Tests for i32x4 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "i32x4.add") (param v128 v128) (result v128) (i32x4.add (local.get 0) (local.get 1))) + (func (export "i32x4.sub") (param v128 v128) (result v128) (i32x4.sub (local.get 0) (local.get 1))) + (func (export "i32x4.mul") (param v128 v128) (result v128) (i32x4.mul (local.get 0) (local.get 1))) + (func (export "i32x4.neg") (param v128) (result v128) (i32x4.neg (local.get 0))) +) + + +;; i32x4.add +(assert_return (invoke "i32x4.add" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2 2 2 2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x3fffffff 0x3fffffff 0x3fffffff 0x3fffffff) + (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000) + (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -0x3fffffff -0x3fffffff -0x3fffffff -0x3fffffff) + (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000) + (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000) + (v128.const i32x4 -0x40000001 -0x40000001 -0x40000001 -0x40000001)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i32x4 -0x01 -0x01 -0x01 -0x01)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i8x16 0 0 0 0x80 0 0 0 0x80 0 0 0 0x80 0 0 0 0x80)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i16x8 0 0x8000 0 0x8000 0 0x8000 0 0x8000)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i32x4 0xbf800000 0xbf800000 0xbf800000 0xbf800000)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i32x4 0x3f800000 0x3f800000 0x3f800000 0x3f800000)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i32x4 0x7f800001 0x7f800001 0x7f800001 0x7f800001)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0xff800001 0xff800001 0xff800001 0xff800001)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i32x4 0x7fc00001 0x7fc00001 0x7fc00001 0x7fc00001)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 0xffffffff 0xfffffffe 0xfffffffd)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.add" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 2 4 6)) + (v128.const i32x4 0 3 6 9)) + +;; i32x4.sub +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 2 2 2 2)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483644 2147483644 2147483644 2147483644)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2147483645 -2147483645 -2147483645 -2147483645)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x3fffffff 0x3fffffff 0x3fffffff 0x3fffffff) + (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000) + (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -0x3fffffff -0x3fffffff -0x3fffffff -0x3fffffff) + (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000) + (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000) + (v128.const i32x4 -0x40000001 -0x40000001 -0x40000001 -0x40000001)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i32x4 -0x01 -0x01 -0x01 -0x01)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 -2 -2 -2 -2)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i8x16 0 0 0 0x80 0 0 0 0x80 0 0 0 0x80 0 0 0 0x80)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 1 1 1 1) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i32x4 2 2 2 2)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i16x8 0 0x8000 0 0x8000 0 0x8000 0 0x8000)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 1 1 1 1) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 0x02 0x02 0x02 0x02)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i32x4 0x40800000 0x40800000 0x40800000 0x40800000)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i32x4 0xc0800000 0xc0800000 0xc0800000 0xc0800000)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x1 0x1 0x1 0x1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i32x4 0x80800001 0x80800001 0x80800001 0x80800001)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x1 0x1 0x1 0x1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0x00800001 0x00800001 0x00800001 0x00800001)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0x1 0x1 0x1 0x1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i32x4 0x80400001 0x80400001 0x80400001 0x80400001)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 0xffffffff 0xfffffffe 0xfffffffd)) + (v128.const i32x4 0 0x02 0x04 0x06)) +(assert_return (invoke "i32x4.sub" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 2 4 6)) + (v128.const i32x4 0 -1 -2 -3)) + +;; i32x4.mul +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0 0 0 0) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 1 1 1 1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -1 -1 -1 -1) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 1073741823 1073741823 1073741823 1073741823) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 1073741824 1073741824 1073741824 1073741824) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -1073741823 -1073741823 -1073741823 -1073741823) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -1073741825 -1073741825 -1073741825 -1073741825) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 2147483645 2147483645 2147483645 2147483645) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483645 2147483645 2147483645 2147483645)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 2147483648 2147483648 2147483648 2147483648) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295) + (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x3fffffff 0x3fffffff 0x3fffffff 0x3fffffff) + (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000)) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000) + (v128.const i32x4 0x40000000 0x40000000 0x40000000 0x40000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -0x3fffffff -0x3fffffff -0x3fffffff -0x3fffffff) + (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000)) + (v128.const i32x4 -1073741824 -1073741824 -1073741824 -1073741824)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000) + (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 -0x40000000 -0x40000000 -0x40000000 -0x40000000) + (v128.const i32x4 -0x40000001 -0x40000001 -0x40000001 -0x40000001)) + (v128.const i32x4 1073741824 1073741824 1073741824 1073741824)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i32x4 -0x01 -0x01 -0x01 -0x01)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x10000000 0x10000000 0x10000000 0x10000000) + (v128.const i8x16 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000) + (v128.const i16x8 0 0x02 0 0x02 0 0x02 0 0x02)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff) + (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x1 0x1 0x1 0x1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i32x4 0x7f800000 0x7f800000 0x7f800000 0x7f800000)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x1 0x1 0x1 0x1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i32x4 0xff800000 0xff800000 0xff800000 0xff800000)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0x1 0x1 0x1 0x1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i32x4 0x7fc00000 0x7fc00000 0x7fc00000 0x7fc00000)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 0xffffffff 0xfffffffe 0xfffffffd)) + (v128.const i32x4 0 0xffffffff 0xfffffffc 0xfffffff7)) +(assert_return (invoke "i32x4.mul" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 2 4 6)) + (v128.const i32x4 0 0x02 0x08 0x12)) + +;; i32x4.neg +(assert_return (invoke "i32x4.neg" (v128.const i32x4 0 0 0 0)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 1 1 1 1)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 -1 -1 -1 -1)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 2147483646 2147483646 2147483646 2147483646)) + (v128.const i32x4 -2147483646 -2147483646 -2147483646 -2147483646)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 4294967295 4294967295 4294967295 4294967295)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 0x01 0x01 0x01 0x01)) + (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 -0x01 -0x01 -0x01 -0x01)) + (v128.const i32x4 1 1 1 1)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 -0x80000000 -0x80000000 -0x80000000 -0x80000000)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 -0x7fffffff -0x7fffffff -0x7fffffff -0x7fffffff)) + (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff)) + (v128.const i32x4 -2147483647 -2147483647 -2147483647 -2147483647)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) + (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) +(assert_return (invoke "i32x4.neg" (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i32x4 1 1 1 1)) + +;; type check +(assert_invalid (module (func (result v128) (i32x4.neg (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.add (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.sub (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.mul (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "add-sub") (param v128 v128 v128) (result v128) + (i32x4.add (i32x4.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-add") (param v128 v128 v128) (result v128) + (i32x4.mul (i32x4.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "mul-sub") (param v128 v128 v128) (result v128) + (i32x4.mul (i32x4.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "sub-add") (param v128 v128 v128) (result v128) + (i32x4.sub (i32x4.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "add-neg") (param v128 v128) (result v128) + (i32x4.add (i32x4.neg (local.get 0)) (local.get 1))) + (func (export "mul-neg") (param v128 v128) (result v128) + (i32x4.mul (i32x4.neg (local.get 0)) (local.get 1))) + (func (export "sub-neg") (param v128 v128) (result v128) + (i32x4.sub (i32x4.neg (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "add-sub" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 2 4 6) + (v128.const i32x4 0 2 4 6)) + (v128.const i32x4 0 1 2 3)) +(assert_return (invoke "mul-add" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 1 2 3) + (v128.const i32x4 2 2 2 2)) + (v128.const i32x4 0 4 8 12)) +(assert_return (invoke "mul-sub" (v128.const i32x4 0 2 4 6) + (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 1 2 3)) + (v128.const i32x4 0 1 4 9)) +(assert_return (invoke "sub-add" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 2 4 6) + (v128.const i32x4 0 2 4 6)) + (v128.const i32x4 0 1 2 3)) +(assert_return (invoke "add-neg" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 1 2 3)) + (v128.const i32x4 0 0 0 0)) +(assert_return (invoke "mul-neg" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 2 2 2 2)) + (v128.const i32x4 0 -2 -4 -6)) +(assert_return (invoke "sub-neg" (v128.const i32x4 0 1 2 3) + (v128.const i32x4 0 1 2 3)) + (v128.const i32x4 0 -2 -4 -6)) \ No newline at end of file diff --git a/test/core/simd/simd_i8x16_arith.wast b/test/core/simd/simd_i8x16_arith.wast new file mode 100644 index 000000000..1042233f1 --- /dev/null +++ b/test/core/simd/simd_i8x16_arith.wast @@ -0,0 +1,383 @@ +;; Tests for i8x16 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "i8x16.add") (param v128 v128) (result v128) (i8x16.add (local.get 0) (local.get 1))) + (func (export "i8x16.sub") (param v128 v128) (result v128) (i8x16.sub (local.get 0) (local.get 1))) + (func (export "i8x16.neg") (param v128) (result v128) (i8x16.neg (local.get 0))) +) + + +;; i8x16.add +(assert_return (invoke "i8x16.add" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x8080 0x8080 0x8080 0x8080 0x8080 0x8080 0x8080 0x8080)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i8x16 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i8x16 0x80 0x80 0 0xbf 0x80 0x80 0 0xbf 0x80 0x80 0 0xbf 0x80 0x80 0 0xbf)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i8x16 0x80 0x80 0 0x3f 0x80 0x80 0 0x3f 0x80 0x80 0 0x3f 0x80 0x80 0 0x3f)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i8x16 0x01 0x01 0x81 0x80 0x01 0x01 0x81 0x80 0x01 0x01 0x81 0x80 0x01 0x01 0x81 0x80)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i8x16 0x01 0x01 0x81 0 0x01 0x01 0x81 0 0x01 0x01 0x81 0 0x01 0x01 0x81 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i8x16 0x01 0x01 0xc1 0x80 0x01 0x01 0xc1 0x80 0x01 0x01 0xc1 0x80 0x01 0x01 0xc1 0x80)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45)) + +;; i8x16.sub +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i16x8 0x8080 0x8080 0x8080 0x8080 0x8080 0x8080 0x8080 0x8080)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i16x8 65535 65535 65535 65535 65535 65535 65535 65535)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i32x4 0x80808080 0x80808080 0x80808080 0x80808080)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 +0.0 +0.0 +0.0 +0.0)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i8x16 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 1.0 1.0 1.0 1.0)) + (v128.const i8x16 0x80 0x80 0 0x41 0x80 0x80 0 0x41 0x80 0x80 0 0x41 0x80 0x80 0 0x41)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) + (v128.const i8x16 0x80 0x80 0 0xc1 0x80 0x80 0 0xc1 0x80 0x80 0 0xc1 0x80 0x80 0 0xc1)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i8x16 0x01 0x01 0x81 0x82 0x01 0x01 0x81 0x82 0x01 0x01 0x81 0x82 0x01 0x01 0x81 0x82)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i8x16 0x01 0x01 0x81 0x02 0x01 0x01 0x81 0x02 0x01 0x01 0x81 0x02 0x01 0x01 0x81 0x02)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i8x16 0x01 0x01 0x41 0x82 0x01 0x01 0x41 0x82 0x01 0x01 0x41 0x82 0x01 0x01 0x41 0x82)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1)) + (v128.const i8x16 0 0x02 0x04 0x06 0x08 0x0a 0x0c 0x0e 0x10 0x12 0x14 0x16 0x18 0x1a 0x1c 0x1e)) +(assert_return (invoke "i8x16.sub" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15)) + +;; i8x16.neg +(assert_return (invoke "i8x16.neg" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) + (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.neg" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + +;; type check +(assert_invalid (module (func (result v128) (i8x16.neg (i32.const 0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.add (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.sub (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "add-sub") (param v128 v128 v128) (result v128) + (i8x16.add (i8x16.sub (local.get 0) (local.get 1))(local.get 2))) + (func (export "sub-add") (param v128 v128 v128) (result v128) + (i8x16.sub (i8x16.add (local.get 0) (local.get 1))(local.get 2))) + (func (export "add-neg") (param v128 v128) (result v128) + (i8x16.add (i8x16.neg (local.get 0)) (local.get 1))) + (func (export "sub-neg") (param v128 v128) (result v128) + (i8x16.sub (i8x16.neg (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "add-sub" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)) +(assert_return (invoke "sub-add" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)) +(assert_return (invoke "add-neg" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "sub-neg" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)) + (v128.const i8x16 0 -2 -4 -6 -8 -10 -12 -14 -16 -18 -20 -22 -24 -26 -28 -30)) \ No newline at end of file diff --git a/test/core/simd/simd_i8x16_sat_arith.wast b/test/core/simd/simd_i8x16_sat_arith.wast new file mode 100644 index 000000000..2ea780922 --- /dev/null +++ b/test/core/simd/simd_i8x16_sat_arith.wast @@ -0,0 +1,651 @@ +;; Tests for i8x16 arithmetic operations on major boundary values and all special values. + + +(module + (func (export "i8x16.add_saturate_s") (param v128 v128) (result v128) (i8x16.add_saturate_s (local.get 0) (local.get 1))) + (func (export "i8x16.add_saturate_u") (param v128 v128) (result v128) (i8x16.add_saturate_u (local.get 0) (local.get 1))) + (func (export "i8x16.sub_saturate_s") (param v128 v128) (result v128) (i8x16.sub_saturate_s (local.get 0) (local.get 1))) + (func (export "i8x16.sub_saturate_u") (param v128 v128) (result v128) (i8x16.sub_saturate_u (local.get 0) (local.get 1))) +) + + +;; i8x16.add_saturate_s +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i8x16 0x01 0x01 0x81 0x7f 0x01 0x01 0x81 0x7f 0x01 0x01 0x81 0x7f 0x01 0x01 0x81 0x7f)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i8x16 0x01 0x01 0x81 0 0x01 0x01 0x81 0 0x01 0x01 0x81 0 0x01 0x01 0x81 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i8x16 0x01 0x01 0xc1 0x7f 0x01 0x01 0xc1 0x7f 0x01 0x01 0xc1 0x7f 0x01 0x01 0xc1 0x7f)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i8x16 0x01 0x01 0xc1 0 0x01 0x01 0xc1 0 0x01 0x01 0xc1 0 0x01 0x01 0xc1 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add_saturate_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45)) + +;; i8x16.add_saturate_u +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129 129)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i8x16 0x80 0x80 0x80 0xff 0x80 0x80 0x80 0xff 0x80 0x80 0x80 0xff 0x80 0x80 0x80 0xff)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i8x16 0x01 0x01 0x81 0x80 0x01 0x01 0x81 0x80 0x01 0x01 0x81 0x80 0x01 0x01 0x81 0x80)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i8x16 0x01 0x01 0x81 0xff 0x01 0x01 0x81 0xff 0x01 0x01 0x81 0xff 0x01 0x01 0x81 0xff)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i8x16 0x01 0x01 0xc1 0x80 0x01 0x01 0xc1 0x80 0x01 0x01 0xc1 0x80 0x01 0x01 0xc1 0x80)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i8x16 0x01 0x01 0xc1 0xff 0x01 0x01 0xc1 0xff 0x01 0x01 0xc1 0xff 0x01 0x01 0xc1 0xff)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1)) + (v128.const i8x16 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) +(assert_return (invoke "i8x16.add_saturate_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45)) + +;; i8x16.sub_saturate_s +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125 -125)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i8x16 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i8x16 0x01 0x01 0x7f 0x82 0x01 0x01 0x7f 0x82 0x01 0x01 0x7f 0x82 0x01 0x01 0x7f 0x82)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i8x16 0x01 0x01 0x7f 0x02 0x01 0x01 0x7f 0x02 0x01 0x01 0x7f 0x02 0x01 0x01 0x7f 0x02)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i8x16 0x01 0x01 0x41 0x82 0x01 0x01 0x41 0x82 0x01 0x01 0x41 0x82 0x01 0x01 0x41 0x82)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i8x16 0x01 0x01 0x41 0x02 0x01 0x01 0x41 0x02 0x01 0x01 0x41 0x02 0x01 0x01 0x41 0x02)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1)) + (v128.const i8x16 0 0x02 0x04 0x06 0x08 0x0a 0x0c 0x0e 0x10 0x12 0x14 0x16 0x18 0x1a 0x1c 0x1e)) +(assert_return (invoke "i8x16.sub_saturate_s" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15)) + +;; i8x16.sub_saturate_u +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63 -63) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65 -65) + (v128.const i8x16 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64 -64)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124 124)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125 125)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126 -126) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127 -127)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f 0x3f) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40) + (v128.const i8x16 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f -0x3f) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40 -0x40) + (v128.const i8x16 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41 -0x41)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126 126)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01 -0x01)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01)) + (v128.const i8x16 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) + (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) + (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) + (v128.const i8x16 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0 0x80 0x80 0x80 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 +inf +inf +inf +inf)) + (v128.const i8x16 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -inf -inf -inf -inf)) + (v128.const i8x16 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 nan nan nan nan)) + (v128.const i8x16 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) + (v128.const f32x4 -nan -nan -nan -nan)) + (v128.const i8x16 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0 0x01 0x01 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 0xff 0xfe 0xfd 0xfc 0xfb 0xfa 0xf9 0xf8 0xf7 0xf6 0xf5 0xf4 0xf3 0xf2 0xf1)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "i8x16.sub_saturate_u" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) + (v128.const i8x16 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30)) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) + +;; Malformed cases: non-existent op names +(assert_malformed (module quote + "(func (result v128) (i8x16.add_saturate (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.sub_saturate (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.mul_saturate (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i8x16.div_saturate (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.add_saturate_s (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.add_saturate_u (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.sub_saturate_s (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (i32x4.sub_saturate_u (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (f32x4.add_saturate_s (v128.const f32x4 0 0 0 0) (v128.const f32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (f32x4.add_saturate_u (v128.const f32x4 0 0 0 0) (v128.const f32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (f32x4.sub_saturate_s (v128.const f32x4 0 0 0 0) (v128.const f32x4 0 0 0 0)))") + "unknown operator") +(assert_malformed (module quote + "(func (result v128) (f32x4.sub_saturate_u (v128.const f32x4 0 0 0 0) (v128.const f32x4 0 0 0 0)))") + "unknown operator") + +;; type check +(assert_invalid (module (func (result v128) (i8x16.add_saturate_s (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.add_saturate_u (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.sub_saturate_s (i32.const 0) (f32.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i8x16.sub_saturate_u (i32.const 0) (f32.const 0.0)))) "type mismatch") + +;; combination +(module + (func (export "sat-add_s-sub_s") (param v128 v128 v128) (result v128) + (i8x16.add_saturate_s (i8x16.sub_saturate_s (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_s-sub_u") (param v128 v128 v128) (result v128) + (i8x16.add_saturate_s (i8x16.sub_saturate_u (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_u-sub_s") (param v128 v128 v128) (result v128) + (i8x16.add_saturate_u (i8x16.sub_saturate_s (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_u-sub_u") (param v128 v128 v128) (result v128) + (i8x16.add_saturate_u (i8x16.sub_saturate_u (local.get 0) (local.get 1))(local.get 2))) + (func (export "sat-add_s-neg") (param v128 v128) (result v128) + (i8x16.add_saturate_s (i8x16.neg (local.get 0)) (local.get 1))) + (func (export "sat-add_u-neg") (param v128 v128) (result v128) + (i8x16.add_saturate_u (i8x16.neg (local.get 0)) (local.get 1))) + (func (export "sat-sub_s-neg") (param v128 v128) (result v128) + (i8x16.sub_saturate_s (i8x16.neg (local.get 0)) (local.get 1))) + (func (export "sat-sub_u-neg") (param v128 v128) (result v128) + (i8x16.sub_saturate_u (i8x16.neg (local.get 0)) (local.get 1))) +) + +(assert_return (invoke "sat-add_s-sub_s" (v128.const i8x16 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "sat-add_s-sub_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "sat-add_u-sub_s" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254)) +(assert_return (invoke "sat-add_u-sub_u" (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255) + (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "sat-add_s-neg" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1)) +(assert_return (invoke "sat-add_u-neg" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255)) +(assert_return (invoke "sat-sub_s-neg" (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128) + (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127)) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) +(assert_return (invoke "sat-sub_u-neg" (v128.const i8x16 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127 127) + (v128.const i8x16 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128 -128)) + (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) \ No newline at end of file diff --git a/test/core/simd/simd_lane.wast b/test/core/simd/simd_lane.wast index ce2ce1b3d..24b2d5a67 100644 --- a/test/core/simd/simd_lane.wast +++ b/test/core/simd/simd_lane.wast @@ -42,6 +42,22 @@ (f32x4.replace_lane 0 (local.get 0) (local.get 1))) (func (export "f32x4_replace_lane-last") (param v128 f32) (result v128) (f32x4.replace_lane 3 (local.get 0) (local.get 1))) + (func (export "i64x2_extract_lane-first") (param v128) (result i64) + (i64x2.extract_lane 0 (local.get 0))) + (func (export "i64x2_extract_lane-last") (param v128) (result i64) + (i64x2.extract_lane 1 (local.get 0))) + (func (export "f64x2_extract_lane-first") (param v128) (result f64) + (f64x2.extract_lane 0 (local.get 0))) + (func (export "f64x2_extract_lane-last") (param v128) (result f64) + (f64x2.extract_lane 1 (local.get 0))) + (func (export "i64x2_replace_lane-first") (param v128 i64) (result v128) + (i64x2.replace_lane 0 (local.get 0) (local.get 1))) + (func (export "i64x2_replace_lane-last") (param v128 i64) (result v128) + (i64x2.replace_lane 1 (local.get 0) (local.get 1))) + (func (export "f64x2_replace_lane-first") (param v128 f64) (result v128) + (f64x2.replace_lane 0 (local.get 0) (local.get 1))) + (func (export "f64x2_replace_lane-last") (param v128 f64) (result v128) + (f64x2.replace_lane 1 (local.get 0) (local.get 1))) ;; Swizzle and shuffle (func (export "v8x16_swizzle") (param v128 v128) (result v128) @@ -115,6 +131,18 @@ (assert_return (invoke "i32x4_extract_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0x8000)) (i32.const -2147483648)) (assert_return (invoke "i32x4_extract_lane-last" (v128.const f32x4 0 0 0 5.0)) (i32.const 0x40a00000)) +(assert_return (invoke "i64x2_extract_lane-first" (v128.const i64x2 9223372036854775807 0)) (i64.const 9223372036854775807)) +(assert_return (invoke "i64x2_extract_lane-first" (v128.const i64x2 0x7ffffffffffffffe 0)) (i64.const 0x7ffffffffffffffe)) +(assert_return (invoke "i64x2_extract_lane-first" (v128.const i64x2 18446744073709551615 0)) (i64.const -1)) +(assert_return (invoke "i64x2_extract_lane-first" (v128.const i64x2 0xffffffffffffffff 0)) (i64.const -1)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const i64x2 0 9223372036854775808)) (i64.const -9223372036854775808)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const i64x2 0 0x8000000000000000)) (i64.const -0x8000000000000000)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const i64x2 0 0x8000000000000000)) (i64.const 0x8000000000000000)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f)) (i64.const 9223372036854775807)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0x8000)) (i64.const -9223372036854775808)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const i32x4 0 0 0xffffffff 0x7fffffff)) (i64.const 9223372036854775807)) +(assert_return (invoke "i64x2_extract_lane-last" (v128.const f64x2 -inf +inf)) (i64.const 0x7ff0000000000000)) + (assert_return (invoke "f32x4_extract_lane-first" (v128.const f32x4 -5.0 0.0 0.0 0.0)) (f32.const -5.0)) (assert_return (invoke "f32x4_extract_lane-first" (v128.const f32x4 1e38 0.0 0.0 0.0)) (f32.const 1e38)) (assert_return (invoke "f32x4_extract_lane-first" (v128.const f32x4 0x1.fffffep127 0.0 0.0 0.0)) (f32.const 0x1.fffffep127)) @@ -139,6 +167,36 @@ (assert_return (invoke "f32x4_extract_lane-last" (v128.const i32x4 0 0 0 0xff800000)) (f32.const -inf)) (assert_return (invoke "f32x4_extract_lane-last" (v128.const i32x4 0 0 0 0x7fc00000)) (f32.const nan)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 -1.5 0.0)) (f64.const -1.5)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 1.5 0.0)) (f64.const 1.5)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 -1.7976931348623157e-308 0x0p+0)) (f64.const -1.7976931348623157e-308)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 1.7976931348623157e-308 0x0p-0)) (f64.const 1.7976931348623157e-308)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 -0x1.fffffffffffffp-1023 0x0p+0)) (f64.const -0x1.fffffffffffffp-1023)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 0x1.fffffffffffffp-1023 0x0p-0)) (f64.const 0x1.fffffffffffffp-1023)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 -inf 0.0)) (f64.const -inf)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 inf 0.0)) (f64.const inf)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 -nan -0.0)) (f64.const -nan)) +(assert_return (invoke "f64x2_extract_lane-first" (v128.const f64x2 nan 0.0)) (f64.const nan)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0.0 2.25)) (f64.const 2.25)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0.0 -2.25)) (f64.const -2.25)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0x0p-0 -1.7976931348623157e+308)) (f64.const -1.7976931348623157e+308)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0x0p+0 1.7976931348623157e+308)) (f64.const 1.7976931348623157e+308)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0x0p-0 -0x1.fffffffffffffp+1023)) (f64.const -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0x0p+0 0x1.fffffffffffffp+1023)) (f64.const 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 -0.0 -inf)) (f64.const -inf)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0.0 inf)) (f64.const inf)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 -0.0 -nan)) (f64.const -nan)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const f64x2 0.0 nan)) (f64.const nan)) + +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (f64.const 0.0)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x80)) (f64.const -0.0)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0x4000)) (f64.const 2.0)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0xc000)) (f64.const -2.0)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i32x4 0 0 0xffffffff 0x7fefffff)) (f64.const 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i32x4 0 0 0 0x00100000)) (f64.const 0x1.0000000000000p-1022)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i32x4 0 0 0xffffffff 0x000fffff)) (f64.const 0x1.ffffffffffffep-1023)) +(assert_return (invoke "f64x2_extract_lane-last" (v128.const i32x4 0 0 1 0)) (f64.const 0x0.0000000000002p-1023)) + (assert_return (invoke "i8x16_replace_lane-first" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 127)) (v128.const i8x16 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16_replace_lane-first" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 128)) (v128.const i8x16 -128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16_replace_lane-first" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 255)) (v128.const i8x16 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) @@ -177,7 +235,7 @@ (assert_return (invoke "i32x4_replace_lane-last" (v128.const i32x4 0 0 0 0) (i32.const -2147483648)) (v128.const i32x4 0 0 0 -2147483648)) ;; Use other v128 interpretations as arguments (assert_return (invoke "i32x4_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 2147483647)) (v128.const i32x4 0 0 0 2147483647)) -(assert_return (invoke "i32x4_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 2147483647)) (v128.const i32x4 0 0 0 2147483647)) +(assert_return (invoke "i32x4_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 2147483648)) (v128.const i32x4 0 0 0 -2147483648)) (assert_return (invoke "i32x4_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 2147483647)) (v128.const i32x4 0 0 0 2147483647)) (assert_return (invoke "i32x4_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 0x80000000)) (v128.const i32x4 0 0 0 -2147483648)) (assert_return (invoke "i32x4_replace_lane-last" (v128.const f32x4 0 0 0 0) (i32.const 2147483647)) (v128.const i32x4 0 0 0 2147483647)) @@ -204,6 +262,54 @@ (assert_return (invoke "f32x4_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (f32.const 1.0)) (v128.const f32x4 0 0 0 1.0)) (assert_return (invoke "f32x4_replace_lane-last" (v128.const f32x4 0 0 0 0) (f32.const 1.0)) (v128.const f32x4 0 0 0 1.0)) +(assert_return (invoke "i64x2_replace_lane-first" (v128.const i64x2 0 0) (i64.const 9223372036854775807)) (v128.const i64x2 9223372036854775807 0)) +(assert_return (invoke "i64x2_replace_lane-first" (v128.const i64x2 0 0) (i64.const 18446744073709551615)) (v128.const i64x2 -1 0)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i64x2 0 0) (i64.const 9223372036854775808)) (v128.const i64x2 0 9223372036854775808)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i64x2 0 0) (i64.const 9223372036854775808)) (v128.const i64x2 0 -9223372036854775808)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i64.const 1)) (v128.const i64x2 0 1)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i64.const -1)) (v128.const i64x2 0 0xffffffffffffffff)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (i64.const 0x7fffffffffffffff)) (v128.const i64x2 0 9223372036854775807)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (i64.const 0x8000000000000000)) (v128.const i64x2 0 -9223372036854775808)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i32x4 0 0 0 0) (i64.const 0x7fffffffffffffff)) (v128.const i64x2 0 0x7fffffffffffffff)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const i32x4 0 0 0 0) (i64.const 0x8000000000000000)) (v128.const i64x2 0 -0x8000000000000000)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (i64.const 0x7fffffffffffffff)) (v128.const i64x2 0 0x7fffffffffffffff)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (i64.const 0x8000000000000000)) (v128.const i64x2 0 0x8000000000000000)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const f64x2 0.0 inf) (i64.const 1)) (v128.const i64x2 0 1)) +(assert_return (invoke "i64x2_replace_lane-last" (v128.const f64x2 0.0 nan) (i64.const -1)) (v128.const i64x2 0 -1)) + +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 1.0 1.0) (f64.const 0x0p+0)) (v128.const f64x2 0.0 1.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 -1.0 -1.0) (f64.const -0x0p-0)) (v128.const f64x2 -0.0 -1.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 0.0 0.0) (f64.const 1.25)) (v128.const f64x2 1.25 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 0.0 0.0) (f64.const -1.25)) (v128.const f64x2 -1.25 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 -nan 0.0) (f64.const -1.7976931348623157e+308)) (v128.const f64x2 -1.7976931348623157e+308 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 nan 0.0) (f64.const 1.7976931348623157e+308)) (v128.const f64x2 1.7976931348623157e+308 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 -inf 0.0) (f64.const -0x1.fffffffffffffp-1023)) (v128.const f64x2 -0x1.fffffffffffffp-1023 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 inf 0.0) (f64.const 0x1.fffffffffffffp-1023)) (v128.const f64x2 0x1.fffffffffffffp-1023 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 0.0 0.0) (f64.const -nan)) (v128.const f64x2 -nan 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 0.0 0.0) (f64.const nan)) (v128.const f64x2 nan 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 0.0 0.0) (f64.const -inf)) (v128.const f64x2 -inf 0.0)) +(assert_return (invoke "f64x2_replace_lane-first" (v128.const f64x2 0.0 0.0) (f64.const inf)) (v128.const f64x2 inf 0.0)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 2.0 2.0) (f64.const 0.0)) (v128.const f64x2 2.0 0.0)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 -2.0 -2.0) (f64.const -0.0)) (v128.const f64x2 -2.0 -0.0)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (f64.const 2.25)) (v128.const f64x2 0.0 2.25)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (f64.const -2.25)) (v128.const f64x2 0.0 -2.25)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 -nan) (f64.const -1.7976931348623157e+308)) (v128.const f64x2 0.0 -1.7976931348623157e+308)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 nan) (f64.const 1.7976931348623157e+308)) (v128.const f64x2 0.0 1.7976931348623157e+308)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 -inf) (f64.const -0x1.fffffffffffffp-1023)) (v128.const f64x2 0.0 -0x1.fffffffffffffp-1023)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 inf) (f64.const 0x1.fffffffffffffp-1023)) (v128.const f64x2 0.0 0x1.fffffffffffffp-1023)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (f64.const -nan)) (v128.const f64x2 0.0 -nan)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (f64.const nan)) (v128.const f64x2 0.0 nan)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (f64.const -inf)) (v128.const f64x2 0.0 -inf)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const f64x2 0.0 0.0) (f64.const inf)) (v128.const f64x2 0.0 inf)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (f64.const -0x1p-1022)) (v128.const f64x2 0 -0x1p-1022)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (f64.const 0x1p-1022)) (v128.const f64x2 0 0x1p-1022)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (f64.const -4.9406564584124654e-324)) (v128.const f64x2 0 -4.9406564584124654e-324)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i16x8 0 0 0 0 0 0 0 0) (f64.const 4.9406564584124654e-324)) (v128.const f64x2 0 4.9406564584124654e-324)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i32x4 0 0 0 0) (f64.const -inf)) (v128.const f64x2 0 -inf)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i32x4 0 0 0 0) (f64.const inf)) (v128.const f64x2 0 inf)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i64x2 0 0) (f64.const -nan)) (v128.const f64x2 0 -nan)) +(assert_return (invoke "f64x2_replace_lane-last" (v128.const i64x2 0 0) (f64.const nan)) (v128.const f64x2 0 nan)) + (assert_return (invoke "v8x16_swizzle" (v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)) @@ -320,6 +426,14 @@ (assert_invalid (module (func (result v128) (i32x4.replace_lane 4 (v128.const i32x4 0 0 0 0) (i32.const 1)))) "invalid lane index") (assert_invalid (module (func (result v128) (f32x4.replace_lane -1 (v128.const f32x4 0 0 0 0) (i32.const 1)))) "invalid lane index") (assert_invalid (module (func (result v128) (f32x4.replace_lane 4 (v128.const f32x4 0 0 0 0) (i32.const 1)))) "invalid lane index") +(assert_invalid (module (func (result i64) (i64x2.extract_lane -1 (v128.const i64x2 0 0)))) "invalid lane index") +(assert_invalid (module (func (result i64) (i64x2.extract_lane 2 (v128.const i64x2 0 0)))) "invalid lane index") +(assert_invalid (module (func (result f64) (f64x2.extract_lane -1 (v128.const f64x2 0 0)))) "invalid lane index") +(assert_invalid (module (func (result f64) (f64x2.extract_lane 2 (v128.const f64x2 0 0)))) "invalid lane index") +(assert_invalid (module (func (result v128) (i64x2.replace_lane -1 (v128.const i64x2 0 0) (i64.const 1)))) "invalid lane index") +(assert_invalid (module (func (result v128) (i64x2.replace_lane 2 (v128.const i64x2 0 0) (i64.const 1)))) "invalid lane index") +(assert_invalid (module (func (result v128) (f64x2.replace_lane -1 (v128.const f64x2 0 0) (f64.const 1)))) "invalid lane index") +(assert_invalid (module (func (result v128) (f64x2.replace_lane 2 (v128.const f64x2 0 0) (f64.const 1.0)))) "invalid lane index") ;; Lane index is determined by the instruction's interpretation only. @@ -327,10 +441,13 @@ (assert_invalid (module (func (result i32) (i16x8.extract_lane_u 8 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))) "invalid lane index") (assert_invalid (module (func (result i32) (i32x4.extract_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))) "invalid lane index") (assert_invalid (module (func (result i32) (f32x4.extract_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))) "invalid lane index") -(assert_invalid (module (func (result v128) (f16x8.replace_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index") +(assert_invalid (module (func (result v128) (i16x8.replace_lane 8 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index") (assert_invalid (module (func (result v128) (i32x4.replace_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index") (assert_invalid (module (func (result v128) (f32x4.replace_lane 4 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))) "invalid lane index") - +(assert_invalid (module (func (result i64) (i64x2.extract_lane 2 (v128.const i64x2 0 0 0 0)))) "invalid lane index") +(assert_invalid (module (func (result f64) (f64x2.extract_lane 2 (v128.const f64x2 0 0 0 0)))) "invalid lane index") +(assert_invalid (module (func (result v128) (i64x2.replace_lane 2 (v128.const i64x2 0 0 0 0) (i64.const 1)))) "invalid lane index") +(assert_invalid (module (func (result v128) (f64x2.replace_lane 2 (v128.const f64x2 0 0 0 0) (f64.const 1.0)))) "invalid lane index") ;; Invalid parameters: required v128 but pass other types @@ -344,16 +461,22 @@ (assert_invalid (module (func (result v128) (i16x8.replace_lane 0 (i64.const 0) (i32.const 1)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.replace_lane 0 (i32.const 0) (i32.const 1)))) "type mismatch") (assert_invalid (module (func (result v128) (f32x4.replace_lane 0 (f32.const 0.0) (i32.const 1)))) "type mismatch") +(assert_invalid (module (func (result i64) (i64x2.extract_lane 0 (i64.const 0)))) "type mismatch") +(assert_invalid (module (func (result f64) (f64x2.extract_lane 0 (f64.const 0.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (i32x4.replace_lane 0 (i32.const 0) (i32.const 1)))) "type mismatch") +(assert_invalid (module (func (result v128) (f32x4.replace_lane 0 (f32.const 0.0) (i32.const 1)))) "type mismatch") -;; Invalid type for the replaced value +;; Invalid types for the replaced value (assert_invalid (module (func (result v128) (i8x16.replace_lane 0 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (f32.const 1.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.replace_lane 0 (v128.const i16x8 0 0 0 0 0 0 0 0) (f64.const 1.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.replace_lane 0 (v128.const i32x4 0 0 0 0) (f32.const 1.0)))) "type mismatch") (assert_invalid (module (func (result v128) (f32x4.replace_lane 0 (v128.const f32x4 0 0 0 0) (i32.const 1)))) "type mismatch") -;; Invalid type for swizzle and shuffle value +(assert_invalid (module (func (result v128) (i64x2.replace_lane 0 (v128.const i64x2 0 0) (f64.const 1.0)))) "type mismatch") +(assert_invalid (module (func (result v128) (f64x2.replace_lane 0 (v128.const f64x2 0 0) (i64.const 1)))) "type mismatch") +;; Invalid types for swizzle and shuffle values (assert_invalid (module (func (result v128) (v8x16.swizzle (i32.const 1) (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))) "type mismatch") (assert_invalid (module (func (result v128) @@ -366,7 +489,6 @@ (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) (f32.const 4.0)))) "type mismatch") ;; v8x16.shuffle: the 1st argument must be 16-byte literals in 0..32 - (assert_invalid (module (func (result v128) (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) @@ -384,16 +506,17 @@ (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))) "invalid lane index") - ;; Possible wrong instruction names that'd be used (assert_malformed (module quote "(func (result i32) (i8x16.extract_lane 0 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result i32) (i16x8.extract_lane 0 (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result i32) (i32x4.extract_lane_s 0 (v128.const i32x4 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result i32) (i32x4.extract_lane_u 0 (v128.const i32x4 0 0 0 0)))") "unknown operator") +(assert_malformed (module quote "(func (result i32) (i64x2.extract_lane_s 0 (v128.const i64x2 0 0)))") "unknown operator") +(assert_malformed (module quote "(func (result i32) (i64x2.extract_lane_u 0 (v128.const i64x2 0 0)))") "unknown operator") -;; Old shuffle instruction names should not work +;; Old shuffle instruction names will not work (assert_malformed (module quote "(func (result v128) " "(v8x16.shuffle1 (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))") @@ -403,9 +526,7 @@ "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " "(v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31)))") "unknown operator") - ;; v8x16 not i8x16 - (assert_malformed (module quote "(func (result v128) " "(i8x16.swizzle (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))") @@ -426,7 +547,7 @@ (assert_malformed (module quote "(func (param i32) (result i32) (i16x8.extract_lane_s (local.get 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") "expected i8 literal") (assert_malformed (module quote "(func (param i32) (result i32) (i16x8.extract_lane_u (local.get 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") "expected i8 literal") (assert_malformed (module quote "(func (param i32) (result i32) (i32x4.extract_lane (local.get 0) (v128.const i32x4 0 0 0 0)))") "expected i8 literal") -(assert_malformed (module quote "(func (param i32) (result i32) (f32x4.extract_lane (local.get 0) (v128.const f32x4 0 0 0 0)))") "expected i8 literal") +(assert_malformed (module quote "(func (param i32) (result f32) (f32x4.extract_lane (local.get 0) (v128.const f32x4 0 0 0 0)))") "expected i8 literal") (assert_malformed (module quote "(func (param i32) (result v128) (i8x16.replace_lane (local.get 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))") "expected i8 literal") (assert_malformed (module quote "(func (param i32) (result v128) (i16x8.replace_lane (local.get 0) (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 1)))") "expected i8 literal") (assert_malformed (module quote "(func (param i32) (result v128) (i32x4.replace_lane (local.get 0) (v128.const i32x4 0 0 0 0) (i32.const 1)))") "expected i8 literal") @@ -436,6 +557,11 @@ "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) " "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "expected i8 literal") +(assert_malformed (module quote "(func (param i32) (result i64) (i64x2.extract_lane (local.get 0) (v128.const i64x2 0 0)))") "expected i8 literal") +(assert_malformed (module quote "(func (param i32) (result f64) (f64x2.extract_lane (local.get 0) (v128.const f64x2 0 0)))") "expected i8 literal") +(assert_malformed (module quote "(func (param i32) (result v128) (i64x2.replace_lane (local.get 0) (v128.const i64x2 0 0) (i64.const 1)))") "expected i8 literal") +(assert_malformed (module quote "(func (param i32) (result v128) (f64x2.replace_lane (local.get 0) (v128.const f64x2 0 0) (f64.const 1.0)))") "expected i8 literal") + ;; Pass non-literal as the lane index (assert_malformed (module quote "(func (result i32) (i8x16.extract_lane_s 1.5 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "expected i8 literal") @@ -443,14 +569,18 @@ (assert_malformed (module quote "(func (result i32) (i16x8.extract_lane_s inf (v128.const i16x8 0 0 0 0 0 0 0 0)))") "expected i8 literal") (assert_malformed (module quote "(func (result i32) (i16x8.extract_lane_u -inf (v128.const i16x8 0 0 0 0 0 0 0 0)))") "expected i8 literal") (assert_malformed (module quote "(func (result i32) (i32x4.extract_lane nan (v128.const i32x4 0 0 0 0)))") "expected i8 literal") -(assert_malformed (module quote "(func (result i32) (f32x4.extract_lane nan (v128.const f32x4 0 0 0 0)))") "expected i8 literal") +(assert_malformed (module quote "(func (result f32) (f32x4.extract_lane nan (v128.const f32x4 0 0 0 0)))") "expected i8 literal") (assert_malformed (module quote "(func (result v128) (i8x16.replace_lane -2.5 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)))") "expected i8 literal") (assert_malformed (module quote "(func (result v128) (i16x8.replace_lane nan (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 1)))") "expected i8 literal") (assert_malformed (module quote "(func (result v128) (i32x4.replace_lane inf (v128.const i32x4 0 0 0 0) (i32.const 1)))") "expected i8 literal") (assert_malformed (module quote "(func (result v128) (f32x4.replace_lane -inf (v128.const f32x4 0 0 0 0) (f32.const 1.1)))") "expected i8 literal") -;; v8x16.shuffle expects a 16-byte literals as first argument +(assert_malformed (module quote "(func (result i64) (i64x2.extract_lane nan (v128.const i64x2 0 0)))") "expected i8 literal") +(assert_malformed (module quote "(func (result f64) (f64x2.extract_lane nan (v128.const f64x2 0 0)))") "expected i8 literal") +(assert_malformed (module quote "(func (result v128) (i64x2.replace_lane inf (v128.const i64x2 0 0) (i64.const 1)))") "expected i8 literal") +(assert_malformed (module quote "(func (result v128) (f64x2.replace_lane -inf (v128.const f64x2 0 0) (f64.const 1.1)))") "expected i8 literal") +;; v8x16.shuffle expects a 16-byte literals as first argument (assert_malformed (module quote "(func (result v128) " "(v8x16.shuffle (v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) " "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) " @@ -493,6 +623,10 @@ (i32x4.replace_lane 0 (local.get 0) (i32x4.extract_lane 0 (local.get 1)))) (func (export "f32x4_extract_lane") (param v128 v128) (result v128) (i32x4.replace_lane 0 (local.get 0) (i32x4.extract_lane 0 (local.get 1)))) + (func (export "i64x2_extract_lane") (param v128 v128) (result v128) + (i64x2.replace_lane 0 (local.get 0) (i64x2.extract_lane 0 (local.get 1)))) + (func (export "f64x2_extract_lane") (param v128 v128) (result v128) + (f64x2.replace_lane 0 (local.get 0) (f64x2.extract_lane 0 (local.get 1)))) ;; as *.extract_lane's operand (func (export "i8x16_replace_lane-s") (param v128 i32) (result i32) @@ -507,6 +641,10 @@ (i32x4.extract_lane 3 (i32x4.replace_lane 3 (local.get 0) (local.get 1)))) (func (export "f32x4_replace_lane") (param v128 f32) (result f32) (f32x4.extract_lane 3 (f32x4.replace_lane 3 (local.get 0) (local.get 1)))) + (func (export "i64x2_replace_lane") (param v128 i64) (result i64) + (i64x2.extract_lane 1 (i64x2.replace_lane 1 (local.get 0) (local.get 1)))) + (func (export "f64x2_replace_lane") (param v128 f64) (result f64) + (f64x2.extract_lane 1 (f64x2.replace_lane 1 (local.get 0) (local.get 1)))) ;; i8x16.replace outputs as shuffle operand (func (export "as-v8x16_swizzle-operand") (param v128 i32 v128) (result v128) @@ -530,6 +668,11 @@ (assert_return (invoke "i32x4_replace_lane" (v128.const i32x4 0 0 0 0) (i32.const -1)) (i32.const -1)) (assert_return (invoke "f32x4_replace_lane" (v128.const f32x4 0 0 0 0) (f32.const 1.25)) (f32.const 1.25)) +(assert_return (invoke "i64x2_extract_lane" (v128.const i64x2 0 0) (v128.const i64x2 0xffffffffffffffff -1)) (v128.const i64x2 0xffffffffffffffff 0)) +(assert_return (invoke "f64x2_extract_lane" (v128.const f64x2 0 0) (v128.const f64x2 1e308 nan)) (v128.const f64x2 1e308 0)) +(assert_return (invoke "i64x2_replace_lane" (v128.const i64x2 0 0) (i64.const -1)) (i64.const -1)) +(assert_return (invoke "f64x2_replace_lane" (v128.const f64x2 0 0) (f64.const 2.5)) (f64.const 2.5)) + (assert_return (invoke "as-v8x16_swizzle-operand" (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) (i32.const 255) (v128.const i8x16 -1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1)) @@ -551,6 +694,10 @@ (i32x4.splat (i32x4.extract_lane 0 (local.get 0)))) (func (export "as-f32x4_splat-operand") (param v128) (result v128) (f32x4.splat (f32x4.extract_lane 0 (local.get 0)))) + (func (export "as-i64x2_splat-operand") (param v128) (result v128) + (i64x2.splat (i64x2.extract_lane 0 (local.get 0)))) + (func (export "as-f64x2_splat-operand") (param v128) (result v128) + (f64x2.splat (f64x2.extract_lane 0 (local.get 0)))) ;; Integer arithmetic (func (export "as-i8x16_add-operands") (param v128 i32 v128 i32) (result v128) @@ -558,7 +705,9 @@ (func (export "as-i16x8_add-operands") (param v128 i32 v128 i32) (result v128) (i16x8.add (i16x8.replace_lane 0 (local.get 0) (local.get 1)) (i16x8.replace_lane 7 (local.get 2) (local.get 3)))) (func (export "as-i32x4_add-operands") (param v128 i32 v128 i32) (result v128) - (i32x4.add (i32x4.replace_lane 0 (local.get 0) (local.get 1)) (i32x4.replace_lane 3 (local.get 2) (local.get 3)))) + (i32x4.add (i32x4.replace_lane 0 (local.get 0) (local.get 1)) (i32x4.replace_lane 3 (local.get 2) (local.get 3)))) + (func (export "as-i64x2_add-operands") (param v128 i64 v128 i64) (result v128) + (i64x2.add (i64x2.replace_lane 0 (local.get 0) (local.get 1)) (i64x2.replace_lane 1 (local.get 2) (local.get 3)))) (func (export "swizzle-as-i8x16_add-operands") (param v128 v128 v128 v128) (result v128) (i8x16.add (v8x16.swizzle (local.get 0) (local.get 1)) (v8x16.swizzle (local.get 2) (local.get 3)))) @@ -571,8 +720,10 @@ (i8x16.any_true (i8x16.replace_lane 0 (local.get 0) (local.get 1)))) (func (export "as-i16x8_any_true-operand") (param v128 i32) (result i32) (i16x8.any_true (i16x8.replace_lane 0 (local.get 0) (local.get 1)))) - (func (export "as-i32x4_any_true-operand") (param v128 i32) (result i32) + (func (export "as-i32x4_any_true-operand1") (param v128 i32) (result i32) (i32x4.any_true (i32x4.replace_lane 0 (local.get 0) (local.get 1)))) + (func (export "as-i32x4_any_true-operand2") (param v128 i64) (result i32) + (i32x4.any_true (i64x2.replace_lane 0 (local.get 0) (local.get 1)))) (func (export "swizzle-as-i8x16_all_true-operands") (param v128 v128) (result i32) (i8x16.all_true (v8x16.swizzle (local.get 0) (local.get 1)))) @@ -584,6 +735,8 @@ (assert_return (invoke "as-i16x8_splat-operand" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "as-i32x4_splat-operand" (v128.const i32x4 0x10000 0 0 0)) (v128.const i32x4 65536 65536 65536 65536)) (assert_return (invoke "as-f32x4_splat-operand" (v128.const f32x4 3.14 nan nan nan)) (v128.const f32x4 3.14 3.14 3.14 3.14)) +(assert_return (invoke "as-i64x2_splat-operand" (v128.const i64x2 -1 0)) (v128.const i64x2 -1 -1)) +(assert_return (invoke "as-f64x2_splat-operand" (v128.const f64x2 inf nan)) (v128.const f64x2 inf inf)) (assert_return (invoke "as-i8x16_add-operands" (v128.const i8x16 0xff 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) (i32.const 1) (v128.const i8x16 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 0xff) (i32.const 1)) @@ -594,6 +747,8 @@ (v128.const i16x8 65 53 45 41 41 45 53 65)) (assert_return (invoke "as-i32x4_add-operands" (v128.const i32x4 -1 8 27 64) (i32.const 1) (v128.const i32x4 64 27 8 -1) (i32.const 1)) (v128.const i32x4 65 35 35 65)) +(assert_return (invoke "as-i64x2_add-operands" + (v128.const i64x2 -1 8) (i64.const 1) (v128.const i64x2 64 27) (i64.const 1)) (v128.const i64x2 65 9)) (assert_return (invoke "swizzle-as-i8x16_add-operands" (v128.const i8x16 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1) @@ -610,7 +765,8 @@ (assert_return (invoke "as-i8x16_any_true-operand" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)) (i32.const 1)) (assert_return (invoke "as-i16x8_any_true-operand" (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 1)) (i32.const 1)) -(assert_return (invoke "as-i32x4_any_true-operand" (v128.const i32x4 1 0 0 0) (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-i32x4_any_true-operand1" (v128.const i32x4 1 0 0 0) (i32.const 0)) (i32.const 0)) +(assert_return (invoke "as-i32x4_any_true-operand2" (v128.const i64x2 1 0) (i64.const 0)) (i32.const 0)) (assert_return (invoke "swizzle-as-i8x16_all_true-operands" (v128.const i8x16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16) @@ -638,12 +794,20 @@ (func (export "as-v128_store-operand-4") (param v128 f32) (result v128) (v128.store (i32.const 0) (f32x4.replace_lane 0 (local.get 0) (local.get 1))) (v128.load (i32.const 0))) + (func (export "as-v128_store-operand-5") (param v128 i64) (result v128) + (v128.store (i32.const 0) (i64x2.replace_lane 0 (local.get 0) (local.get 1))) + (v128.load (i32.const 0))) + (func (export "as-v128_store-operand-6") (param v128 f64) (result v128) + (v128.store (i32.const 0) (f64x2.replace_lane 0 (local.get 0) (local.get 1))) + (v128.load (i32.const 0))) ) (assert_return (invoke "as-v128_store-operand-1" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (i32.const 1)) (v128.const i8x16 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "as-v128_store-operand-2" (v128.const i16x8 0 0 0 0 0 0 0 0) (i32.const 256)) (v128.const i16x8 0x100 0 0 0 0 0 0 0)) -(assert_return (invoke "as-v128_store-operand-3" (v128.const i32x4 0 0 0 0)(i32.const 0xffffffff)) (v128.const i32x4 -1 0 0 0)) -(assert_return (invoke "as-v128_store-operand-4" (v128.const f32x4 0 0 0 0)(f32.const 3.14)) (v128.const f32x4 3.14 0 0 0)) +(assert_return (invoke "as-v128_store-operand-3" (v128.const i32x4 0 0 0 0) (i32.const 0xffffffff)) (v128.const i32x4 -1 0 0 0)) +(assert_return (invoke "as-v128_store-operand-4" (v128.const f32x4 0 0 0 0) (f32.const 3.14)) (v128.const f32x4 3.14 0 0 0)) +(assert_return (invoke "as-v128_store-operand-5" (v128.const i64x2 0 0) (i64.const 0xffffffffffffffff)) (v128.const i64x2 -1 0)) +(assert_return (invoke "as-v128_store-operand-6" (v128.const f64x2 0 0) (f64.const 3.14)) (v128.const f64x2 3.14 0)) ;; As the argument of wasm core ops @@ -666,6 +830,13 @@ (func (export "as-global_set-value-2") (param v128 v128) (result v128) (global.set $h (v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 (local.get 0) (local.get 1))) (return (global.get $h))) + + (func (export "as-local_set-value-1") (param v128) (result i64) (local i64) + (local.set 1 (i64x2.extract_lane 0 (local.get 0))) + (return (local.get 1))) + (func (export "as-global_set-value-3") (param v128 f64) (result v128) + (global.set $g (f64x2.replace_lane 0 (local.get 0) (local.get 1))) + (return (global.get $g))) ) (assert_return (invoke "as-if-condition-value" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (i32.const 0)) @@ -681,3 +852,6 @@ (v128.const i8x16 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1) (v128.const i8x16 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1)) (v128.const i8x16 -16 -15 -14 -13 -12 -11 -10 -9 8 7 6 5 4 3 2 1)) + +(assert_return (invoke "as-local_set-value-1" (v128.const i64x2 -1 -1)) (i64.const -1)) +(assert_return (invoke "as-global_set-value-3" (v128.const f64x2 0 0)(f64.const 3.14)) (v128.const f64x2 3.14 0)) \ No newline at end of file diff --git a/test/core/simd/simd_load.wast b/test/core/simd/simd_load.wast index da4426e93..ad85a7c62 100644 --- a/test/core/simd/simd_load.wast +++ b/test/core/simd/simd_load.wast @@ -64,20 +64,16 @@ (module (memory 1) (data (offset (i32.const 0)) "\02\00\00\00\02\00\00\00\02\00\00\00\02\00\00\00") (data (offset (i32.const 16)) "\03\00\00\00\03\00\00\00\03\00\00\00\03\00\00\00") - (func (export "as-add/sub/sul-operand") (result v128) + (func (export "as-add/sub-operand") (result v128) ;; 2 2 2 2 + 3 3 3 3 = 5 5 5 5 - ;; 5 5 5 5 + 3 3 3 3 = 2 2 2 2 - ;; 2 2 2 2 * 3 3 3 3 = 6 6 6 6 - (i8x16.mul - (i8x16.sub - (i8x16.add (v128.load (i32.const 0)) (v128.load (i32.const 16))) - (v128.load (i32.const 16)) - ) + ;; 5 5 5 5 - 3 3 3 3 = 2 2 2 2 + (i8x16.sub + (i8x16.add (v128.load (i32.const 0)) (v128.load (i32.const 16))) (v128.load (i32.const 16)) ) ) ) -(assert_return (invoke "as-add/sub/sul-operand") (v128.const i32x4 6 6 6 6)) +(assert_return (invoke "as-add/sub-operand") (v128.const i32x4 2 2 2 2)) (module (memory 1) (data (offset (i32.const 0)) "\00\00\00\43\00\00\80\3f\66\66\e6\3f\00\00\80\bf") ;; 128 1.0 1.8 -1 @@ -185,4 +181,4 @@ (assert_invalid (module (memory 1) (func (drop (v128.load (local.get 2))))) "unknown local 2" -) +) \ No newline at end of file diff --git a/test/core/simd/simd_load_splat.wast b/test/core/simd/simd_load_splat.wast new file mode 100644 index 000000000..a9faf2161 --- /dev/null +++ b/test/core/simd/simd_load_splat.wast @@ -0,0 +1,220 @@ +;; Tests for the load_splat instructions + +(module + (memory 1) + (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A\0B\0C\0D\0E\0F") + (data (i32.const 65520) "\10\11\12\13\14\15\16\17\18\19\1A\1B\1C\1D\1E\1F") + + (func (export "v8x16.load_splat") (param $address i32) (result v128) (v8x16.load_splat (local.get $address))) + (func (export "v16x8.load_splat") (param $address i32) (result v128) (v16x8.load_splat (local.get $address))) + (func (export "v32x4.load_splat") (param $address i32) (result v128) (v32x4.load_splat (local.get $address))) + (func (export "v64x2.load_splat") (param $address i32) (result v128) (v64x2.load_splat (local.get $address))) + + ;; Load data with different offset/align arguments + (func (export "v8x16.offset0") (param $address i32) (result v128) (v8x16.load_splat offset=0 (local.get $address))) + (func (export "v8x16.align1") (param $address i32) (result v128) (v8x16.load_splat align=1 (local.get $address))) + (func (export "v8x16.offset1_align1") (param $address i32) (result v128) (v8x16.load_splat offset=1 align=1 (local.get $address))) + (func (export "v8x16.offset2_align1") (param $address i32) (result v128) (v8x16.load_splat offset=2 align=1 (local.get $address))) + (func (export "v8x16.offset15_align1") (param $address i32) (result v128) (v8x16.load_splat offset=15 align=1 (local.get $address))) + + (func (export "v16x8.offset0") (param $address i32) (result v128) (v16x8.load_splat offset=0 (local.get $address))) + (func (export "v16x8.align1") (param $address i32) (result v128) (v16x8.load_splat align=1 (local.get $address))) + (func (export "v16x8.offset1_align1") (param $address i32) (result v128) (v16x8.load_splat offset=1 align=1 (local.get $address))) + (func (export "v16x8.offset2_align1") (param $address i32) (result v128) (v16x8.load_splat offset=2 align=1 (local.get $address))) + (func (export "v16x8.offset15_align2") (param $address i32) (result v128) (v16x8.load_splat offset=15 align=2 (local.get $address))) + + (func (export "v32x4.offset0") (param $address i32) (result v128) (v32x4.load_splat offset=0 (local.get $address))) + (func (export "v32x4.align1") (param $address i32) (result v128) (v32x4.load_splat align=1 (local.get $address))) + (func (export "v32x4.offset1_align1") (param $address i32) (result v128) (v32x4.load_splat offset=1 align=1 (local.get $address))) + (func (export "v32x4.offset2_align2") (param $address i32) (result v128) (v32x4.load_splat offset=2 align=2 (local.get $address))) + (func (export "v32x4.offset15_align4") (param $address i32) (result v128) (v32x4.load_splat offset=15 align=4 (local.get $address))) + + (func (export "v64x2.offset0") (param $address i32) (result v128) (v64x2.load_splat offset=0 (local.get $address))) + (func (export "v64x2.align1") (param $address i32) (result v128) (v64x2.load_splat align=1 (local.get $address))) + (func (export "v64x2.offset1_align2") (param $address i32) (result v128) (v64x2.load_splat offset=1 align=2 (local.get $address))) + (func (export "v64x2.offset2_align4") (param $address i32) (result v128) (v64x2.load_splat offset=2 align=4 (local.get $address))) + (func (export "v64x2.offset15_align8") (param $address i32) (result v128) (v64x2.load_splat offset=15 align=8 (local.get $address))) + + (func (export "v8x16.offset65536") (param $address i32) (result v128) (v8x16.load_splat offset=65536 (local.get $address))) + (func (export "v16x8.offset65535") (param $address i32) (result v128) (v16x8.load_splat offset=65535 (local.get $address))) + (func (export "v32x4.offset65533") (param $address i32) (result v128) (v32x4.load_splat offset=65533 (local.get $address))) + (func (export "v64x2.offset65529") (param $address i32) (result v128) (v64x2.load_splat offset=65529 (local.get $address))) +) +(assert_return (invoke "v8x16.load_splat" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "v8x16.load_splat" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "v8x16.load_splat" (i32.const 2)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "v8x16.load_splat" (i32.const 3)) (v128.const i8x16 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3)) +(assert_return (invoke "v8x16.load_splat" (i32.const 65535)) (v128.const i8x16 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31)) +(assert_return (invoke "v16x8.load_splat" (i32.const 4)) (v128.const i16x8 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504)) +(assert_return (invoke "v16x8.load_splat" (i32.const 5)) (v128.const i16x8 0x0605 0x0605 0x0605 0x0605 0x0605 0x0605 0x0605 0x0605)) +(assert_return (invoke "v16x8.load_splat" (i32.const 6)) (v128.const i16x8 0x0706 0x0706 0x0706 0x0706 0x0706 0x0706 0x0706 0x0706)) +(assert_return (invoke "v16x8.load_splat" (i32.const 7)) (v128.const i16x8 0x0807 0x0807 0x0807 0x0807 0x0807 0x0807 0x0807 0x0807)) +(assert_return (invoke "v16x8.load_splat" (i32.const 65534)) (v128.const i16x8 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E)) +(assert_return (invoke "v32x4.load_splat" (i32.const 8)) (v128.const i32x4 0x0B0A0908 0x0B0A0908 0x0B0A0908 0x0B0A0908)) +(assert_return (invoke "v32x4.load_splat" (i32.const 9)) (v128.const i32x4 0x0C0B0A09 0x0C0B0A09 0x0C0B0A09 0x0C0B0A09)) +(assert_return (invoke "v32x4.load_splat" (i32.const 10)) (v128.const i32x4 0x0D0C0B0A 0x0D0C0B0A 0x0D0C0B0A 0x0D0C0B0A)) +(assert_return (invoke "v32x4.load_splat" (i32.const 11)) (v128.const i32x4 0x0E0D0C0B 0x0E0D0C0B 0x0E0D0C0B 0x0E0D0C0B)) +(assert_return (invoke "v32x4.load_splat" (i32.const 65532)) (v128.const i32x4 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C)) +(assert_return (invoke "v64x2.load_splat" (i32.const 12)) (v128.const i64x2 0x000000000F0E0D0C 0x000000000F0E0D0C)) +(assert_return (invoke "v64x2.load_splat" (i32.const 13)) (v128.const i64x2 0x00000000000F0E0D 0x00000000000F0E0D)) +(assert_return (invoke "v64x2.load_splat" (i32.const 14)) (v128.const i64x2 0x0000000000000F0E 0x0000000000000F0E)) +(assert_return (invoke "v64x2.load_splat" (i32.const 15)) (v128.const i64x2 0x000000000000000F 0x000000000000000F)) +(assert_return (invoke "v64x2.load_splat" (i32.const 65528)) (v128.const i64x2 0x1F1E1D1C1B1A1918 0x1F1E1D1C1B1A1918)) + +;; v8x16 +(assert_return (invoke "v8x16.offset0" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "v8x16.align1" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "v8x16.offset1_align1" (i32.const 0)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "v8x16.offset2_align1" (i32.const 0)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "v8x16.offset15_align1" (i32.const 0)) (v128.const i8x16 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15)) +(assert_return (invoke "v8x16.offset0" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "v8x16.align1" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "v8x16.offset1_align1" (i32.const 1)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "v8x16.offset2_align1" (i32.const 1)) (v128.const i8x16 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3)) +(assert_return (invoke "v8x16.offset15_align1" (i32.const 1)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "v8x16.offset0" (i32.const 65535)) (v128.const i8x16 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31)) +(assert_return (invoke "v8x16.align1" (i32.const 65535)) (v128.const i8x16 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31)) +;; v16x8 +(assert_return (invoke "v16x8.offset0" (i32.const 0)) (v128.const i16x8 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100)) +(assert_return (invoke "v16x8.align1" (i32.const 0)) (v128.const i16x8 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100)) +(assert_return (invoke "v16x8.offset1_align1" (i32.const 0)) (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201)) +(assert_return (invoke "v16x8.offset2_align1" (i32.const 0)) (v128.const i16x8 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302)) +(assert_return (invoke "v16x8.offset15_align2" (i32.const 0)) (v128.const i16x8 0x000F 0x000F 0x000F 0x000F 0x000F 0x000F 0x000F 0x000F)) +(assert_return (invoke "v16x8.offset0" (i32.const 1)) (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201)) +(assert_return (invoke "v16x8.align1" (i32.const 1)) (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201)) +(assert_return (invoke "v16x8.offset1_align1" (i32.const 1)) (v128.const i16x8 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302 0x0302)) +(assert_return (invoke "v16x8.offset2_align1" (i32.const 1)) (v128.const i16x8 0x0403 0x0403 0x0403 0x0403 0x0403 0x0403 0x0403 0x0403)) +(assert_return (invoke "v16x8.offset15_align2" (i32.const 1)) (v128.const i16x8 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000)) +(assert_return (invoke "v16x8.offset0" (i32.const 65534)) (v128.const i16x8 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E)) +(assert_return (invoke "v16x8.align1" (i32.const 65534)) (v128.const i16x8 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E 0x1F1E)) +;; v32x4 +(assert_return (invoke "v32x4.offset0" (i32.const 0)) (v128.const i32x4 0x03020100 0x03020100 0x03020100 0x03020100)) +(assert_return (invoke "v32x4.align1" (i32.const 0)) (v128.const i32x4 0x03020100 0x03020100 0x03020100 0x03020100)) +(assert_return (invoke "v32x4.offset1_align1" (i32.const 0)) (v128.const i32x4 0x04030201 0x04030201 0x04030201 0x04030201)) +(assert_return (invoke "v32x4.offset2_align2" (i32.const 0)) (v128.const i32x4 0x05040302 0x05040302 0x05040302 0x05040302)) +(assert_return (invoke "v32x4.offset15_align4" (i32.const 0)) (v128.const i32x4 0x0000000F 0x0000000F 0x0000000F 0x0000000F)) +(assert_return (invoke "v32x4.offset0" (i32.const 1)) (v128.const i32x4 0x04030201 0x04030201 0x04030201 0x04030201)) +(assert_return (invoke "v32x4.align1" (i32.const 1)) (v128.const i32x4 0x04030201 0x04030201 0x04030201 0x04030201)) +(assert_return (invoke "v32x4.offset1_align1" (i32.const 1)) (v128.const i32x4 0x05040302 0x05040302 0x05040302 0x05040302)) +(assert_return (invoke "v32x4.offset2_align2" (i32.const 1)) (v128.const i32x4 0x06050403 0x06050403 0x06050403 0x06050403)) +(assert_return (invoke "v32x4.offset15_align4" (i32.const 1)) (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)) +(assert_return (invoke "v32x4.offset0" (i32.const 65532)) (v128.const i32x4 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C)) +(assert_return (invoke "v32x4.align1" (i32.const 65532)) (v128.const i32x4 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C 0x1F1E1D1C)) +;; v64x2 +(assert_return (invoke "v64x2.offset0" (i32.const 0)) (v128.const i64x2 0x0706050403020100 0x0706050403020100)) +(assert_return (invoke "v64x2.align1" (i32.const 0)) (v128.const i64x2 0x0706050403020100 0x0706050403020100)) +(assert_return (invoke "v64x2.offset1_align2" (i32.const 0)) (v128.const i64x2 0x0807060504030201 0x0807060504030201)) +(assert_return (invoke "v64x2.offset2_align4" (i32.const 0)) (v128.const i64x2 0x0908070605040302 0x0908070605040302)) +(assert_return (invoke "v64x2.offset15_align8" (i32.const 0)) (v128.const i64x2 0x000000000000000F 0x000000000000000F)) +(assert_return (invoke "v64x2.offset0" (i32.const 1)) (v128.const i64x2 0x0807060504030201 0x0807060504030201)) +(assert_return (invoke "v64x2.align1" (i32.const 1)) (v128.const i64x2 0x0807060504030201 0x0807060504030201)) +(assert_return (invoke "v64x2.offset1_align2" (i32.const 1)) (v128.const i64x2 0x0908070605040302 0x0908070605040302)) +(assert_return (invoke "v64x2.offset2_align4" (i32.const 1)) (v128.const i64x2 0x0A09080706050403 0x0A09080706050403)) +(assert_return (invoke "v64x2.offset15_align8" (i32.const 1)) (v128.const i64x2 0x0000000000000000 0x0000000000000000)) +(assert_return (invoke "v64x2.offset0" (i32.const 65528)) (v128.const i64x2 0x1F1E1D1C1B1A1918 0x1F1E1D1C1B1A1918)) +(assert_return (invoke "v64x2.align1" (i32.const 65528)) (v128.const i64x2 0x1F1E1D1C1B1A1918 0x1F1E1D1C1B1A1918)) + + +;; Out of bounds memory access +(assert_trap (invoke "v8x16.load_splat" (i32.const -1)) "out of bounds memory access") +(assert_trap (invoke "v16x8.load_splat" (i32.const -1)) "out of bounds memory access") +(assert_trap (invoke "v32x4.load_splat" (i32.const -1)) "out of bounds memory access") +(assert_trap (invoke "v64x2.load_splat" (i32.const -1)) "out of bounds memory access") +(assert_trap (invoke "v8x16.load_splat" (i32.const 65536)) "out of bounds memory access") +(assert_trap (invoke "v16x8.load_splat" (i32.const 65535)) "out of bounds memory access") +(assert_trap (invoke "v32x4.load_splat" (i32.const 65533)) "out of bounds memory access") +(assert_trap (invoke "v64x2.load_splat" (i32.const 65529)) "out of bounds memory access") + +(assert_trap (invoke "v8x16.offset1_align1" (i32.const 65535)) "out of bounds memory access") +(assert_trap (invoke "v8x16.offset2_align1" (i32.const 65535)) "out of bounds memory access") +(assert_trap (invoke "v8x16.offset15_align1" (i32.const 65535)) "out of bounds memory access") +(assert_trap (invoke "v16x8.offset1_align1" (i32.const 65534)) "out of bounds memory access") +(assert_trap (invoke "v16x8.offset2_align1" (i32.const 65534)) "out of bounds memory access") +(assert_trap (invoke "v16x8.offset15_align2" (i32.const 65534)) "out of bounds memory access") +(assert_trap (invoke "v32x4.offset1_align1" (i32.const 65532)) "out of bounds memory access") +(assert_trap (invoke "v32x4.offset2_align2" (i32.const 65532)) "out of bounds memory access") +(assert_trap (invoke "v32x4.offset15_align4" (i32.const 65532)) "out of bounds memory access") +(assert_trap (invoke "v64x2.offset1_align2" (i32.const 65528)) "out of bounds memory access") +(assert_trap (invoke "v64x2.offset2_align4" (i32.const 65528)) "out of bounds memory access") +(assert_trap (invoke "v64x2.offset15_align8" (i32.const 65528)) "out of bounds memory access") + +(assert_trap (invoke "v8x16.offset65536" (i32.const 0)) "out of bounds memory access") +(assert_trap (invoke "v16x8.offset65535" (i32.const 0)) "out of bounds memory access") +(assert_trap (invoke "v32x4.offset65533" (i32.const 0)) "out of bounds memory access") +(assert_trap (invoke "v64x2.offset65529" (i32.const 0)) "out of bounds memory access") +(assert_trap (invoke "v8x16.offset65536" (i32.const 1)) "out of bounds memory access") +(assert_trap (invoke "v16x8.offset65535" (i32.const 1)) "out of bounds memory access") +(assert_trap (invoke "v32x4.offset65533" (i32.const 1)) "out of bounds memory access") +(assert_trap (invoke "v64x2.offset65529" (i32.const 1)) "out of bounds memory access") + + +;; Combination + +(module (memory 1) + (data (i32.const 0) "\00\01\02\03\04\05\06\07\08\09\0A") + + (func (export "v8x16.load_splat-in-block") (result v128) + (block (result v128) (block (result v128) (v8x16.load_splat (i32.const 0)))) + ) + (func (export "v16x8.load_splat-in-block") (result v128) + (block (result v128) (block (result v128) (v16x8.load_splat (i32.const 1)))) + ) + (func (export "v32x4.load_splat-in-block") (result v128) + (block (result v128) (block (result v128) (v32x4.load_splat (i32.const 2)))) + ) + (func (export "v64x2.load_splat-in-block") (result v128) + (block (result v128) (block (result v128) (v64x2.load_splat (i32.const 9)))) + ) + (func (export "v8x16.load_splat-as-br-value") (result v128) + (block (result v128) (br 0 (v8x16.load_splat (i32.const 3)))) + ) + (func (export "v16x8.load_splat-as-br-value") (result v128) + (block (result v128) (br 0 (v16x8.load_splat (i32.const 4)))) + ) + (func (export "v32x4.load_splat-as-br-value") (result v128) + (block (result v128) (br 0 (v32x4.load_splat (i32.const 5)))) + ) + (func (export "v64x2.load_splat-as-br-value") (result v128) + (block (result v128) (br 0 (v64x2.load_splat (i32.const 10)))) + ) + (func (export "v8x16.load_splat-extract_lane_s-operand") (result i32) + (i8x16.extract_lane_s 0 (v8x16.load_splat (i32.const 6))) + ) + (func (export "v16x8.load_splat-extract_lane_s-operand") (result i32) + (i8x16.extract_lane_s 0 (v16x8.load_splat (i32.const 7))) + ) + (func (export "v32x4.load_splat-extract_lane_s-operand") (result i32) + (i8x16.extract_lane_s 0 (v32x4.load_splat (i32.const 8))) + ) + (func (export "v64x2.load_splat-extract_lane_s-operand") (result i32) + (i8x16.extract_lane_s 0 (v64x2.load_splat (i32.const 11))) + ) +) +(assert_return (invoke "v8x16.load_splat-in-block") (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "v16x8.load_splat-in-block") (v128.const i16x8 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201 0x0201)) +(assert_return (invoke "v32x4.load_splat-in-block") (v128.const i32x4 0x05040302 0x05040302 0x05040302 0x05040302)) +(assert_return (invoke "v64x2.load_splat-in-block") (v128.const i64x2 0x0000000000000A09 0x0000000000000A09)) +(assert_return (invoke "v8x16.load_splat-as-br-value") (v128.const i8x16 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3)) +(assert_return (invoke "v16x8.load_splat-as-br-value") (v128.const i16x8 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504 0x0504)) +(assert_return (invoke "v32x4.load_splat-as-br-value") (v128.const i32x4 0x08070605 0x08070605 0x08070605 0x08070605)) +(assert_return (invoke "v64x2.load_splat-as-br-value") (v128.const i64x2 0x000000000000000A 0x000000000000000A)) +(assert_return (invoke "v8x16.load_splat-extract_lane_s-operand") (i32.const 6)) +(assert_return (invoke "v16x8.load_splat-extract_lane_s-operand") (i32.const 7)) +(assert_return (invoke "v32x4.load_splat-extract_lane_s-operand") (i32.const 8)) +(assert_return (invoke "v64x2.load_splat-extract_lane_s-operand") (i32.const 0)) + + +;; Type check + +(assert_invalid (module (memory 0) (func (result v128) (v8x16.load_splat (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (memory 0) (func (result v128) (v16x8.load_splat (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (memory 0) (func (result v128) (v32x4.load_splat (v128.const i32x4 0 0 0 0)))) "type mismatch") +(assert_invalid (module (memory 0) (func (result v128) (v64x2.load_splat (v128.const i32x4 0 0 0 0)))) "type mismatch") + + +;; Unknown operator + +(assert_malformed (module quote "(memory 1) (func (drop (i8x16.load_splat (i32.const 0))))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (drop (i16x8.load_splat (i32.const 0))))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (drop (i32x4.load_splat (i32.const 0))))") "unknown operator") +(assert_malformed (module quote "(memory 1) (func (drop (i64x2.load_splat (i32.const 0))))") "unknown operator") \ No newline at end of file diff --git a/test/core/simd/simd_splat.wast b/test/core/simd/simd_splat.wast index 1ea72e1bf..0e2acd5c3 100644 --- a/test/core/simd/simd_splat.wast +++ b/test/core/simd/simd_splat.wast @@ -1,8 +1,12 @@ +;; Tests for the *_splat instructions + (module (func (export "i8x16.splat") (param i32) (result v128) (i8x16.splat (local.get 0))) (func (export "i16x8.splat") (param i32) (result v128) (i16x8.splat (local.get 0))) (func (export "i32x4.splat") (param i32) (result v128) (i32x4.splat (local.get 0))) (func (export "f32x4.splat") (param f32) (result v128) (f32x4.splat (local.get 0))) + (func (export "i64x2.splat") (param i64) (result v128) (i64x2.splat (local.get 0))) + (func (export "f64x2.splat") (param f64) (result v128) (f64x2.splat (local.get 0))) ) (assert_return (invoke "i8x16.splat" (i32.const 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) @@ -55,6 +59,42 @@ (assert_return (invoke "f32x4.splat" (f32.const nan:0x1)) (v128.const f32x4 nan:0x1 nan:0x1 nan:0x1 nan:0x1)) (assert_return (invoke "f32x4.splat" (f32.const nan:0x7f_ffff)) (v128.const f32x4 nan:0x7f_ffff nan:0x7f_ffff nan:0x7f_ffff nan:0x7f_ffff)) +(assert_return (invoke "i64x2.splat" (i64.const 0)) (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.splat" (i64.const -0)) (v128.const i64x2 0 0)) +(assert_return (invoke "i64x2.splat" (i64.const 1)) (v128.const i64x2 1 1)) +(assert_return (invoke "i64x2.splat" (i64.const -1)) (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.splat" (i64.const -9223372036854775808)) (v128.const i64x2 -9223372036854775808 -9223372036854775808)) +(assert_return (invoke "i64x2.splat" (i64.const -9223372036854775808)) (v128.const i64x2 9223372036854775808 9223372036854775808)) +(assert_return (invoke "i64x2.splat" (i64.const 9223372036854775807)) (v128.const i64x2 9223372036854775807 9223372036854775807)) +(assert_return (invoke "i64x2.splat" (i64.const 18446744073709551615)) (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.splat" (i64.const 0x7fffffffffffffff)) (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff)) +(assert_return (invoke "i64x2.splat" (i64.const 0xffffffffffffffff)) (v128.const i64x2 -1 -1)) +(assert_return (invoke "i64x2.splat" (i64.const -0x8000000000000000)) (v128.const i64x2 -0x8000000000000000 -0x8000000000000000)) +(assert_return (invoke "i64x2.splat" (i64.const -0x8000000000000000)) (v128.const i64x2 0x8000000000000000 0x8000000000000000)) + +(assert_return (invoke "f64x2.splat" (f64.const 0.0)) (v128.const f64x2 0.0 0.0)) +(assert_return (invoke "f64x2.splat" (f64.const -0.0)) (v128.const f64x2 -0.0 -0.0)) +(assert_return (invoke "f64x2.splat" (f64.const 1.1)) (v128.const f64x2 1.1 1.1)) +(assert_return (invoke "f64x2.splat" (f64.const -1.1)) (v128.const f64x2 -1.1 -1.1)) +(assert_return (invoke "f64x2.splat" (f64.const 0x0.0000000000001p-1022)) (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.splat" (f64.const -0x0.0000000000001p-1022)) (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) +(assert_return (invoke "f64x2.splat" (f64.const 0x1p-1022)) (v128.const f64x2 0x1p-1022 0x1p-1022)) +(assert_return (invoke "f64x2.splat" (f64.const -0x1p-1022)) (v128.const f64x2 -0x1p-1022 -0x1p-1022)) +(assert_return (invoke "f64x2.splat" (f64.const 0x1p-1)) (v128.const f64x2 0x1p-1 0x1p-1)) +(assert_return (invoke "f64x2.splat" (f64.const -0x1p-1)) (v128.const f64x2 -0x1p-1 -0x1p-1)) +(assert_return (invoke "f64x2.splat" (f64.const 0x1p+0)) (v128.const f64x2 0x1p+0 0x1p+0)) +(assert_return (invoke "f64x2.splat" (f64.const -0x1p+0)) (v128.const f64x2 -0x1p+0 -0x1p+0)) +(assert_return (invoke "f64x2.splat" (f64.const 0x1.921fb54442d18p+2)) (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.splat" (f64.const -0x1.921fb54442d18p+2)) (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) +(assert_return (invoke "f64x2.splat" (f64.const 0x1.fffffffffffffp+1023)) (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.splat" (f64.const -0x1.fffffffffffffp+1023)) (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) +(assert_return (invoke "f64x2.splat" (f64.const inf)) (v128.const f64x2 inf inf)) +(assert_return (invoke "f64x2.splat" (f64.const -inf)) (v128.const f64x2 -inf -inf)) +(assert_return (invoke "f64x2.splat" (f64.const nan)) (v128.const f64x2 nan nan)) +(assert_return (invoke "f64x2.splat" (f64.const -nan)) (v128.const f64x2 -nan -nan)) +(assert_return (invoke "f64x2.splat" (f64.const nan:0x4000000000000)) (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) +(assert_return (invoke "f64x2.splat" (f64.const -nan:0x4000000000000)) (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) + ;; Unknown operator @@ -75,25 +115,38 @@ (assert_invalid (module (func (result v128) f32x4.splat (i32.const 4))) "type mismatch") (assert_invalid (module (func (result v128) f32x4.splat (i64.const 4))) "type mismatch") (assert_invalid (module (func (result v128) f32x4.splat (f64.const 4.0))) "type mismatch") +(assert_invalid (module (func (result v128) i64x2.splat (i32.const 0))) "type mismatch") +(assert_invalid (module (func (result v128) i64x2.splat (f64.const 0.0))) "type mismatch") +(assert_invalid (module (func (result v128) f64x2.splat (i32.const 0))) "type mismatch") +(assert_invalid (module (func (result v128) f64x2.splat (f32.const 0.0))) "type mismatch") ;; V128 splat operators as the argument of other SIMD instructions -;; v128.store +;; v128.store and v128.load (module (memory 1) - (func (export "as-v128_store-value-1") (param i32) (result v128) + (func (export "as-v128_store-operand-1") (param i32) (result v128) (v128.store (i32.const 0) (i8x16.splat (local.get 0))) (v128.load (i32.const 0))) - (func (export "as-v128_store-value-2") (param i32) (result v128) + (func (export "as-v128_store-operand-2") (param i32) (result v128) (v128.store (i32.const 0) (i16x8.splat (local.get 0))) (v128.load (i32.const 0))) - (func (export "as-v128_store-value-3") (param i32) (result v128) + (func (export "as-v128_store-operand-3") (param i32) (result v128) (v128.store (i32.const 0) (i32x4.splat (local.get 0))) (v128.load (i32.const 0))) + (func (export "as-v128_store-operand-4") (param i64) (result v128) + (v128.store (i32.const 0) (i64x2.splat (local.get 0))) + (v128.load (i32.const 0))) + (func (export "as-v128_store-operand-5") (param f64) (result v128) + (v128.store (i32.const 0) (f64x2.splat (local.get 0))) + (v128.load (i32.const 0))) ) -(assert_return (invoke "as-v128_store-value-1" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) -(assert_return (invoke "as-v128_store-value-2" (i32.const 256)) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) -(assert_return (invoke "as-v128_store-value-3" (i32.const 0xffffffff)) (v128.const i32x4 -1 -1 -1 -1)) + +(assert_return (invoke "as-v128_store-operand-1" (i32.const 1)) (v128.const i8x16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)) +(assert_return (invoke "as-v128_store-operand-2" (i32.const 256)) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) +(assert_return (invoke "as-v128_store-operand-3" (i32.const 0xffffffff)) (v128.const i32x4 -1 -1 -1 -1)) +(assert_return (invoke "as-v128_store-operand-4" (i64.const 1)) (v128.const i64x2 1 1)) +(assert_return (invoke "as-v128_store-operand-5" (f64.const -0x1p+0)) (v128.const f64x2 -0x1p+0 -0x1p+0)) (module ;; Accessing lane @@ -115,12 +168,19 @@ (f32x4.extract_lane 3 (f32x4.splat (local.get 0)))) (func (export "as-v8x16_swizzle-operands") (param i32) (param i32) (result v128) (v8x16.swizzle (i8x16.splat (local.get 0)) (i8x16.splat (local.get 1)))) + (func (export "as-i64x2_extract_lane-operand-first") (param i64) (result i64) + (i64x2.extract_lane 0 (i64x2.splat (local.get 0)))) + (func (export "as-i64x2_extract_lane-operand-last") (param i64) (result i64) + (i64x2.extract_lane 1 (i64x2.splat (local.get 0)))) + (func (export "as-f64x2_extract_lane-operand-first") (param f64) (result f64) + (f64x2.extract_lane 0 (f64x2.splat (local.get 0)))) + (func (export "as-f64x2_extract_lane-operand-last") (param f64) (result f64) + (f64x2.extract_lane 1 (f64x2.splat (local.get 0)))) ;; Integer arithmetic - (func (export "as-i8x16_add_sub_mul-operands") (param i32 i32 i32 i32) (result v128) + (func (export "as-i8x16_add_sub-operands") (param i32 i32 i32) (result v128) (i8x16.add (i8x16.splat (local.get 0)) - (i8x16.sub (i8x16.splat (local.get 1)) - (i8x16.mul (i8x16.splat (local.get 2)) (i8x16.splat (local.get 3)))))) + (i8x16.sub (i8x16.splat (local.get 1)) (i8x16.splat (local.get 2))))) (func (export "as-i16x8_add_sub_mul-operands") (param i32 i32 i32 i32) (result v128) (i16x8.add (i16x8.splat (local.get 0)) (i16x8.sub (i16x8.splat (local.get 1)) @@ -130,6 +190,15 @@ (i32x4.sub (i32x4.splat (local.get 1)) (i32x4.mul (i32x4.splat (local.get 2)) (i32x4.splat (local.get 3)))))) + (func (export "as-i64x2_add_sub_mul-operands") (param i64 i64 i64 i64) (result v128) + (i64x2.add (i64x2.splat (local.get 0)) + (i64x2.sub (i64x2.splat (local.get 1)) + (i64x2.mul (i64x2.splat (local.get 2)) (i64x2.splat (local.get 3)))))) + (func (export "as-f64x2_add_sub_mul-operands") (param f64 f64 f64 f64) (result v128) + (f64x2.add (f64x2.splat (local.get 0)) + (f64x2.sub (f64x2.splat (local.get 1)) + (f64x2.mul (f64x2.splat (local.get 2)) (f64x2.splat (local.get 3)))))) + ;; Saturating integer arithmetic (func (export "as-i8x16_add_saturate_s-operands") (param i32 i32) (result v128) (i8x16.add_saturate_s (i8x16.splat (local.get 0)) (i8x16.splat (local.get 1)))) @@ -161,18 +230,24 @@ (i8x16.all_true (i8x16.splat (local.get 0)))) (func (export "as-i16x8_all_true-operand") (param i32) (result i32) (i16x8.all_true (i16x8.splat (local.get 0)))) - (func (export "as-i32x4_all_true-operand") (param i32) (result i32) + (func (export "as-i32x4_all_true-operand1") (param i32) (result i32) (i32x4.all_true (i32x4.splat (local.get 0)))) + (func (export "as-i32x4_all_true-operand2") (param i64) (result i32) + (i32x4.all_true (i64x2.splat (local.get 0)))) ;; Comparisons (func (export "as-i8x16_eq-operands") (param i32 i32) (result v128) (i8x16.eq (i8x16.splat (local.get 0)) (i8x16.splat (local.get 1)))) (func (export "as-i16x8_eq-operands") (param i32 i32) (result v128) (i16x8.eq (i16x8.splat (local.get 0)) (i16x8.splat (local.get 1)))) - (func (export "as-i32x4_eq-operands") (param i32 i32) (result v128) + (func (export "as-i32x4_eq-operands1") (param i32 i32) (result v128) (i32x4.eq (i32x4.splat (local.get 0)) (i32x4.splat (local.get 1)))) + (func (export "as-i32x4_eq-operands2") (param i64 i64) (result v128) + (i32x4.eq (i64x2.splat (local.get 0)) (i64x2.splat (local.get 1)))) (func (export "as-f32x4_eq-operands") (param f32 f32) (result v128) (f32x4.eq (f32x4.splat (local.get 0)) (f32x4.splat (local.get 1)))) + (func (export "as-f64x2_eq-operands") (param f64 f64) (result v128) + (f64x2.eq (f64x2.splat (local.get 0)) (f64x2.splat (local.get 1)))) ;; Floating-point sign bit operations (func (export "as-f32x4_abs-operand") (param f32) (result v128) @@ -202,10 +277,17 @@ (assert_return (invoke "as-f32x4_extract_lane_s-operand-first" (f32.const 1.5)) (f32.const 1.5)) (assert_return (invoke "as-f32x4_extract_lane_s-operand-last" (f32.const -0.25)) (f32.const -0.25)) (assert_return (invoke "as-v8x16_swizzle-operands" (i32.const 1) (i32.const -1)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) +(assert_return (invoke "as-i64x2_extract_lane-operand-last" (i64.const -42)) (i64.const -42)) +(assert_return (invoke "as-i64x2_extract_lane-operand-first" (i64.const 42)) (i64.const 42)) +(assert_return (invoke "as-f64x2_extract_lane-operand-first" (f64.const 1.5)) (f64.const 1.5)) +(assert_return (invoke "as-f64x2_extract_lane-operand-last" (f64.const -0x1p+0)) (f64.const -0x1p+0)) -(assert_return (invoke "as-i8x16_add_sub_mul-operands" (i32.const 3) (i32.const 2) (i32.const 1) (i32.const 3)) (v128.const i8x16 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2)) +(assert_return (invoke "as-i8x16_add_sub-operands" (i32.const 3) (i32.const 2) (i32.const 1)) (v128.const i8x16 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4)) (assert_return (invoke "as-i16x8_add_sub_mul-operands" (i32.const 257) (i32.const 128) (i32.const 16) (i32.const 16)) (v128.const i16x8 129 129 129 129 129 129 129 129)) (assert_return (invoke "as-i32x4_add_sub_mul-operands" (i32.const 65535) (i32.const 65537) (i32.const 256) (i32.const 256)) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) +(assert_return (invoke "as-i64x2_add_sub_mul-operands" (i64.const 0x7fffffff) (i64.const 0x1_0000_0001) (i64.const 65536) (i64.const 65536)) (v128.const i64x2 0x8000_0000 0x8000_0000)) +(assert_return (invoke "as-f64x2_add_sub_mul-operands" (f64.const 0x1p-1) (f64.const 0.75) (f64.const 0x1p-1) (f64.const 0.5)) (v128.const f64x2 0x1p+0 0x1p+0)) + (assert_return (invoke "as-i8x16_add_saturate_s-operands" (i32.const 0x7f) (i32.const 1)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "as-i16x8_add_saturate_s-operands" (i32.const 0x7fff) (i32.const 1)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "as-i8x16_sub_saturate_u-operands" (i32.const 0x7f) (i32.const 0xff)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) @@ -221,12 +303,15 @@ (assert_return (invoke "as-i8x16_all_true-operand" (i32.const 0)) (i32.const 0)) (assert_return (invoke "as-i16x8_all_true-operand" (i32.const 0xffff)) (i32.const 1)) -(assert_return (invoke "as-i32x4_all_true-operand" (i32.const 0xf0f0f0f0)) (i32.const 1)) +(assert_return (invoke "as-i32x4_all_true-operand1" (i32.const 0xf0f0f0f0)) (i32.const 1)) +(assert_return (invoke "as-i32x4_all_true-operand2" (i64.const -1)) (i32.const 1)) (assert_return (invoke "as-i8x16_eq-operands" (i32.const 1) (i32.const 2)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "as-i16x8_eq-operands" (i32.const -1) (i32.const 65535)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) -(assert_return (invoke "as-i32x4_eq-operands" (i32.const -1) (i32.const 0xffffffff)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "as-i32x4_eq-operands1" (i32.const -1) (i32.const 0xffffffff)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "as-f32x4_eq-operands" (f32.const +0.0) (f32.const -0.0)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) +(assert_return (invoke "as-i32x4_eq-operands2" (i64.const 1) (i64.const 2)) (v128.const i64x2 0xffffffff00000000 0xffffffff00000000)) +(assert_return (invoke "as-f64x2_eq-operands" (f64.const +0.0) (f64.const -0.0)) (v128.const i64x2 -1 -1)) (assert_return (invoke "as-f32x4_abs-operand" (f32.const -1.125)) (v128.const f32x4 1.125 1.125 1.125 1.125)) (assert_return (invoke "as-f32x4_min-operands" (f32.const 0.25) (f32.const 1e-38)) (v128.const f32x4 1e-38 1e-38 1e-38 1e-38)) @@ -240,19 +325,33 @@ (module (global $g (mut v128) (v128.const f32x4 0.0 0.0 0.0 0.0)) - (func (export "as-br-value") (param i32) (result v128) + (func (export "as-br-value1") (param i32) (result v128) (block (result v128) (br 0 (i8x16.splat (local.get 0))))) - (func (export "as-return-value") (param i32) (result v128) + (func (export "as-return-value1") (param i32) (result v128) (return (i16x8.splat (local.get 0)))) - (func (export "as-local_set-value") (param i32) (result v128) (local v128) + (func (export "as-local_set-value1") (param i32) (result v128) (local v128) (local.set 1 (i32x4.splat (local.get 0))) (return (local.get 1))) - (func (export "as-global_set-value") (param f32) (result v128) + (func (export "as-global_set-value1") (param f32) (result v128) (global.set $g (f32x4.splat (local.get 0))) (return (global.get $g))) + (func (export "as-br-value2") (param i64) (result v128) + (block (result v128) (br 0 (i64x2.splat (local.get 0))))) + (func (export "as-return-value2") (param i64) (result v128) + (return (i64x2.splat (local.get 0)))) + (func (export "as-local_set-value2") (param i64) (result v128) (local v128) + (local.set 1 (i64x2.splat (local.get 0))) + (return (local.get 1))) + (func (export "as-global_set-value2") (param f64) (result v128) + (global.set $g (f64x2.splat (local.get 0))) + (return (global.get $g))) ) -(assert_return (invoke "as-br-value" (i32.const 0xAB)) (v128.const i8x16 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB)) -(assert_return (invoke "as-return-value" (i32.const 0xABCD)) (v128.const i16x8 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD)) -(assert_return (invoke "as-local_set-value" (i32.const 0x10000)) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) -(assert_return (invoke "as-global_set-value" (f32.const 1.0)) (v128.const f32x4 1.0 1.0 1.0 1.0)) +(assert_return (invoke "as-br-value1" (i32.const 0xAB)) (v128.const i8x16 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB 0xAB)) +(assert_return (invoke "as-return-value1" (i32.const 0xABCD)) (v128.const i16x8 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD 0xABCD)) +(assert_return (invoke "as-local_set-value1" (i32.const 0x10000)) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) +(assert_return (invoke "as-global_set-value1" (f32.const 1.0)) (v128.const f32x4 1.0 1.0 1.0 1.0)) +(assert_return (invoke "as-br-value2" (i64.const 0xABCD)) (v128.const i64x2 0xABCD 0xABCD)) +(assert_return (invoke "as-return-value2" (i64.const 0xABCD)) (v128.const i64x2 0xABCD 0xABCD)) +(assert_return (invoke "as-local_set-value2" (i64.const 0x10000)) (v128.const i64x2 0x10000 0x10000)) +(assert_return (invoke "as-global_set-value2" (f64.const 1.0)) (v128.const f64x2 1.0 1.0)) \ No newline at end of file