summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/interp/atomic-rmw-cmpxchg.txt2
-rw-r--r--test/parse/expr/bad-const-v128-nat-expected.txt5
-rw-r--r--test/parse/expr/bad-const-v128-nat-overflow.txt3
-rw-r--r--test/parse/expr/bad-const-v128-type-i32-expected.txt5
-rw-r--r--test/parse/expr/const.txt1
-rw-r--r--test/parse/expr/convert-sat.txt1
-rw-r--r--test/parse/expr/unary-extend.txt1
-rw-r--r--test/parse/module/import-mutable-global.txt1
-rwxr-xr-xtest/run-tests.py303
-rw-r--r--test/two-commands.txt11
-rw-r--r--test/typecheck/bad-atomic-no-shared-memory.txt133
-rw-r--r--test/typecheck/bad-atomic-type-mismatch.txt387
-rw-r--r--test/typecheck/nocheck.txt1
13 files changed, 480 insertions, 374 deletions
diff --git a/test/interp/atomic-rmw-cmpxchg.txt b/test/interp/atomic-rmw-cmpxchg.txt
index bddc935a..c713f70c 100644
--- a/test/interp/atomic-rmw-cmpxchg.txt
+++ b/test/interp/atomic-rmw-cmpxchg.txt
@@ -1,5 +1,5 @@
-;;; FLAGS: --enable-threads
;;; TOOL: run-interp
+;;; FLAGS: --enable-threads
(module
(memory 1 1 shared)
diff --git a/test/parse/expr/bad-const-v128-nat-expected.txt b/test/parse/expr/bad-const-v128-nat-expected.txt
index 7ee4d755..aa5dae36 100644
--- a/test/parse/expr/bad-const-v128-nat-expected.txt
+++ b/test/parse/expr/bad-const-v128-nat-expected.txt
@@ -1,14 +1,15 @@
;;; ERROR: 1
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-simd
(module
(func v128.const i32 0x12345678 -123 0x00000000 0xabcd3478))
(module
(func v128.const i32 0x12345678 0x9 +234 0xabcd3478))
(;; STDERR ;;;
-out/test/parse/expr/bad-const-v128-nat-expected.txt:4:35: error: unexpected token "-123", expected an Nat literal (e.g. 123).
+out/test/parse/expr/bad-const-v128-nat-expected.txt:5:35: error: unexpected token "-123", expected an Nat literal (e.g. 123).
(func v128.const i32 0x12345678 -123 0x00000000 0xabcd3478))
^^^^
-out/test/parse/expr/bad-const-v128-nat-expected.txt:6:39: error: unexpected token "+234", expected an Nat literal (e.g. 123).
+out/test/parse/expr/bad-const-v128-nat-expected.txt:7:39: error: unexpected token "+234", expected an Nat literal (e.g. 123).
(func v128.const i32 0x12345678 0x9 +234 0xabcd3478))
^^^^
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-const-v128-nat-overflow.txt b/test/parse/expr/bad-const-v128-nat-overflow.txt
index e8423f9b..7660882e 100644
--- a/test/parse/expr/bad-const-v128-nat-overflow.txt
+++ b/test/parse/expr/bad-const-v128-nat-overflow.txt
@@ -1,9 +1,10 @@
;;; ERROR: 1
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-simd
(module
(func v128.const i32 0x12345678 0x123 4294967296 0xabcd3478))
(;; STDERR ;;;
-out/test/parse/expr/bad-const-v128-nat-overflow.txt:4:41: error: invalid literal "4294967296"
+out/test/parse/expr/bad-const-v128-nat-overflow.txt:5:41: error: invalid literal "4294967296"
(func v128.const i32 0x12345678 0x123 4294967296 0xabcd3478))
^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/parse/expr/bad-const-v128-type-i32-expected.txt b/test/parse/expr/bad-const-v128-type-i32-expected.txt
index 654bf851..f8bcb26b 100644
--- a/test/parse/expr/bad-const-v128-type-i32-expected.txt
+++ b/test/parse/expr/bad-const-v128-type-i32-expected.txt
@@ -1,12 +1,13 @@
;;; ERROR: 1
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-simd
(module (func v128.const 0x12345678 0x00000000 0x00000000 0xabcd3478))
(module (func v128.const i64 0x12345678 0x00000000 0x00000000 0xabcd3478))
(;; STDERR ;;;
-out/test/parse/expr/bad-const-v128-type-i32-expected.txt:3:26: error: Expected i32 at start of simd constant
+out/test/parse/expr/bad-const-v128-type-i32-expected.txt:4:26: error: Expected i32 at start of simd constant
(module (func v128.const 0x12345678 0x00000000 0x00000000 0xabcd3478))
^^^^^^^^^^
-out/test/parse/expr/bad-const-v128-type-i32-expected.txt:4:26: error: Expected i32 at start of simd constant
+out/test/parse/expr/bad-const-v128-type-i32-expected.txt:5:26: error: Expected i32 at start of simd constant
(module (func v128.const i64 0x12345678 0x00000000 0x00000000 0xabcd3478))
^^^
;;; STDERR ;;)
diff --git a/test/parse/expr/const.txt b/test/parse/expr/const.txt
index de885f39..ce13a77a 100644
--- a/test/parse/expr/const.txt
+++ b/test/parse/expr/const.txt
@@ -1,3 +1,4 @@
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-simd
(module
(func
diff --git a/test/parse/expr/convert-sat.txt b/test/parse/expr/convert-sat.txt
index e2f6d07b..fa956c59 100644
--- a/test/parse/expr/convert-sat.txt
+++ b/test/parse/expr/convert-sat.txt
@@ -1,3 +1,4 @@
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-saturating-float-to-int
(module
(func
diff --git a/test/parse/expr/unary-extend.txt b/test/parse/expr/unary-extend.txt
index 88791d48..24391649 100644
--- a/test/parse/expr/unary-extend.txt
+++ b/test/parse/expr/unary-extend.txt
@@ -1,3 +1,4 @@
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-sign-extension
(module
(func
diff --git a/test/parse/module/import-mutable-global.txt b/test/parse/module/import-mutable-global.txt
index 67f68b7e..7af8e4da 100644
--- a/test/parse/module/import-mutable-global.txt
+++ b/test/parse/module/import-mutable-global.txt
@@ -1,2 +1,3 @@
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-mutable-globals
(module (import "mod" "field" (global (mut f32))))
diff --git a/test/run-tests.py b/test/run-tests.py
index 4314b0c9..984139ac 100755
--- a/test/run-tests.py
+++ b/test/run-tests.py
@@ -43,19 +43,22 @@ SLOW_TIMEOUT_MULTIPLIER = 2
TOOLS = {
'wat2wasm': {
'EXE': '%(wat2wasm)s',
- 'FLAGS': [ '-o', '%(out_dir)s/out.wasm'],
+ 'FLAGS': ['%(in_file)s', '-o', '%(out_dir)s/out.wasm'],
'VERBOSE-FLAGS': ['-v']
},
'wast2json': {
'EXE': '%(wast2json)s',
+ 'FLAGS': ['%(in_file)s'],
'VERBOSE-FLAGS': ['-v']
},
'wat-desugar': {
- 'EXE': '%(wat-desugar)s'
+ 'EXE': '%(wat-desugar)s',
+ 'FLAGS': ['%(in_file)s']
},
'run-objdump': {
'EXE': 'test/run-objdump.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--no-error-cmdline',
'-o', '%(out_dir)s'
@@ -64,12 +67,13 @@ TOOLS = {
},
'run-wasm-link': {
'EXE': 'test/run-wasm-link.py',
- 'FLAGS': ['--bindir=%(bindir)s', '-o', '%(out_dir)s'],
+ 'FLAGS': ['%(in_file)s', '--bindir=%(bindir)s', '-o', '%(out_dir)s'],
'VERBOSE-FLAGS': ['-v']
},
'run-roundtrip': {
'EXE': 'test/run-roundtrip.py',
'FLAGS': [
+ '%(in_file)s',
'-v',
'--bindir=%(bindir)s',
'--no-error-cmdline',
@@ -81,6 +85,7 @@ TOOLS = {
'run-interp': {
'EXE': 'test/run-interp.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--run-all-exports',
'--no-error-cmdline',
@@ -92,6 +97,7 @@ TOOLS = {
'run-interp-spec': {
'EXE': 'test/run-interp.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--spec',
'--no-error-cmdline',
@@ -103,6 +109,7 @@ TOOLS = {
'run-gen-wasm': {
'EXE': 'test/run-gen-wasm.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--no-error-cmdline',
'-o',
@@ -113,6 +120,7 @@ TOOLS = {
'run-gen-wasm-interp': {
'EXE': 'test/run-gen-wasm-interp.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--run-all-exports',
'--no-error-cmdline',
@@ -124,6 +132,7 @@ TOOLS = {
'run-opcodecnt': {
'EXE': 'test/run-opcodecnt.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--no-error-cmdline',
'-o',
@@ -134,6 +143,7 @@ TOOLS = {
'run-gen-spec-js': {
'EXE': 'test/run-gen-spec-js.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--no-error-cmdline',
'-o',
@@ -144,6 +154,7 @@ TOOLS = {
'run-spec-wasm2c': {
'EXE': 'test/run-spec-wasm2c.py',
'FLAGS': [
+ '%(in_file)s',
'--bindir=%(bindir)s',
'--no-error-cmdline',
'-o',
@@ -160,6 +171,10 @@ if IS_WINDOWS:
ROUNDTRIP_TOOLS = ('wat2wasm',)
+class NoRoundtripError(Error):
+ pass
+
+
def Indent(s, spaces):
return ''.join(' ' * spaces + l for l in s.splitlines(1))
@@ -172,11 +187,6 @@ def DiffLines(expected, actual):
tofile='actual', lineterm=''))
-def AppendBeforeExt(file_path, suffix):
- file_path_noext, ext = os.path.splitext(file_path)
- return file_path_noext + suffix + ext
-
-
class Cell(object):
def __init__(self, value):
@@ -189,52 +199,131 @@ class Cell(object):
return self.value[0]
-def RunCommandWithTimeout(command, cwd, timeout, console_out=False, env=None):
- process = None
- is_timeout = Cell(False)
+def SplitArgs(value):
+ if isinstance(value, list):
+ return value
+ return shlex.split(value)
- def KillProcess(timeout=True):
- if process:
- try:
- if IS_WINDOWS:
- # http://stackoverflow.com/a/10830753: deleting child processes in
- # Windows
- subprocess.call(['taskkill', '/F', '/T', '/PID', str(process.pid)])
- else:
- os.killpg(os.getpgid(process.pid), 15)
- except OSError:
- pass
- is_timeout.Set(timeout)
- try:
- start_time = time.time()
- kwargs = {}
- if not IS_WINDOWS:
- kwargs['preexec_fn'] = os.setsid
-
- # http://stackoverflow.com/a/10012262: subprocess with a timeout
- # http://stackoverflow.com/a/22582602: kill subprocess and children
- process = subprocess.Popen(command, cwd=cwd, env=env,
- stdout=None if console_out else subprocess.PIPE,
- stderr=None if console_out else subprocess.PIPE,
- universal_newlines=True, **kwargs)
- timer = threading.Timer(timeout, KillProcess)
+class CommandTemplate(object):
+
+ def __init__(self, exe):
+ self.exe = exe
+ self.flags = []
+ self.verbose_flags = []
+ self.last_cmd = None
+
+ def AppendFlags(self, flags):
+ self.flags += SplitArgs(flags)
+
+ def AppendVerboseFlags(self, flags_list):
+ for level, level_flags in enumerate(flags_list):
+ while level >= len(self.verbose_flags):
+ self.verbose_flags.append([])
+ self.verbose_flags[level] += SplitArgs(level_flags)
+
+ def _GetExecutable(self):
+ if os.path.splitext(self.exe)[1] == '.py':
+ return [sys.executable, os.path.join(REPO_ROOT_DIR, self.exe)]
+ else:
+ return [self.exe]
+
+ def _Format(self, cmd, variables):
+ return [arg % variables for arg in cmd]
+
+ def GetCommand(self, variables, extra_args=None, verbose_level=0):
+ args = self._GetExecutable()
+ vl = 0
+ while vl < verbose_level and vl < len(self.verbose_flags):
+ args += self.verbose_flags[vl]
+ vl += 1
+ if extra_args:
+ args += extra_args
+ args += self.flags
+ args = self._Format(args, variables)
+ self.last_cmd = args
+ return Command(args)
+
+
+class Command(object):
+
+ def __init__(self, args):
+ self.args = args
+
+ def Run(self, cwd, timeout, console_out=False, env=None):
+ process = None
+ is_timeout = Cell(False)
+
+ def KillProcess(timeout=True):
+ if process:
+ try:
+ if IS_WINDOWS:
+ # http://stackoverflow.com/a/10830753: deleting child processes in
+ # Windows
+ subprocess.call(['taskkill', '/F', '/T', '/PID', str(process.pid)])
+ else:
+ os.killpg(os.getpgid(process.pid), 15)
+ except OSError:
+ pass
+ is_timeout.Set(timeout)
+
try:
- timer.start()
- stdout, stderr = process.communicate()
+ start_time = time.time()
+ kwargs = {}
+ if not IS_WINDOWS:
+ kwargs['preexec_fn'] = os.setsid
+
+ # http://stackoverflow.com/a/10012262: subprocess with a timeout
+ # http://stackoverflow.com/a/22582602: kill subprocess and children
+ process = subprocess.Popen(self.args, cwd=cwd, env=env,
+ stdout=None if console_out else subprocess.PIPE,
+ stderr=None if console_out else subprocess.PIPE,
+ universal_newlines=True, **kwargs)
+ timer = threading.Timer(timeout, KillProcess)
+ try:
+ timer.start()
+ stdout, stderr = process.communicate()
+ finally:
+ returncode = process.returncode
+ process = None
+ timer.cancel()
+ if is_timeout.Get():
+ raise Error('TIMEOUT\nSTDOUT:\n%s\nSTDERR:\n%s\n' % (stdout, stderr))
+ duration = time.time() - start_time
+ except OSError as e:
+ raise Error(str(e))
finally:
- returncode = process.returncode
- process = None
- timer.cancel()
- if is_timeout.Get():
- raise Error('TIMEOUT\nSTDOUT:\n%s\nSTDERR:\n%s\n' % (stdout, stderr))
- duration = time.time() - start_time
- except OSError as e:
- raise Error(str(e))
- finally:
- KillProcess(False)
+ KillProcess(False)
+
+ return RunResult(stdout, stderr, returncode, duration)
- return stdout, stderr, returncode, duration
+ def __str__(self):
+ return ' '.join(self.args)
+
+
+class RunResult(object):
+
+ def __init__(self, stdout = '', stderr = '', returncode = 0, duration = 0):
+ self.stdout = stdout
+ self.stderr = stderr
+ self.returncode = returncode
+ self.duration = duration
+
+ def Failed(self):
+ return self.returncode != 0
+
+ def Append(self, other):
+ assert isinstance(other, RunResult)
+ self.stdout += other.stdout
+ self.stderr += other.stderr
+ self.duration += other.duration
+
+ assert(self.returncode == 0)
+ self.returncode = other.returncode
+
+ def __repr__(self):
+ return 'RunResult(%s, %s, %s, %s)' % (self.stdout, self.stderr,
+ self.returncode, self.duration)
class TestInfo(object):
@@ -247,8 +336,7 @@ class TestInfo(object):
self.expected_stdout = ''
self.expected_stderr = ''
self.tool = None
- self.exe = None
- self.flags = []
+ self.cmds = []
self.env = {}
self.last_cmd = ''
self.expected_error = 0
@@ -257,6 +345,12 @@ class TestInfo(object):
self.is_roundtrip = False
def CreateRoundtripInfo(self, fold_exprs):
+ if self.tool not in ROUNDTRIP_TOOLS:
+ raise NoRoundtripError()
+
+ if len(self.cmds) != 1:
+ raise NoRoundtripError()
+
result = TestInfo()
result.SetTool('run-roundtrip')
result.filename = self.filename
@@ -265,11 +359,15 @@ class TestInfo(object):
result.input_ = self.input_
result.expected_stdout = ''
result.expected_stderr = ''
+
# TODO(binji): It's kind of cheesy to keep the enable flag based on prefix.
# Maybe it would be nicer to add a new directive ENABLE instead.
- result.flags = [flag for flag in self.flags if flag.startswith('--enable')]
+ old_cmd = self.cmds[0]
+ new_cmd = result.cmds[0]
+ new_cmd.AppendFlags([f for f in old_cmd.flags if f.startswith('--enable')])
if fold_exprs:
- result.flags.append('--fold-exprs')
+ new_cmd.AppendFlags('--fold-exprs')
+
result.env = self.env
result.expected_error = 0
result.slow = self.slow
@@ -311,9 +409,6 @@ class TestInfo(object):
return path
- def ShouldCreateRoundtrip(self):
- return self.tool in ROUNDTRIP_TOOLS
-
def SetTool(self, tool):
if tool not in TOOLS:
raise Error('Unknown tool: %s' % tool)
@@ -321,15 +416,20 @@ class TestInfo(object):
for tool_key, tool_value in TOOLS[tool].items():
self.ParseDirective(tool_key, tool_value)
+ def GetLastCommand(self):
+ if not self.cmds:
+ self.SetTool('wat2wasm')
+ return self.cmds[-1]
+
def ParseDirective(self, key, value):
if key == 'EXE':
- self.exe = value
+ self.cmds.append(CommandTemplate(value))
elif key == 'STDIN_FILE':
self.input_filename = value
elif key == 'FLAGS':
if not isinstance(value, list):
value = shlex.split(value)
- self.flags += value
+ self.GetLastCommand().AppendFlags(value)
elif key == 'ERROR':
self.expected_error = int(value)
elif key == 'SLOW':
@@ -337,7 +437,7 @@ class TestInfo(object):
elif key == 'SKIP':
self.skip = True
elif key == 'VERBOSE-FLAGS':
- self.verbose_flags = [shlex.split(level) for level in value]
+ self.GetLastCommand().AppendVerboseFlags(value)
elif key in ['TODO', 'NOTE']:
pass
elif key == 'TOOL':
@@ -353,7 +453,6 @@ class TestInfo(object):
test_path = os.path.join(REPO_ROOT_DIR, filename)
with open(test_path) as f:
- seen_keys = set()
state = 'header'
empty = True
header_lines = []
@@ -379,9 +478,6 @@ class TestInfo(object):
key, value = directive.split(':', 1)
key = key.strip()
value = value.strip()
- if key in seen_keys:
- raise Error('%s already set' % key)
- seen_keys.add(key)
self.ParseDirective(key, value)
elif state in ('stdout', 'stderr'):
if not re.match(r'%s ;;\)$' % state.upper(), directive):
@@ -413,32 +509,9 @@ class TestInfo(object):
# If the test didn't specify a executable (either via EXE or indirectly
# via TOOL, then use the default tool)
- if not self.exe:
+ if not self.cmds:
self.SetTool('wat2wasm')
- def GetExecutable(self):
- if os.path.splitext(self.exe)[1] == '.py':
- return [sys.executable, os.path.join(REPO_ROOT_DIR, self.exe)]
- else:
- return [self.exe]
-
- def FormatCommand(self, cmd, variables):
- return [arg % variables for arg in cmd]
-
- def GetCommand(self, filename, variables, extra_args=None, verbose_level=0):
- cmd = self.GetExecutable()
- vl = 0
- while vl < verbose_level and vl < len(self.verbose_flags):
- cmd += self.verbose_flags[vl]
- vl += 1
- if extra_args:
- cmd += extra_args
- cmd += self.flags
- cmd += [filename.replace(os.path.sep, '/')]
- cmd = self.FormatCommand(cmd, variables)
- self.last_cmd = cmd
- return cmd
-
def CreateInputFile(self):
gen_input_path = self.GetGeneratedInputFilename()
gen_input_dir = os.path.dirname(gen_input_path)
@@ -587,7 +660,9 @@ def RunTest(info, options, variables, verbose_level=0):
env = dict(os.environ)
env.update(info.env)
gen_input_path = info.CreateInputFile()
- rel_gen_input_path = os.path.relpath(gen_input_path, cwd)
+ rel_gen_input_path = (
+ os.path.relpath(gen_input_path, cwd).replace(os.path.sep, '/'))
+ variables['in_file'] = rel_gen_input_path
# Each test runs with a unique output directory which is removed before
# we run the test.
@@ -597,15 +672,23 @@ def RunTest(info, options, variables, verbose_level=0):
os.makedirs(out_dir)
variables['out_dir'] = out_dir
- cmd = info.GetCommand(rel_gen_input_path, variables, options.arg,
- verbose_level)
- if options.print_cmd:
- print(' '.join(cmd))
+ final_result = RunResult()
- try:
- return RunCommandWithTimeout(cmd, cwd, timeout, verbose_level > 0, env)
- except (Error, KeyboardInterrupt) as e:
- return e
+ for cmd_template in info.cmds:
+ cmd = cmd_template.GetCommand(variables, options.arg, verbose_level)
+ if options.print_cmd:
+ print(cmd)
+
+ try:
+ result = cmd.Run(cwd, timeout, verbose_level > 0, env)
+ except (Error, KeyboardInterrupt) as e:
+ return e
+
+ final_result.Append(result)
+ if final_result.Failed():
+ break
+
+ return final_result
def HandleTestResult(status, info, result, rebase=False):
@@ -613,32 +696,31 @@ def HandleTestResult(status, info, result, rebase=False):
if isinstance(result, (Error, KeyboardInterrupt)):
raise result
- stdout, stderr, returncode, duration = result
if info.is_roundtrip:
- if returncode == 0:
- status.Passed(info, duration)
- elif returncode == 2:
+ if result.returncode == 0:
+ status.Passed(info, result.duration)
+ elif result.returncode == 2:
# run-roundtrip.py returns 2 if the file couldn't be parsed.
# it's likely a "bad-*" file.
status.Skipped(info)
else:
raise Error(stderr)
else:
- if returncode != info.expected_error:
+ if result.returncode != info.expected_error:
# This test has already failed, but diff it anyway.
msg = 'expected error code %d, got %d.' % (info.expected_error,
- returncode)
+ result.returncode)
try:
- info.Diff(stdout, stderr)
+ info.Diff(result.stdout, result.stderr)
except Error as e:
msg += '\n' + str(e)
raise Error(msg)
else:
if rebase:
- info.Rebase(stdout, stderr)
+ info.Rebase(result.stdout, result.stderr)
else:
- info.Diff(stdout, stderr)
- status.Passed(info, duration)
+ info.Diff(result.stdout, result.stderr)
+ status.Passed(info, result.duration)
except Error as e:
status.Failed(info, str(e))
@@ -802,9 +884,12 @@ def main(args):
continue
infos_to_run.append(info)
- if options.roundtrip and info.ShouldCreateRoundtrip():
- infos_to_run.append(info.CreateRoundtripInfo(fold_exprs=False))
- infos_to_run.append(info.CreateRoundtripInfo(fold_exprs=True))
+ if options.roundtrip:
+ for fold_exprs in False, True:
+ try:
+ infos_to_run.append(info.CreateRoundtripInfo(fold_exprs=fold_exprs))
+ except NoRoundtripError:
+ pass
if not os.path.exists(OUT_DIR):
os.makedirs(OUT_DIR)
diff --git a/test/two-commands.txt b/test/two-commands.txt
new file mode 100644
index 00000000..2aa6d9a3
--- /dev/null
+++ b/test/two-commands.txt
@@ -0,0 +1,11 @@
+;;; TOOL: wat2wasm
+;;; FLAGS: -v
+;;; TOOL: wat2wasm
+;;; FLAGS: -v
+(module)
+(;; STDOUT ;;;
+0000000: 0061 736d ; WASM_BINARY_MAGIC
+0000004: 0100 0000 ; WASM_BINARY_VERSION
+0000000: 0061 736d ; WASM_BINARY_MAGIC
+0000004: 0100 0000 ; WASM_BINARY_VERSION
+;;; STDOUT ;;)
diff --git a/test/typecheck/bad-atomic-no-shared-memory.txt b/test/typecheck/bad-atomic-no-shared-memory.txt
index e101f254..2bc0da5c 100644
--- a/test/typecheck/bad-atomic-no-shared-memory.txt
+++ b/test/typecheck/bad-atomic-no-shared-memory.txt
@@ -1,4 +1,5 @@
;;; ERROR: 1
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-threads
(module
@@ -82,202 +83,202 @@
))
(;; STDERR ;;;
-out/test/typecheck/bad-atomic-no-shared-memory.txt:7:29: error: atomic.wake requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:8:29: error: atomic.wake requires memory to be shared.
i32.const 0 i32.const 0 atomic.wake drop
^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:8:41: error: i32.atomic.wait requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:9:41: error: i32.atomic.wait requires memory to be shared.
i32.const 0 i32.const 0 i64.const 0 i32.atomic.wait drop
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:9:41: error: i64.atomic.wait requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:10:41: error: i64.atomic.wait requires memory to be shared.
i32.const 0 i64.const 0 i64.const 0 i64.atomic.wait drop
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:11:17: error: i32.atomic.load requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:12:17: error: i32.atomic.load requires memory to be shared.
i32.const 0 i32.atomic.load drop
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:12:17: error: i64.atomic.load requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:13:17: error: i64.atomic.load requires memory to be shared.
i32.const 0 i64.atomic.load drop
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:13:17: error: i32.atomic.load8_u requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:14:17: error: i32.atomic.load8_u requires memory to be shared.
i32.const 0 i32.atomic.load8_u drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:14:17: error: i32.atomic.load16_u requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:15:17: error: i32.atomic.load16_u requires memory to be shared.
i32.const 0 i32.atomic.load16_u drop
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:15:17: error: i64.atomic.load8_u requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:16:17: error: i64.atomic.load8_u requires memory to be shared.
i32.const 0 i64.atomic.load8_u drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:16:17: error: i64.atomic.load16_u requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:17:17: error: i64.atomic.load16_u requires memory to be shared.
i32.const 0 i64.atomic.load16_u drop
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:17:17: error: i64.atomic.load32_u requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:18:17: error: i64.atomic.load32_u requires memory to be shared.
i32.const 0 i64.atomic.load32_u drop
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:19:29: error: i32.atomic.store requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:20:29: error: i32.atomic.store requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.store
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:20:29: error: i64.atomic.store requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:21:29: error: i64.atomic.store requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.store
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:21:29: error: i32.atomic.store8 requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:22:29: error: i32.atomic.store8 requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.store8
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:22:29: error: i32.atomic.store16 requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:23:29: error: i32.atomic.store16 requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.store16
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:23:29: error: i64.atomic.store8 requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:24:29: error: i64.atomic.store8 requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.store8
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:24:29: error: i64.atomic.store16 requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:25:29: error: i64.atomic.store16 requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.store16
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:25:29: error: i64.atomic.store32 requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:26:29: error: i64.atomic.store32 requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.store32
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:27:29: error: i32.atomic.rmw.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:28:29: error: i32.atomic.rmw.add requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw.add drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:28:29: error: i64.atomic.rmw.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:29:29: error: i64.atomic.rmw.add requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw.add drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:29:29: error: i32.atomic.rmw8_u.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:30:29: error: i32.atomic.rmw8_u.add requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw8_u.add drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:30:29: error: i32.atomic.rmw16_u.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:31:29: error: i32.atomic.rmw16_u.add requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw16_u.add drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:31:29: error: i64.atomic.rmw8_u.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:32:29: error: i64.atomic.rmw8_u.add requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw8_u.add drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:32:29: error: i64.atomic.rmw16_u.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:33:29: error: i64.atomic.rmw16_u.add requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw16_u.add drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:33:29: error: i64.atomic.rmw32_u.add requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:34:29: error: i64.atomic.rmw32_u.add requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw32_u.add drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:35:29: error: i32.atomic.rmw.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:36:29: error: i32.atomic.rmw.sub requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw.sub drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:36:29: error: i64.atomic.rmw.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:37:29: error: i64.atomic.rmw.sub requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw.sub drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:37:29: error: i32.atomic.rmw8_u.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:38:29: error: i32.atomic.rmw8_u.sub requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw8_u.sub drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:38:29: error: i32.atomic.rmw16_u.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:39:29: error: i32.atomic.rmw16_u.sub requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw16_u.sub drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:39:29: error: i64.atomic.rmw8_u.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:40:29: error: i64.atomic.rmw8_u.sub requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw8_u.sub drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:40:29: error: i64.atomic.rmw16_u.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:41:29: error: i64.atomic.rmw16_u.sub requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw16_u.sub drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:41:29: error: i64.atomic.rmw32_u.sub requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:42:29: error: i64.atomic.rmw32_u.sub requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw32_u.sub drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:43:29: error: i32.atomic.rmw.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:44:29: error: i32.atomic.rmw.and requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw.and drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:44:29: error: i64.atomic.rmw.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:45:29: error: i64.atomic.rmw.and requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw.and drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:45:29: error: i32.atomic.rmw8_u.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:46:29: error: i32.atomic.rmw8_u.and requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw8_u.and drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:46:29: error: i32.atomic.rmw16_u.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:47:29: error: i32.atomic.rmw16_u.and requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw16_u.and drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:47:29: error: i64.atomic.rmw8_u.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:48:29: error: i64.atomic.rmw8_u.and requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw8_u.and drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:48:29: error: i64.atomic.rmw16_u.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:49:29: error: i64.atomic.rmw16_u.and requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw16_u.and drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:49:29: error: i64.atomic.rmw32_u.and requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:50:29: error: i64.atomic.rmw32_u.and requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw32_u.and drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:51:29: error: i32.atomic.rmw.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:52:29: error: i32.atomic.rmw.or requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw.or drop
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:52:29: error: i64.atomic.rmw.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:53:29: error: i64.atomic.rmw.or requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw.or drop
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:53:29: error: i32.atomic.rmw8_u.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:54:29: error: i32.atomic.rmw8_u.or requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw8_u.or drop
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:54:29: error: i32.atomic.rmw16_u.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:55:29: error: i32.atomic.rmw16_u.or requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw16_u.or drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:55:29: error: i64.atomic.rmw8_u.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:56:29: error: i64.atomic.rmw8_u.or requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw8_u.or drop
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:56:29: error: i64.atomic.rmw16_u.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:57:29: error: i64.atomic.rmw16_u.or requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw16_u.or drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:57:29: error: i64.atomic.rmw32_u.or requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:58:29: error: i64.atomic.rmw32_u.or requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw32_u.or drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:59:29: error: i32.atomic.rmw.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:60:29: error: i32.atomic.rmw.xor requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw.xor drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:60:29: error: i64.atomic.rmw.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:61:29: error: i64.atomic.rmw.xor requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw.xor drop
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:61:29: error: i32.atomic.rmw8_u.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:62:29: error: i32.atomic.rmw8_u.xor requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw8_u.xor drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:62:29: error: i32.atomic.rmw16_u.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:63:29: error: i32.atomic.rmw16_u.xor requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw16_u.xor drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:63:29: error: i64.atomic.rmw8_u.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:64:29: error: i64.atomic.rmw8_u.xor requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw8_u.xor drop
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:64:29: error: i64.atomic.rmw16_u.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:65:29: error: i64.atomic.rmw16_u.xor requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw16_u.xor drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:65:29: error: i64.atomic.rmw32_u.xor requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:66:29: error: i64.atomic.rmw32_u.xor requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw32_u.xor drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:67:29: error: i32.atomic.rmw.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:68:29: error: i32.atomic.rmw.xchg requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw.xchg drop
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:68:29: error: i64.atomic.rmw.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:69:29: error: i64.atomic.rmw.xchg requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw.xchg drop
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:69:29: error: i32.atomic.rmw8_u.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:70:29: error: i32.atomic.rmw8_u.xchg requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw8_u.xchg drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:70:29: error: i32.atomic.rmw16_u.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:71:29: error: i32.atomic.rmw16_u.xchg requires memory to be shared.
i32.const 0 i32.const 0 i32.atomic.rmw16_u.xchg drop
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:71:29: error: i64.atomic.rmw8_u.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:72:29: error: i64.atomic.rmw8_u.xchg requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw8_u.xchg drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:72:29: error: i64.atomic.rmw16_u.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:73:29: error: i64.atomic.rmw16_u.xchg requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw16_u.xchg drop
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:73:29: error: i64.atomic.rmw32_u.xchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:74:29: error: i64.atomic.rmw32_u.xchg requires memory to be shared.
i32.const 0 i64.const 0 i64.atomic.rmw32_u.xchg drop
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:75:41: error: i32.atomic.rmw.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:76:41: error: i32.atomic.rmw.cmpxchg requires memory to be shared.
i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:76:41: error: i64.atomic.rmw.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:77:41: error: i64.atomic.rmw.cmpxchg requires memory to be shared.
i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:77:41: error: i32.atomic.rmw8_u.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:78:41: error: i32.atomic.rmw8_u.cmpxchg requires memory to be shared.
i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:78:41: error: i32.atomic.rmw16_u.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:79:41: error: i32.atomic.rmw16_u.cmpxchg requires memory to be shared.
i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:79:41: error: i64.atomic.rmw8_u.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:80:41: error: i64.atomic.rmw8_u.cmpxchg requires memory to be shared.
i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:80:41: error: i64.atomic.rmw16_u.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:81:41: error: i64.atomic.rmw16_u.cmpxchg requires memory to be shared.
i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-no-shared-memory.txt:81:41: error: i64.atomic.rmw32_u.cmpxchg requires memory to be shared.
+out/test/typecheck/bad-atomic-no-shared-memory.txt:82:41: error: i64.atomic.rmw32_u.cmpxchg requires memory to be shared.
i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg drop
^^^^^^^^^^^^^^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/bad-atomic-type-mismatch.txt b/test/typecheck/bad-atomic-type-mismatch.txt
index c66c74ec..59438dfe 100644
--- a/test/typecheck/bad-atomic-type-mismatch.txt
+++ b/test/typecheck/bad-atomic-type-mismatch.txt
@@ -1,4 +1,5 @@
;;; ERROR: 1
+;;; TOOL: wat2wasm
;;; FLAGS: --enable-threads
(module
@@ -207,583 +208,583 @@
)
(;; STDERR ;;;
-out/test/typecheck/bad-atomic-type-mismatch.txt:8:33: error: type mismatch in atomic.wake, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:9:33: error: type mismatch in atomic.wake, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 atomic.wake drop)
^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:9:45: error: type mismatch in i32.atomic.wait, expected [i32, i32, i64] but got [f32, i32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:10:45: error: type mismatch in i32.atomic.wait, expected [i32, i32, i64] but got [f32, i32, i64]
(func f32.const 0 i32.const 0 i64.const 0 i32.atomic.wait drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:10:45: error: type mismatch in i64.atomic.wait, expected [i32, i64, i64] but got [f32, i64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:11:45: error: type mismatch in i64.atomic.wait, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.wait drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:11:21: error: type mismatch in i32.atomic.load, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:12:21: error: type mismatch in i32.atomic.load, expected [i32] but got [f32]
(func f32.const 0 i32.atomic.load drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:12:21: error: type mismatch in i64.atomic.load, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:13:21: error: type mismatch in i64.atomic.load, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:13:21: error: type mismatch in i32.atomic.load8_u, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:14:21: error: type mismatch in i32.atomic.load8_u, expected [i32] but got [f32]
(func f32.const 0 i32.atomic.load8_u drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:14:21: error: type mismatch in i32.atomic.load16_u, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:15:21: error: type mismatch in i32.atomic.load16_u, expected [i32] but got [f32]
(func f32.const 0 i32.atomic.load16_u drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:15:21: error: type mismatch in i64.atomic.load8_u, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:16:21: error: type mismatch in i64.atomic.load8_u, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load8_u drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:16:21: error: type mismatch in i64.atomic.load16_u, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:17:21: error: type mismatch in i64.atomic.load16_u, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load16_u drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:17:21: error: type mismatch in i64.atomic.load32_u, expected [i32] but got [f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:18:21: error: type mismatch in i64.atomic.load32_u, expected [i32] but got [f32]
(func f32.const 0 i64.atomic.load32_u drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:18:33: error: type mismatch in i32.atomic.store, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:19:33: error: type mismatch in i32.atomic.store, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:19:33: error: type mismatch in i64.atomic.store, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:20:33: error: type mismatch in i64.atomic.store, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:20:33: error: type mismatch in i32.atomic.store8, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:21:33: error: type mismatch in i32.atomic.store8, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:21:33: error: type mismatch in i32.atomic.store16, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:22:33: error: type mismatch in i32.atomic.store16, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:22:33: error: type mismatch in i64.atomic.store8, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:23:33: error: type mismatch in i64.atomic.store8, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:23:33: error: type mismatch in i64.atomic.store16, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:24:33: error: type mismatch in i64.atomic.store16, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:24:33: error: type mismatch in i64.atomic.store32, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:25:33: error: type mismatch in i64.atomic.store32, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.store32)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:25:33: error: type mismatch in i32.atomic.rmw.add, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:26:33: error: type mismatch in i32.atomic.rmw.add, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:26:33: error: type mismatch in i64.atomic.rmw.add, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:27:33: error: type mismatch in i64.atomic.rmw.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:27:33: error: type mismatch in i32.atomic.rmw8_u.add, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:28:33: error: type mismatch in i32.atomic.rmw8_u.add, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:28:33: error: type mismatch in i32.atomic.rmw16_u.add, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:29:33: error: type mismatch in i32.atomic.rmw16_u.add, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:29:33: error: type mismatch in i64.atomic.rmw8_u.add, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:30:33: error: type mismatch in i64.atomic.rmw8_u.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:30:33: error: type mismatch in i64.atomic.rmw16_u.add, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:31:33: error: type mismatch in i64.atomic.rmw16_u.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:31:33: error: type mismatch in i64.atomic.rmw32_u.add, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:32:33: error: type mismatch in i64.atomic.rmw32_u.add, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:32:33: error: type mismatch in i32.atomic.rmw.sub, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:33:33: error: type mismatch in i32.atomic.rmw.sub, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:33:33: error: type mismatch in i64.atomic.rmw.sub, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:34:33: error: type mismatch in i64.atomic.rmw.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:34:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:35:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:35:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:36:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:36:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:37:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:37:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:38:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:38:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:39:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:39:33: error: type mismatch in i32.atomic.rmw.and, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:40:33: error: type mismatch in i32.atomic.rmw.and, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:40:33: error: type mismatch in i64.atomic.rmw.and, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:41:33: error: type mismatch in i64.atomic.rmw.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:41:33: error: type mismatch in i32.atomic.rmw8_u.and, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:42:33: error: type mismatch in i32.atomic.rmw8_u.and, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:42:33: error: type mismatch in i32.atomic.rmw16_u.and, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:43:33: error: type mismatch in i32.atomic.rmw16_u.and, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:43:33: error: type mismatch in i64.atomic.rmw8_u.and, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:44:33: error: type mismatch in i64.atomic.rmw8_u.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:44:33: error: type mismatch in i64.atomic.rmw16_u.and, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:45:33: error: type mismatch in i64.atomic.rmw16_u.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:45:33: error: type mismatch in i64.atomic.rmw32_u.and, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:46:33: error: type mismatch in i64.atomic.rmw32_u.and, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:46:33: error: type mismatch in i32.atomic.rmw.or, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:47:33: error: type mismatch in i32.atomic.rmw.or, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:47:33: error: type mismatch in i64.atomic.rmw.or, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:48:33: error: type mismatch in i64.atomic.rmw.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:48:33: error: type mismatch in i32.atomic.rmw8_u.or, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:49:33: error: type mismatch in i32.atomic.rmw8_u.or, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:49:33: error: type mismatch in i32.atomic.rmw16_u.or, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:50:33: error: type mismatch in i32.atomic.rmw16_u.or, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:50:33: error: type mismatch in i64.atomic.rmw8_u.or, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:51:33: error: type mismatch in i64.atomic.rmw8_u.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:51:33: error: type mismatch in i64.atomic.rmw16_u.or, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:52:33: error: type mismatch in i64.atomic.rmw16_u.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:52:33: error: type mismatch in i64.atomic.rmw32_u.or, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:53:33: error: type mismatch in i64.atomic.rmw32_u.or, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:53:33: error: type mismatch in i32.atomic.rmw.xor, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:54:33: error: type mismatch in i32.atomic.rmw.xor, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:54:33: error: type mismatch in i64.atomic.rmw.xor, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:55:33: error: type mismatch in i64.atomic.rmw.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:55:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:56:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:56:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:57:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:57:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:58:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:58:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:59:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:59:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:60:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:60:33: error: type mismatch in i32.atomic.rmw.xchg, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:61:33: error: type mismatch in i32.atomic.rmw.xchg, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:61:33: error: type mismatch in i64.atomic.rmw.xchg, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:62:33: error: type mismatch in i64.atomic.rmw.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:62:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:63:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:63:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected [i32, i32] but got [f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:64:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected [i32, i32] but got [f32, i32]
(func f32.const 0 i32.const 0 i32.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:64:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:65:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:65:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:66:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:66:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected [i32, i64] but got [f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:67:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected [i32, i64] but got [f32, i64]
(func f32.const 0 i64.const 0 i64.atomic.rmw32_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:67:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:68:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
(func f32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:68:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:69:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:69:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:70:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
(func f32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:70:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:71:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [f32, i32, i32]
(func f32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:71:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:72:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:72:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:73:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:73:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:74:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [f32, i64, i64]
(func f32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:76:33: error: type mismatch in atomic.wake, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:77:33: error: type mismatch in atomic.wake, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 atomic.wake drop)
^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:77:45: error: type mismatch in i32.atomic.wait, expected [i32, i32, i64] but got [i32, f32, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:78:45: error: type mismatch in i32.atomic.wait, expected [i32, i32, i64] but got [i32, f32, i64]
(func i32.const 0 f32.const 0 i64.const 0 i32.atomic.wait drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:78:45: error: type mismatch in i64.atomic.wait, expected [i32, i64, i64] but got [i32, f64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:79:45: error: type mismatch in i64.atomic.wait, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.wait drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:79:33: error: type mismatch in i32.atomic.store, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:80:33: error: type mismatch in i32.atomic.store, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:80:33: error: type mismatch in i64.atomic.store, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:81:33: error: type mismatch in i64.atomic.store, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store)
^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:81:33: error: type mismatch in i32.atomic.store8, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:82:33: error: type mismatch in i32.atomic.store8, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:82:33: error: type mismatch in i32.atomic.store16, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:83:33: error: type mismatch in i32.atomic.store16, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:83:33: error: type mismatch in i64.atomic.store8, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:84:33: error: type mismatch in i64.atomic.store8, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store8)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:84:33: error: type mismatch in i64.atomic.store16, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:85:33: error: type mismatch in i64.atomic.store16, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store16)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:85:33: error: type mismatch in i64.atomic.store32, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:86:33: error: type mismatch in i64.atomic.store32, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.store32)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:86:33: error: type mismatch in i32.atomic.rmw.add, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:87:33: error: type mismatch in i32.atomic.rmw.add, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:87:33: error: type mismatch in i64.atomic.rmw.add, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:88:33: error: type mismatch in i64.atomic.rmw.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.add drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:88:33: error: type mismatch in i32.atomic.rmw8_u.add, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:89:33: error: type mismatch in i32.atomic.rmw8_u.add, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:89:33: error: type mismatch in i32.atomic.rmw16_u.add, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:90:33: error: type mismatch in i32.atomic.rmw16_u.add, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:90:33: error: type mismatch in i64.atomic.rmw8_u.add, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:91:33: error: type mismatch in i64.atomic.rmw8_u.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.add drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:91:33: error: type mismatch in i64.atomic.rmw16_u.add, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:92:33: error: type mismatch in i64.atomic.rmw16_u.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:92:33: error: type mismatch in i64.atomic.rmw32_u.add, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:93:33: error: type mismatch in i64.atomic.rmw32_u.add, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.add drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:93:33: error: type mismatch in i32.atomic.rmw.sub, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:94:33: error: type mismatch in i32.atomic.rmw.sub, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:94:33: error: type mismatch in i64.atomic.rmw.sub, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:95:33: error: type mismatch in i64.atomic.rmw.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.sub drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:95:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:96:33: error: type mismatch in i32.atomic.rmw8_u.sub, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:96:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:97:33: error: type mismatch in i32.atomic.rmw16_u.sub, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:97:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:98:33: error: type mismatch in i64.atomic.rmw8_u.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:98:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:99:33: error: type mismatch in i64.atomic.rmw16_u.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:99:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:100:33: error: type mismatch in i64.atomic.rmw32_u.sub, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.sub drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:100:33: error: type mismatch in i32.atomic.rmw.and, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:101:33: error: type mismatch in i32.atomic.rmw.and, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:101:33: error: type mismatch in i64.atomic.rmw.and, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:102:33: error: type mismatch in i64.atomic.rmw.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.and drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:102:33: error: type mismatch in i32.atomic.rmw8_u.and, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:103:33: error: type mismatch in i32.atomic.rmw8_u.and, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:103:33: error: type mismatch in i32.atomic.rmw16_u.and, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:104:33: error: type mismatch in i32.atomic.rmw16_u.and, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:104:33: error: type mismatch in i64.atomic.rmw8_u.and, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:105:33: error: type mismatch in i64.atomic.rmw8_u.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.and drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:105:33: error: type mismatch in i64.atomic.rmw16_u.and, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:106:33: error: type mismatch in i64.atomic.rmw16_u.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:106:33: error: type mismatch in i64.atomic.rmw32_u.and, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:107:33: error: type mismatch in i64.atomic.rmw32_u.and, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.and drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:107:33: error: type mismatch in i32.atomic.rmw.or, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:108:33: error: type mismatch in i32.atomic.rmw.or, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:108:33: error: type mismatch in i64.atomic.rmw.or, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:109:33: error: type mismatch in i64.atomic.rmw.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.or drop)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:109:33: error: type mismatch in i32.atomic.rmw8_u.or, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:110:33: error: type mismatch in i32.atomic.rmw8_u.or, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:110:33: error: type mismatch in i32.atomic.rmw16_u.or, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:111:33: error: type mismatch in i32.atomic.rmw16_u.or, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:111:33: error: type mismatch in i64.atomic.rmw8_u.or, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:112:33: error: type mismatch in i64.atomic.rmw8_u.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.or drop)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:112:33: error: type mismatch in i64.atomic.rmw16_u.or, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:113:33: error: type mismatch in i64.atomic.rmw16_u.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:113:33: error: type mismatch in i64.atomic.rmw32_u.or, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:114:33: error: type mismatch in i64.atomic.rmw32_u.or, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.or drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:114:33: error: type mismatch in i32.atomic.rmw.xor, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:115:33: error: type mismatch in i32.atomic.rmw.xor, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:115:33: error: type mismatch in i64.atomic.rmw.xor, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:116:33: error: type mismatch in i64.atomic.rmw.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.xor drop)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:116:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:117:33: error: type mismatch in i32.atomic.rmw8_u.xor, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:117:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:118:33: error: type mismatch in i32.atomic.rmw16_u.xor, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:118:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:119:33: error: type mismatch in i64.atomic.rmw8_u.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:119:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:120:33: error: type mismatch in i64.atomic.rmw16_u.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:120:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:121:33: error: type mismatch in i64.atomic.rmw32_u.xor, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.xor drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:121:33: error: type mismatch in i32.atomic.rmw.xchg, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:122:33: error: type mismatch in i32.atomic.rmw.xchg, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:122:33: error: type mismatch in i64.atomic.rmw.xchg, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:123:33: error: type mismatch in i64.atomic.rmw.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw.xchg drop)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:123:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:124:33: error: type mismatch in i32.atomic.rmw8_u.xchg, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:124:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected [i32, i32] but got [i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:125:33: error: type mismatch in i32.atomic.rmw16_u.xchg, expected [i32, i32] but got [i32, f32]
(func i32.const 0 f32.const 0 i32.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:125:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:126:33: error: type mismatch in i64.atomic.rmw8_u.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw8_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:126:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:127:33: error: type mismatch in i64.atomic.rmw16_u.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw16_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:127:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected [i32, i64] but got [i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:128:33: error: type mismatch in i64.atomic.rmw32_u.xchg, expected [i32, i64] but got [i32, f64]
(func i32.const 0 f64.const 0 i64.atomic.rmw32_u.xchg drop)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:128:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:129:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
(func i32.const 0 f32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:129:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:130:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:130:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:131:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
(func i32.const 0 f32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:131:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:132:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [i32, f32, i32]
(func i32.const 0 f32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:132:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:133:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:133:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:134:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:134:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:135:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [i32, f64, i64]
(func i32.const 0 f64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:137:45: error: type mismatch in i32.atomic.wait, expected [i32, i32, i64] but got [i32, i32, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:138:45: error: type mismatch in i32.atomic.wait, expected [i32, i32, i64] but got [i32, i32, f64]
(func i32.const 0 i32.const 0 f64.const 0 i32.atomic.wait drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:138:45: error: type mismatch in i64.atomic.wait, expected [i32, i64, i64] but got [i32, i64, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:139:45: error: type mismatch in i64.atomic.wait, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.wait drop)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:139:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:140:45: error: type mismatch in i32.atomic.rmw.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
(func i32.const 0 i32.const 0 f32.const 0 i32.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:140:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:141:45: error: type mismatch in i64.atomic.rmw.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:141:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:142:45: error: type mismatch in i32.atomic.rmw8_u.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
(func i32.const 0 i32.const 0 f32.const 0 i32.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:142:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:143:45: error: type mismatch in i32.atomic.rmw16_u.cmpxchg, expected [i32, i32, i32] but got [i32, i32, f32]
(func i32.const 0 i32.const 0 f32.const 0 i32.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:143:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:144:45: error: type mismatch in i64.atomic.rmw8_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw8_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:144:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:145:45: error: type mismatch in i64.atomic.rmw16_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw16_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:145:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:146:45: error: type mismatch in i64.atomic.rmw32_u.cmpxchg, expected [i32, i64, i64] but got [i32, i64, f64]
(func i32.const 0 i64.const 0 f64.const 0 i64.atomic.rmw32_u.cmpxchg drop)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:148:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:149:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 atomic.wake)
^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:149:58: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:150:58: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i64.const 0 i32.atomic.wait)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:150:58: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:151:58: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i64.const 0 i64.const 0 i64.atomic.wait)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:151:34: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:152:34: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.atomic.load)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:152:34: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:153:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load)
^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:153:34: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:154:34: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.atomic.load8_u)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:154:34: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:155:34: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.atomic.load16_u)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:155:34: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:156:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load8_u)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:156:34: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:157:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load16_u)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:157:34: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:158:34: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.atomic.load32_u)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:158:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:159:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.add)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:159:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:160:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.add)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:160:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:161:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.add)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:161:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:162:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.add)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:162:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:163:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.add)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:163:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:164:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.add)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:164:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:165:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.add)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:165:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:166:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.sub)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:166:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:167:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.sub)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:167:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:168:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.sub)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:168:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:169:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.sub)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:169:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:170:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.sub)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:170:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:171:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.sub)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:171:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:172:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.sub)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:172:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:173:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.and)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:173:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:174:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.and)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:174:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:175:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.and)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:175:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:176:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.and)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:176:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:177:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.and)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:177:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:178:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.and)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:178:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:179:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.and)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:179:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:180:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.or)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:180:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:181:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.or)
^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:181:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:182:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.or)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:182:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:183:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.or)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:183:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:184:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.or)
^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:184:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:185:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.or)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:185:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:186:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.or)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:186:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:187:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.xor)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:187:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:188:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.xor)
^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:188:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:189:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.xor)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:189:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:190:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.xor)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:190:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:191:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.xor)
^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:191:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:192:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.xor)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:192:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:193:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.xor)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:193:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:194:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw.xchg)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:194:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:195:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw.xchg)
^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:195:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:196:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw8_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:196:46: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:197:46: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.atomic.rmw16_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:197:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:198:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw8_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:198:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:199:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw16_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:199:46: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:200:46: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.atomic.rmw32_u.xchg)
^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:200:58: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:201:58: error: type mismatch in implicit return, expected [f32] but got [i32]
(func (result f32) i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:201:58: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:202:58: error: type mismatch in implicit return, expected [f64] but got [i64]
(func (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:202:58: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:203:58: error: type mismatch in implicit return, expected [f32] but got [i32]
...c (result f32) i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw8_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:203:58: error: type mismatch in implicit return, expected [f32] but got [i32]
+out/test/typecheck/bad-atomic-type-mismatch.txt:204:58: error: type mismatch in implicit return, expected [f32] but got [i32]
... (result f32) i32.const 0 i32.const 0 i32.const 0 i32.atomic.rmw16_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:204:58: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:205:58: error: type mismatch in implicit return, expected [f64] but got [i64]
...c (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw8_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:205:58: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:206:58: error: type mismatch in implicit return, expected [f64] but got [i64]
... (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw16_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^^
-out/test/typecheck/bad-atomic-type-mismatch.txt:206:58: error: type mismatch in implicit return, expected [f64] but got [i64]
+out/test/typecheck/bad-atomic-type-mismatch.txt:207:58: error: type mismatch in implicit return, expected [f64] but got [i64]
... (result f64) i32.const 0 i64.const 0 i64.const 0 i64.atomic.rmw32_u.cmpxchg)
^^^^^^^^^^^^^^^^^^^^^^^^^^
;;; STDERR ;;)
diff --git a/test/typecheck/nocheck.txt b/test/typecheck/nocheck.txt
index 5b0352e3..bcb15102 100644
--- a/test/typecheck/nocheck.txt
+++ b/test/typecheck/nocheck.txt
@@ -1,3 +1,4 @@
+;;; TOOL: wat2wasm
;;; FLAGS: --no-check
(module
(func (result i32)